Commit b7b49ee0 by Solo Group

penambahan cek sukses dan Noref+1

1 parent ee79d93c
...@@ -80,13 +80,6 @@ class Vendor(VendorClass): ...@@ -80,13 +80,6 @@ class Vendor(VendorClass):
message = resp["responseDesc"] message = resp["responseDesc"]
return dict(code=code, message=message) return dict(code=code, message=message)
# if code == 54:
# raise JsonRpcBillAllreadyPaidError()
# elif code == 55:
# raise JsonRpcBillNotFoundError()
# else:
# raise JsonRpcError(code=code, message=message)
def response_field(self): def response_field(self):
resp = self.response resp = self.response
if resp["responseCode"] == "00": if resp["responseCode"] == "00":
...@@ -182,7 +175,7 @@ class Vendor(VendorClass): ...@@ -182,7 +175,7 @@ class Vendor(VendorClass):
def _inquiry(self): def _inquiry(self):
if not self.v_produk_kd or not self.id_pel: if not self.v_produk_kd or not self.id_pel:
return self.set_response(message='Parameter tidak lengkap') return
self.request = self.inquiry_field() self.request = self.inquiry_field()
log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request)) log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request))
...@@ -208,6 +201,7 @@ class Vendor(VendorClass): ...@@ -208,6 +201,7 @@ class Vendor(VendorClass):
result = resp.text result = resp.text
self.response = result self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response) log.info("Inquiry Response: %s" % self.response)
return resp return resp
...@@ -216,12 +210,18 @@ class Vendor(VendorClass): ...@@ -216,12 +210,18 @@ class Vendor(VendorClass):
if resp is None: if resp is None:
return self.set_failed(typ="inquiry") return self.set_failed(typ="inquiry")
if resp.status_code == 200: if resp.status_code != 200:
parsd = self.response_field() return self.set_failed(typ="inquiry")
return self.set_success(parsd, typ="inquiry")
else: if "responseCode" not in self.response:
return self.set_failed(typ="inquiry") return self.set_failed(typ="inquiry")
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
parsd = self.response_field()
return self.set_success(parsd, typ="inquiry")
def payment(self): def payment(self):
resp = self._inquiry() resp = self._inquiry()
if not resp: if not resp:
...@@ -230,93 +230,43 @@ class Vendor(VendorClass): ...@@ -230,93 +230,43 @@ class Vendor(VendorClass):
if self.response["responseCode"] != "00": if self.response["responseCode"] != "00":
return self.inquiry_error(self.response) return self.inquiry_error(self.response)
self.response["noRef"] = int(self.response["noRef"]) + 1
params = json.dumps(self.response) params = json.dumps(self.response)
log.info("Payment url: {} params: {}".format(self.pay_url, params)) log.info("Payment url: {} params: {}".format(self.pay_url, params))
try: try:
resp = requests.post(self.pay_url, data=params, verify=False, resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15) headers=self.get_headers(), timeout=15)
except: except Exception as e:
self.response = e
resp = None resp = None
if resp is None: if resp is None:
self.status = 0 self.status = 0
return self.set_pending() return self.set_pending()
if resp.status_code != 200:
result = resp.text
self.response = result
log.info("Payment Response: %s" % self.response)
return self.set_pending()
try: try:
result = json.loads(resp.text) result = json.loads(resp.text)
self.response = result self.response = result
log.info("Payment Response: %s" % self.response) log.info("Payment Response: %s" % self.response)
except: except:
result = resp.text self.response = resp.text
self.response = result
log.info("Payment Response: %s" % self.response) log.info("Payment Response: %s" % self.response)
self.status = 0
return self.set_pending() return self.set_pending()
if resp.status_code == 200: parsd = self.response_field()
parsd = self.response_field()
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
self.status = 1 # sukses
self.serial_number = 'ntb' in result and result["ntb"].strip() \
or self.serial_number
parsd["rincian"].update(dict(
ntb=self.serial_number,
ntp='ntp' in result and result["ntp"].strip() or ''))
return self.set_success(parsd)
else: self.serial_number = 'ntb' in result and result["ntb"].strip() \
self.status = 0 or self.serial_number
return self.set_pending() parsd["rincian"].update(dict(
ntb=self.serial_number,
ntp='ntp' in result and result["ntp"].strip() or ''))
return self.set_success(parsd)
def advice(self): def advice(self):
raise JsonRpcError(message="Not Implemented") raise JsonRpcError(message="Not Implemented")
# if not self.v_produk_kd or not self.id_pel or not self.invoice_det:
# return dict(code=9999,
# message='Parameter tidak lengkap')
#
# if self.kategori == 'e-payment':
# order_id = self.invoice_det.vend_inv_no
# url = self.get_url('/order/{order_id}'.format(order_id=order_id))
# params = None
# self.request = url
# else:
# params = dict(
# data=dict(
# denom=self.v_produk_kd,
# number=self.id_pel
# )
# )
# self.request = params
# url = self.get_url('/prepaid/purchase-get')
#
# self.save_log("advice")
# try:
# resp = requests.get(url, params=params, verify=False,
# headers=self.get_headers(), timeout=15)
# except:
# return self.set_response()
#
# try:
# result = json.loads(resp.text)
# except:
# result = resp.text
#
# self.response = result
# if resp.ok:
# self.status = 1 # sukses
# data = "data" in result and result["data"] or None
# parsd = self.pars_data(data)
#
# elif resp.status_code == 400:
# self.status = -3
# parsd = dict(code=resp.status_code,
# message=resp.text)
# else:
# self.status = -4
# parsd = dict(code=500,
# message="Other Error")
#
# self.save_log('advice')
# return parsd
...@@ -131,6 +131,7 @@ class Vendor(VendorClass): ...@@ -131,6 +131,7 @@ class Vendor(VendorClass):
result = resp.text result = resp.text
self.response = result self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response) log.info("Inquiry Response: %s" % self.response)
return resp return resp
...@@ -157,9 +158,11 @@ class Vendor(VendorClass): ...@@ -157,9 +158,11 @@ class Vendor(VendorClass):
if resp is None or resp and resp.status_code != 200: if resp is None or resp and resp.status_code != 200:
return self.set_pending() return self.set_pending()
if "responseCode" not in self.response \ if "responseCode" not in self.response :
or self.response["responseCode"] != "00": return self.set_pending()
return self.set_failed()
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
# ditambahkan disini karena minta noRefnya Berbeda # ditambahkan disini karena minta noRefnya Berbeda
self.response["noRef"] = int(self.response["noRef"]) + 1 self.response["noRef"] = int(self.response["noRef"]) + 1
...@@ -168,7 +171,8 @@ class Vendor(VendorClass): ...@@ -168,7 +171,8 @@ class Vendor(VendorClass):
try: try:
resp = requests.post(self.pay_url, data=params, verify=False, resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15) headers=self.get_headers(), timeout=15)
except: except Exception as e:
self.response = e
resp = None resp = None
if resp is None: if resp is None:
......
...@@ -94,13 +94,6 @@ class Vendor(VendorClass): ...@@ -94,13 +94,6 @@ class Vendor(VendorClass):
result = self.get_price(sub_total) result = self.get_price(sub_total)
admin = int(self.vendor_produk.produk.harga) admin = int(self.vendor_produk.produk.harga)
# todo: cek kembali harga apakah wajar atau tidak
# adm_biller = int(resp["diskon"] or '0')
# jika harga admin biller > dari admin
# if self.amt_buy < sub_total+adm_biller:
# raise
# if admin < adm_biller:
# admin = adm_biller
rincian = dict( rincian = dict(
pokok=pokok, pokok=pokok,
denda=denda, denda=denda,
...@@ -126,7 +119,7 @@ class Vendor(VendorClass): ...@@ -126,7 +119,7 @@ class Vendor(VendorClass):
def _inquiry(self): def _inquiry(self):
if not self.v_produk_kd or not self.id_pel: if not self.v_produk_kd or not self.id_pel:
return self.set_response(message='Parameter tidak lengkap') return
self.request = self.inquiry_field() self.request = self.inquiry_field()
log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request)) log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request))
...@@ -138,20 +131,27 @@ class Vendor(VendorClass): ...@@ -138,20 +131,27 @@ class Vendor(VendorClass):
verify=False, verify=False,
headers=self.get_headers(), headers=self.get_headers(),
timeout=20) timeout=20)
except: except Exception as e:
log.info("Biller Error") self.response = e
log.info("Biller Error: {}".format(e))
return return
if not resp: if not resp:
log.info("No Response From Biller") msg = "No Response From Biller"
log.info(msg)
self.response = msg
return return
try: try:
result = json.loads(resp.text) result = json.loads(resp.text)
except: except:
result = resp.text result = resp.text
self.response = result
log.info("Inquiry Response: %s" % self.response)
return
self.response = result self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response) log.info("Inquiry Response: %s" % self.response)
return resp return resp
...@@ -160,104 +160,64 @@ class Vendor(VendorClass): ...@@ -160,104 +160,64 @@ class Vendor(VendorClass):
if resp is None: if resp is None:
return self.set_failed(typ="inquiry") return self.set_failed(typ="inquiry")
if resp.status_code == 200: if resp.status_code != 200:
parsd = self.response_field()
return self.set_success(parsd, typ="inquiry")
else:
return self.set_failed(typ="inquiry") return self.set_failed(typ="inquiry")
if "responseCode" not in self.response:
return self.set_failed(typ="inquiry")
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
parsd = self.response_field()
return self.set_success(parsd, typ="inquiry")
def payment(self): def payment(self):
resp = self._inquiry() resp = self._inquiry()
if not resp: if not resp:
return self.set_failed() return self.set_failed()
if self.response["responseCode"] != "00": if self.response["responseCode"] != "00":
return self.inquiry_error(self.response) return self.inquiry_error(self.response)
self.response["noRef"] = int(self.response["noRef"]) + 1
params = json.dumps(self.response) params = json.dumps(self.response)
log.info("Payment url: {} params: {}".format(self.pay_url, params)) log.info("Payment url: {} params: {}".format(self.pay_url, params))
try: try:
resp = requests.post(self.pay_url, data=params, verify=False, resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15) headers=self.get_headers(), timeout=15)
except: except Exception as e:
self.response = e
resp = None resp = None
if resp is None: if resp is None:
self.status = 0
return self.set_pending() return self.set_pending()
if resp.status_code != 200:
self.response = resp.text
log.info("Payment Response: %s" % self.response)
return self.set_pending()
try: try:
result = json.loads(resp.text) result = json.loads(resp.text)
self.response = result
log.info("Payment Response: %s" % self.response)
except: except:
result = resp.text result = resp.text
self.response = result self.response = result
log.info("Payment Response: %s" % self.response) log.info("Payment Response: %s" % self.response)
self.status = 0
return self.set_pending() return self.set_pending()
if resp.status_code == 200: self.response = result
self.status = 1 # sukses log.info("Payment Response: %s" % self.response)
parsd = self.response_field() if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
self.serial_number = 'ntb' in result and result["ntb"].strip() \
or self.serial_number
parsd["rincian"].update(dict(
ntb=self.serial_number,
ntp='ntp' in result and result["ntp"].strip() or ''))
return self.set_success(parsd)
else: parsd = self.response_field()
self.status = 0 self.serial_number = 'ntb' in result and result["ntb"].strip() \
return self.set_pending() or self.serial_number
parsd["rincian"].update(dict(
ntb=self.serial_number,
ntp='ntp' in result and result["ntp"].strip() or ''))
return self.set_success(parsd)
def advice(self): def advice(self):
raise JsonRpcError(message="Not Implemented") raise JsonRpcError(message="Not Implemented")
# if not self.v_produk_kd or not self.id_pel or not self.invoice_det:
# return dict(code=9999,
# message='Parameter tidak lengkap')
#
# if self.kategori == 'e-payment':
# order_id = self.invoice_det.vend_inv_no
# url = self.get_url('/order/{order_id}'.format(order_id=order_id))
# params = None
# self.request = url
# else:
# params = dict(
# data=dict(
# denom=self.v_produk_kd,
# number=self.id_pel
# )
# )
# self.request = params
# url = self.get_url('/prepaid/purchase-get')
#
# self.save_log("advice")
# try:
# resp = requests.get(url, params=params, verify=False,
# headers=self.get_headers(), timeout=15)
# except:
# return self.set_response()
#
# try:
# result = json.loads(resp.text)
# except:
# result = resp.text
#
# self.response = result
# if resp.ok:
# self.status = 1 # sukses
# data = "data" in result and result["data"] or None
# parsd = self.pars_data(data)
#
# elif resp.status_code == 400:
# self.status = -3
# parsd = dict(code=resp.status_code,
# message=resp.text)
# else:
# self.status = -4
# parsd = dict(code=500,
# message="Other Error")
#
# self.save_log('advice')
# return parsd
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!