odeoo.py
2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import base64
import json
import requests
from opensipkd.base import get_settings
from opensipkd.base.models import Partner
from opensipkd.pasar.models import PartnerProduk, Produk, PartnerLog, flush_row
from pyramid.view import view_config
from pyramid_rpc.jsonrpc import JsonRpcError
from .vendor import VendorClass
class Vendor(VendorClass):
def __init__(self, product_kd, cid):
VendorClass.__init__(self, product_kd, cid)
settings = get_settings()
self.mid = 'odeoo_cid' in settings and settings['odeo_cid'] or None
self.key = 'odeoo_key' in settings and settings['odeoo_key'] or None
self.url = 'odeoo_url' in settings and settings['odeoo_url'] or None
self.cid = cid
key = ":".join([self.cid, self.key])
self.auth = base64.b64encode(key)
qry = PartnerProduk.query()\
.join(Partner, Partner.id==PartnerProduk.partner_id)\
.join(Produk, Produk.id==PartnerProduk.produk_id)\
.filter(Produk.kode == product_kd,
Partner.kode == "odeoo")
row = qry.first()
self.product_kd = row and row.kode or None
def inquiry(self):
pass
def payment(self):
# request = Request('https://api.odeo.co.id/v1/affiliate/prepaid/purchase', data=values, headers=headers)
#
# response_body = urlopen(request).read()
# print
# response_body
#
"""
Digunakan untuk melakukan inquory ke server odeoo
:return:
"""
if not self.product_kd or not self.cid:
return
params = dict(
data=dict(
denom=self.product_kd,
number=self.cid
)
)
with requests.session():
headers = {'Authorization': 'Bearer {key}'.format(key=self.key)}
resp = requests.post(url=self.url, data=json.dump(params, None),
verify=False, headers=headers)
content = resp.json()
if resp != "200":
raise JsonRpcError(data=content)
return content
return