vsi.py
1.6 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
import base64
import hashlib
import json
from datetime import datetime
import requests
import xmltodict
from opensipkd.base import get_settings
from opensipkd.pasar.models import Partner, PartnerProduk, Produk
from pyramid_rpc.jsonrpc import JsonRpcError
from .vendor import VendorClass
class Vendor(VendorClass):
def __init__(self, produk_kd, cid, trx_id, vendor_id):
"""
:param produk_kd:
merupakan kode produk versi vendor
:param trx_id:
kode unik transaksi
:param cid:
merupakan customer id seperti MSN dan atu id pelanggaan
"""
VendorClass.__init__(self, cid, vendor_id)
settings = self.settings
self.mid = 'vsi_mid' in settings and settings['vsi_mid'] or None
self.key = 'vsi_key' in settings and settings['vsi_key'] or None
self.url = 'vsi_url' in settings and settings['vsi_url'] or None
self.trx_id = trx_id
self.produk_kd = produk_kd
def get_hc(self, tanggal):
hash_string = "".join([self.mid, tanggal, self.key])
self.auth = hashlib.sha256(hash_string.encode()).hexdigest()
return self.auth
def get_params(self, cmd, msn=None, idpel=None, modul=None):
tanggal = datetime.now().strftime('YYYYMMDD')
params = dict(
cid=self.mid,
dt=tanggal,
hc=self.get_hc(tanggal),
modul=modul,
command=cmd,
resp='XML',
trxid=self.trx_id,
)
if msn:
params['msn']=msn
if idpel:
params['idpel'] = idpel
return params