Commit 2acd213d by Solo Group

odeo

1 parent 42227c16
......@@ -67,14 +67,15 @@ class Vendor(VendorClass):
if not self.v_produk_kd or not self.id_pel:
return self.set_response(message='Parameter tidak lengkap')
resp = self._inquiry()
if not resp.text:
if resp is None or not resp.text:
log.info("Resp Tidak Ada, {}".format(resp))
return
try:
result = json.loads(resp.text)
except:
result = resp.text
self.response = resp.text
return self.set_failed(typ="inquiry")
self.response = result
log.info("Inquiry Response: %s" % self.response)
......@@ -82,7 +83,7 @@ class Vendor(VendorClass):
self.status = 1 # sukses
data = "data" in result and result["data"] or None
parsd = self.pars_data(data)
return self.set_success(parsd) # parsd
return self.set_success(parsd, "inquiry") # parsd
elif resp.status_code == 400:
data = "data" in result and result["data"] or None
......@@ -92,9 +93,9 @@ class Vendor(VendorClass):
pos = msg.find("Sisa saldo")
message = pos > -1 and msg[:pos] or msg
parsd = self.pars_data(data)
return self.set_failed(parsd, message=message, typ="payment")
return self.set_failed(parsd, message=message, typ="inquiry")
return
return self.set_failed(typ="inquiry")
# parsd = self._inquiry()
......@@ -105,9 +106,38 @@ class Vendor(VendorClass):
# Jika kategory bukan e-pulsa Call Inquiry First
parsd = None
if self.vendor_produk.produk.kategori.kode != "e-pulsa":
parsd = self._inquiry()
resp = self._inquiry()
if resp is None or not resp.text:
log.info("Resp Tidak Ada, {}".format(resp))
return
try:
result = json.loads(resp.text)
except:
self.response = resp.text
return self.set_pending(typ="inquiry")
self.response = result
log.info("Inquiry Response: %s" % self.response)
if resp.status_code == 200:
self.status = 1 # sukses
data = "data" in result and result["data"] or None
parsd = self.pars_data(data)
elif resp.status_code == 400:
data = "data" in result and result["data"] or None
message = ""
if data and "errors" in data:
msg = data["errors"][0]
pos = msg.find("Sisa saldo")
message = pos > -1 and msg[:pos] or msg
parsd = self.pars_data(data)
return self.set_pending(parsd, message=message, typ="inquiry")
else:
return self.set_pending(typ="inquiry")
if not parsd:
return self.set_failed()
return self.set_pending(typ="inquiru")
params = dict(
data=dict(
......@@ -128,20 +158,19 @@ class Vendor(VendorClass):
except:
resp = None
if resp is None:
if resp is None or not resp.text:
return self.set_pending(parsd, typ="payment")
# todo: dibuat seolah menjadi belum di transaksikan
# todo: membuat cron untuk melakukan pengecekan transaksi
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)
return self.set_pending(parsd, typ="payment")
self.response = result
log.info("Payment Response: %s" % self.response)
# odeo mengembalikan result dalam bentuk status
# 0200 ok
# 0400 bad request
......@@ -180,8 +209,11 @@ class Vendor(VendorClass):
sn = len(sn_spl) > 1 and sn_spl[1] or ""
parsd["serial_number"] = sn
return self.set_failed(parsd, message=message, typ="payment")
elif resp.status_code == 401:
return self.set_failed(parsd, typ="payment")
else:
return
def advice(self):
if not self.v_produk_kd or not self.id_pel or not self.invoice_det:
......
......@@ -105,7 +105,8 @@ class VendorClass(object):
def set_pending(self, data=None, message=None, typ="payment"):
self.status = -1
data = data and data or {}
message = "TRX ke {} sedang di proses".format(self.id_pel)
if not message:
message = "TRX ke {} sedang di proses".format(self.id_pel)
data.update(dict(denom=self.vendor_produk.produk.kode,
id_pel=self.id_pel,
code=68,
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!