Commit 9c5c9f17 by yasir

update dummy

1 parent 40a9e90a
...@@ -9,7 +9,7 @@ from opensipkd.pasar.models import PartnerProduk, H2hArInvoiceDet ...@@ -9,7 +9,7 @@ from opensipkd.pasar.models import PartnerProduk, H2hArInvoiceDet
from ..vendor import VendorClass from ..vendor import VendorClass
from .dummy import Lolable from .dummy import Lolable, kirim_notify
import logging import logging
...@@ -25,6 +25,9 @@ timeout = 30 ...@@ -25,6 +25,9 @@ timeout = 30
class Vendor(VendorClass): class Vendor(VendorClass):
def __init__(self, vendor_produk, invoice_det): def __init__(self, vendor_produk, invoice_det):
VendorClass.__init__(self, vendor_produk, invoice_det=invoice_det) VendorClass.__init__(self, vendor_produk, invoice_det=invoice_det)
print('masuk vendor odeo >>')
# id_pel, customer_id, cust_trx, row # id_pel, customer_id, cust_trx, row
settings = get_settings() settings = get_settings()
self.mid = 'odeo_mid' in settings and settings['odeo_mid'] or None self.mid = 'odeo_mid' in settings and settings['odeo_mid'] or None
...@@ -40,6 +43,7 @@ class Vendor(VendorClass): ...@@ -40,6 +43,7 @@ class Vendor(VendorClass):
return url and self.url + url or self.url return url and self.url + url or self.url
def _inquiry(self): def _inquiry(self):
print('masuk inquiry odeo>>>')
if self.v_produk_kd[:3] == 'PLN' and self.v_produk_kd != 'PLNPASCA': if self.v_produk_kd[:3] == 'PLN' and self.v_produk_kd != 'PLNPASCA':
params = dict( params = dict(
number=self.id_pel, number=self.id_pel,
...@@ -57,12 +61,30 @@ class Vendor(VendorClass): ...@@ -57,12 +61,30 @@ class Vendor(VendorClass):
log.info("Inquiry Request: url: %s params %s" % (url, params)) log.info("Inquiry Request: url: %s params %s" % (url, params))
self.save_log("inquiry") self.save_log("inquiry")
try: # try:
resp = requests.get(url, params=params, verify=False, # lolable = Lolable(self.vendor_produk, self.invoice_det)
headers=self.get_headers()) # # resp = lolable.stupeed(json.dumps(params))
except Exception as e:
log.info(e) # resp = lolable.inquat(json.dumps(params))
return
# print('resp_inquat >>')
# print(resp_dummy)
# # resp = requests.get(url, params=params, verify=False,
# # headers=self.get_headers())
# except Exception as e:
# log.info(e)
# print('error lolable >>')
# print(e)
# return
lolable = Lolable(self.vendor_produk, self.invoice_det)
resp = lolable.inquat(json.dumps(params))
print('resp_inquat >>')
print(resp)
return resp return resp
def inquiry(self): def inquiry(self):
...@@ -107,7 +129,10 @@ class Vendor(VendorClass): ...@@ -107,7 +129,10 @@ class Vendor(VendorClass):
def payment(self): def payment(self):
# Jika kategory bukan e-pulsa Call Inquiry First # Jika kategory bukan e-pulsa Call Inquiry First
parsd = None parsd = None
print('masuk payment odeo >>')
if self.vendor_produk.produk.kategori.kode != "e-pulsa": if self.vendor_produk.produk.kategori.kode != "e-pulsa":
print('bukan kategori odeo e-pulsa >>')
resp = self._inquiry() resp = self._inquiry()
if resp is None or not resp.text: if resp is None or not resp.text:
log.info("Resp Tidak Ada, {}".format(resp)) log.info("Resp Tidak Ada, {}".format(resp))
...@@ -139,8 +164,9 @@ class Vendor(VendorClass): ...@@ -139,8 +164,9 @@ class Vendor(VendorClass):
return self.set_pending(typ="inquiry") return self.set_pending(typ="inquiry")
if not parsd: if not parsd:
return self.set_pending(typ="inquiru") return self.set_pending(typ="inquiry")
print('kategori odeo e-pulsa >>')
params = dict( params = dict(
data=dict( data=dict(
denom=self.v_produk_kd, denom=self.v_produk_kd,
...@@ -158,16 +184,10 @@ class Vendor(VendorClass): ...@@ -158,16 +184,10 @@ class Vendor(VendorClass):
# resp = requests.post(url, data=json.dumps(params), verify=False, # resp = requests.post(url, data=json.dumps(params), verify=False,
# headers=self.get_headers(), timeout=timeout) # headers=self.get_headers(), timeout=timeout)
lolable = Lolable(self.vendor_produk, self.invoice_det)
lolable = Lolable(self.vendor_produk.produk.kategori.kode)
resp = lolable.stupeed(json.dumps(params)) resp = lolable.stupeed(json.dumps(params))
except Exception as e:
print('resp_dummy.text >>') print(e)
print(resp_dummy.text)
print('resp_beneran.text >>')
print(resp.text)
except:
resp = None resp = None
if resp is None or not resp.text: if resp is None or not resp.text:
...@@ -203,8 +223,11 @@ class Vendor(VendorClass): ...@@ -203,8 +223,11 @@ class Vendor(VendorClass):
elif data["rc"] == "68": # Pending elif data["rc"] == "68": # Pending
return self.set_pending(parsd, typ="payment") return self.set_pending(parsd, typ="payment")
else: else:
self.serial_number = 'serial_number' in data and data["serial_numner"] \ self.serial_number = 'serial_number' in data and data["serial_number"] \
or self.serial_number or self.serial_number
kirim_notify(self.invoice_det.h2h_ar_invoice.cust_inv_no)
return self.set_success(parsd, typ="payment") return self.set_success(parsd, typ="payment")
elif resp.status_code == 400: elif resp.status_code == 400:
data = "data" in result and result["data"] or None data = "data" in result and result["data"] or None
...@@ -279,6 +302,8 @@ class Vendor(VendorClass): ...@@ -279,6 +302,8 @@ class Vendor(VendorClass):
def pars_data(self, data): def pars_data(self, data):
result = dict() result = dict()
print('pars_data, data >>')
print(data)
if not data: if not data:
return result return result
......
import json import json
import datetime
from opensipkd.pasar.models import PartnerProduk, H2hArInvoiceDet
from agratek.api.merchant.views.notify_vendor import purchase_notify
from opensipkd.base import get_settings
import hashlib
import requests
def kirim_notify(order_id):
# try:
# {
# "order_id": 1,
# "status": "COMPLETED",
# "message": "XXX"
# "signature": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
# }
print('kirim_notify >> ')
fake_web = 'http://DESKTOP-0KSLBA0:6555/notify/artpay'
dict_notify = {}
dict_notify['order_id'] = order_id
dict_notify['status'] = 'COMPLETED'
dict_notify['message'] = 'Sukses'
settings = get_settings()
website = settings['_host'] + '/api/vendor/odeo/notify'
mid = 'odeo_mid' in settings and settings["odeo_mid"] or None
key = 'odeo_key' in settings and settings["odeo_key"] or None
signature = sha256("{order_id}{mid}{key}{status}".format(order_id=order_id, mid=mid, key=key, status='COMPLETED'))
dict_notify['signature'] = signature
requests.post(website, data=json.dumps(dict_notify), timeout=30)
# requests.post(fake_web, data=json.dumps(dict_notify), timeout=30)
# except Exception as e:
# print('error notify >>')
# print(e)
def sha256(hash_string):
return hashlib.sha256(hash_string.encode()).hexdigest()
class Lolable(object): class Lolable(object):
EPULSA_CLUB = ['XL', 'TSEL', 'ISAT', 'TRI', 'AX', 'SF'] EPULSA_CLUB = ['XL', 'TSEL', 'ISAT', 'TRI', 'AX', 'SF']
TELKOM_CLUB = ['TELKOMFLEXI', 'TELKOMSPEEDY', 'TELKOMPSTN', 'TELKOMSELHALO', 'INDIHOME']
def __init__(self, vendor_produk, invoice_det):
print('init lolable >>')
self.status_code = 200
def __init__(self, kategori):
self.text = {} self.text = {}
self.kategori = kategori
self.invoice_det = invoice_det
self.vendor_produk = vendor_produk
# self.website = self.invoice_det.h2h_ar_invoice.customer.website
self.invoice_no = self.invoice_det.h2h_ar_invoice.cust_inv_no
# sg = "{order_id}{mid}{key}{status}".format(
# order_id=order_id, mid=mid, key=key, status=status)
self.kategori = vendor_produk.produk.kategori.kode
# self.order = H2hArInvoiceDet.query().filter(
# H2hArInvoiceDet.vendor_id == self.vendor_produk.partner_id,
# H2hArInvoiceDet.vend_inv_no == self.invoice_det.cust_inv_no
# ).first()
self.order = invoice_det
# {"data": {"denom": "TSEL5", "number": "0812121212"}} # {"data": {"denom": "TSEL5", "number": "0812121212"}}
# merch_request_dict >> # merch_request_dict >>
...@@ -28,21 +87,24 @@ class Lolable(object): ...@@ -28,21 +87,24 @@ class Lolable(object):
# }, # },
# "message": "" # "message": ""
# } # }
def get_price_epulsa(denom):
def get_price_epulsa(self, denom):
price_str = denom price_str = denom
for member in EPULSA_CLUB: for member in self.EPULSA_CLUB:
price_str = price_str.replace(member, '') price_str = price_str.replace(member, '')
return int(price_str) return int(price_str)
def stupeed(merch_request): # notify_json
print('dummy processing >>')
print('merch_request >>') def set_agratek_request(self, agratek_request):
print(merch_request) dict_request = json.loads(agratek_request)
self.agratek_request = dict_request
self.agratek_request_data = dict_request['params']['data'][0]
print('merch_request_dict >>')
def stupeed(self, merch_request):
merch_request_dict = json.loads(merch_request) merch_request_dict = json.loads(merch_request)
print(merch_request_dict)
denom = merch_request_dict['data']['denom'] denom = merch_request_dict['data']['denom']
dumb_dict = {} dumb_dict = {}
...@@ -51,9 +113,315 @@ class Lolable(object): ...@@ -51,9 +113,315 @@ class Lolable(object):
dumb_data = {} dumb_data = {}
dumb_data['order_id'] = 1 dumb_data['order_id'] = 1
dumb_data['message'] = ''
# {
# "status": "SUCCESS",
# "data": {
# "order_id": 1,
# "name": "XXX",
# "number": "XXX",
# "serial_number": "XXX",
# "status": "XXX",
# "price": 20000,
# "message": "XXX (Trx duplicate. This response only appear when you use slash (/) format when checking same trx id)"
# },
# "message": ""
# }
if self.kategori == 'e-pulsa': if self.kategori == 'e-pulsa':
dumb_data['price'] = (get_price_epulsa(denom) * 1000) + 500 dumb_data['price'] = (self.get_price_epulsa(denom) * 1000)
dumb_data['message'] = '' else:
if denom[:3] == 'PLN' and denom != "PLNPASCA":
bayar = denom.replace('PLN', '')
bayar = int(bayar) * 1000
dumb_data['price'] = bayar
else:
dumb_data['price'] = 150000
dumb_data['name'] = 'Suriyah Sidkisari'
dumb_data['serial_number'] = '09090909'
dumb_data['status'] = 'SUCCESS'
dumb_data.update(merch_request_dict['data'])
dumb_dict['data'] = dumb_data dumb_dict['data'] = dumb_data
return json.dumps(dumb_dict) self.text = json.dumps(dumb_dict)
# self.kirim_notify()
return self
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "tariff": "R1/1300VA",
# "inquiries": [
# {
# "period": "2016-08",
# "base_price": 300000,
# "fine": 0,
# "admin_fee": 2500
# }
# ],
# "subtotal": 302500,
# "discount": 900,
# "total": 301600
# },
# "message": ""
# }
def inquat(self, merch_request):
merch_request_dict = json.loads(merch_request)
print('inquat merch_request_dict >>')
print(merch_request_dict)
denom = merch_request_dict['denom']
dumb_dict = {}
dumb_dict['status'] = 'SUCCESS'
dumb_dict['message'] = ''
dumb_data = {}
dumb_data['subscriber_id'] = self.invoice_det.id_pel
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = 1
dumb_inquiries_arr = []
dumb_inquiries_data = {}
today = datetime.datetime.today()
datem = datetime.datetime(today.year, today.month, 1)
dumb_inquiries_data['period'] = str(today.year) + '-' + str(today.month)
print('amt_sell >>')
print(self.invoice_det.amt_sell)
# "tariff": "R1/1300VA",
dumb_inquiries_data['base_price'] = 0
dumb_inquiries_data['admin_fee'] = 0
if denom == "PLNPASCA":
dumb_inquiries_data['tariff'] = 'R1/1300VA'
dumb_inquiries_data['power'] = 2200
dumb_inquiries_data['base_price'] = 100000
dumb_inquiries_data['fine'] = 0
dumb_inquiries_data['admin_fee'] = self.invoice_det.produk.harga
dumb_inquiries_arr.append(dumb_inquiries_data)
dumb_data['subtotal'] = dumb_inquiries_data['base_price'] + dumb_inquiries_data['admin_fee']
dumb_data['discount'] = 0
dumb_data['total'] = dumb_data['subtotal']
elif denom[:3] == 'PLN' and denom != "PLNPASCA":
# {
# "status": "SUCCESS",
# "data": {
# "number": "XXX",
# "subscriber_id": "XXX",
# "name": "XXX",
# "tariff": "XXX",
# "power": "XXX"
# },
# "message": ""
# }
bayar = denom.replace('PLN', '')
bayar = int(bayar) * 1000
dumb_data['number'] = '1919191919'
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['name'] = 'Suriyah Sidkisari'
dumb_data['tariff'] = bayar
dumb_data['power'] = '1300VA'
dumb_data['discount'] = 0
elif denom[:2] == 'FN':
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "inquiries": {
# "installment": "XXX",
# "due_date": "XXX",
# "platform": "XXX",
# "base_price": 300000,
# "coll_fee": 0,
# "fine": 75000,
# "admin": 2000
# },
# "subtotal": 377000,
# "discount": 900,
# "total": 376100
# },
# "message": ""
# }
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = '0909'
del dumb_inquiries_data['period']
dumb_inquiries_data['installment'] = ""
dumb_inquiries_data['due_date'] = ""
dumb_inquiries_data['platform'] = ""
dumb_inquiries_data['base_price'] = 250000
dumb_inquiries_data['coll_fee'] = 0
dumb_inquiries_data['fine'] = 25000
dumb_inquiries_data['admin'] = 2000
dumb_data['inquiries'] = dumb_inquiries_data
dumb_data['subtotal'] = 277000
dumb_data['discount'] = 0
dumb_data['total'] = 277000
elif denom == 'PGN':
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "inquiries": {
# "period": "XXX",
# "meter_changes": "XXX",
# "usages": "XXX",
# "base_price": 300000,
# "admin_fee": 2500
# },
# "subtotal": 302500,
# "discount": 900,
# "total": 301600
# },
# "message": ""
# }
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = '0909'
dumb_inquiries_data['base_price'] = 800000
dumb_inquiries_data['admin_fee'] = 2500
dumb_inquiries_data['usages'] = "2000"
dumb_inquiries_data['meter_changes'] = "100"
dumb_data['inquiries'] = dumb_inquiries_data
# dumb_inquiries_arr.append(dumb_inquiries_data)
dumb_data['subtotal'] = 802500
dumb_data['discount'] = 0
dumb_data['total'] = 802500
elif denom in self.TELKOM_CLUB:
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "inquiries": {
# "period": "XXX",
# "base_price": 300000,
# "admin_fee": 1500
# },
# "subtotal": 301500,
# "discount": 900,
# "total": 300600
# },
# "message": ""
# }
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = '0909'
dumb_inquiries_data['base_price'] = 250000
dumb_inquiries_data['admin_fee'] = 1500
dumb_data['inquiries'] = dumb_inquiries_data
dumb_data['subtotal'] = 251500
dumb_data['discount'] = 0
dumb_data['total'] = 251500
elif denom[:3] == 'PAM':
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "inquiries": [
# {
# "period": "XXX",
# "base_price": 300000,
# "fine": 0,
# "admin_fee": 2500,
# "meter_changes": "XXX"
# }
# ],
# "subtotal": 302500,
# "discount": 900,
# "total": 301600
# },
# "message": ""
# }
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = '0909'
dumb_inquiries_data['base_price'] = 150000
dumb_inquiries_data['admin_fee'] = 2500
dumb_inquiries_data['fine'] = 0
dumb_inquiries_data['meter_changes'] = 1220
dumb_inquiries_arr.append(dumb_inquiries_data)
dumb_data['subtotal'] = 152500
dumb_data['discount'] = 0
dumb_data['total'] = 152500
elif denom[:7] == 'BPJSKES':
# {
# "status": "SUCCESS",
# "data": {
# "subscriber_id": "XXX",
# "subscriber_name": "XXX",
# "ref_id": "XXX",
# "inquiries": {
# "branch_code": "-",
# "branch_name": "XXX",
# "month_counts": 1,
# "participant_counts": 3,
# "base_price": 154200,
# "bill_rest": 0,
# "admin": 2500
# },
# "subtotal": 156700,
# "discount": 600,
# "total": 156100
# },
# "message": ""
# }
print('masuk BPJSKES >>')
jml_bln = int(denom.replace('BPJSKES', ''))
dumb_data['subscriber_id'] = merch_request_dict['number']
dumb_data['subscriber_name'] = 'Suriyah Sidkisari'
dumb_data['ref_id'] = '0909'
dumb_inquiries_data['branch_name'] = 'BPJS Kesehatan'
dumb_inquiries_data['branch_code'] = '-'
dumb_inquiries_data['participant_counts'] = 3
dumb_inquiries_data['month_counts'] = jml_bln
dumb_inquiries_data['bill_rest'] = 0
dumb_inquiries_data['base_price'] = 150000
dumb_inquiries_data['admin'] = 2500
dumb_inquiries_data['total'] = 152500
dumb_data['inquiries'] = dumb_inquiries_data
dumb_data['subtotal'] = 152500
dumb_data['discount'] = 0
dumb_data['total'] = 152500
if len(dumb_inquiries_arr) > 0:
dumb_data['inquiries'] = dumb_inquiries_arr
dumb_dict['data'] = dumb_data
self.text = json.dumps(dumb_dict)
return self
...@@ -187,7 +187,10 @@ class Result(object): ...@@ -187,7 +187,10 @@ class Result(object):
def __init__(self, values, **kwargs): def __init__(self, values, **kwargs):
self.values = values self.values = values
if "rincian" in values: if "rincian" in values:
discount = int(self.values["discount"]) discount = 'discount' in self.values and self.values['discount'] or '0'
discount = int(discount)
print ("======================>>>>>>>>>>>>")
print (values["rincian"])
subtotal = int(values["rincian"]["total"]) subtotal = int(values["rincian"]["total"])
self.values["subtotal"] = subtotal self.values["subtotal"] = subtotal
self.values["discount"] = discount self.values["discount"] = discount
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!