Commit b7b49ee0 by Solo Group

penambahan cek sukses dan Noref+1

1 parent ee79d93c
......@@ -80,13 +80,6 @@ class Vendor(VendorClass):
message = resp["responseDesc"]
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):
resp = self.response
if resp["responseCode"] == "00":
......@@ -182,7 +175,7 @@ class Vendor(VendorClass):
def _inquiry(self):
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()
log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request))
......@@ -208,6 +201,7 @@ class Vendor(VendorClass):
result = resp.text
self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response)
return resp
......@@ -216,12 +210,18 @@ class Vendor(VendorClass):
if resp is None:
return self.set_failed(typ="inquiry")
if resp.status_code == 200:
parsd = self.response_field()
return self.set_success(parsd, typ="inquiry")
else:
if resp.status_code != 200:
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):
resp = self._inquiry()
if not resp:
......@@ -230,93 +230,43 @@ class Vendor(VendorClass):
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
self.response["noRef"] = int(self.response["noRef"]) + 1
params = json.dumps(self.response)
log.info("Payment url: {} params: {}".format(self.pay_url, params))
try:
resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15)
except:
except Exception as e:
self.response = e
resp = None
if resp is None:
self.status = 0
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:
result = json.loads(resp.text)
self.response = result
log.info("Payment Response: %s" % self.response)
except:
result = resp.text
self.response = result
self.response = resp.text
log.info("Payment Response: %s" % self.response)
self.status = 0
return self.set_pending()
if resp.status_code == 200:
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)
parsd = self.response_field()
else:
self.status = 0
return self.set_pending()
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)
def advice(self):
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):
result = resp.text
self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response)
return resp
......@@ -157,9 +158,11 @@ class Vendor(VendorClass):
if resp is None or resp and resp.status_code != 200:
return self.set_pending()
if "responseCode" not in self.response \
or self.response["responseCode"] != "00":
return self.set_failed()
if "responseCode" not in self.response :
return self.set_pending()
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
# ditambahkan disini karena minta noRefnya Berbeda
self.response["noRef"] = int(self.response["noRef"]) + 1
......@@ -168,7 +171,8 @@ class Vendor(VendorClass):
try:
resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15)
except:
except Exception as e:
self.response = e
resp = None
if resp is None:
......
......@@ -94,13 +94,6 @@ class Vendor(VendorClass):
result = self.get_price(sub_total)
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(
pokok=pokok,
denda=denda,
......@@ -126,7 +119,7 @@ class Vendor(VendorClass):
def _inquiry(self):
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()
log.info("Inquiry Request: url: {} params {}".format(self.inq_url, self.request))
......@@ -138,20 +131,27 @@ class Vendor(VendorClass):
verify=False,
headers=self.get_headers(),
timeout=20)
except:
log.info("Biller Error")
except Exception as e:
self.response = e
log.info("Biller Error: {}".format(e))
return
if not resp:
log.info("No Response From Biller")
msg = "No Response From Biller"
log.info(msg)
self.response = msg
return
try:
result = json.loads(resp.text)
except:
result = resp.text
self.response = result
log.info("Inquiry Response: %s" % self.response)
return
self.response = result
self.save_log("inquiry")
log.info("Inquiry Response: %s" % self.response)
return resp
......@@ -160,104 +160,64 @@ class Vendor(VendorClass):
if resp is None:
return self.set_failed(typ="inquiry")
if resp.status_code == 200:
parsd = self.response_field()
return self.set_success(parsd, typ="inquiry")
else:
if resp.status_code != 200:
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):
resp = self._inquiry()
if not resp:
return self.set_failed()
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)
log.info("Payment url: {} params: {}".format(self.pay_url, params))
try:
resp = requests.post(self.pay_url, data=params, verify=False,
headers=self.get_headers(), timeout=15)
except:
except Exception as e:
self.response = e
resp = None
if resp is None:
self.status = 0
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:
result = json.loads(resp.text)
self.response = result
log.info("Payment Response: %s" % self.response)
except:
result = resp.text
self.response = result
log.info("Payment Response: %s" % self.response)
self.status = 0
return self.set_pending()
if resp.status_code == 200:
self.status = 1 # sukses
parsd = self.response_field()
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)
self.response = result
log.info("Payment Response: %s" % self.response)
if self.response["responseCode"] != "00":
return self.inquiry_error(self.response)
else:
self.status = 0
return self.set_pending()
parsd = self.response_field()
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)
def advice(self):
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
raise JsonRpcError(message="Not Implemented")
\ 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!