Commit 3f809681 by Solo Group

VSI

1 parent 1d67c30f
...@@ -286,7 +286,7 @@ class ViewHome(BaseView): ...@@ -286,7 +286,7 @@ class ViewHome(BaseView):
if result["f_result"]["code"]==0: if result["f_result"]["code"]==0:
session.flash("Sukses") session.flash("Sukses")
else: else:
session.flash(result["f_result"]["status"], "error") session.flash(result["f_result"]["message"], "error")
form.render(values) form.render(values)
return dict(form=form, params=form_params_view) return dict(form=form, params=form_params_view)
......
...@@ -60,7 +60,9 @@ class Vendor(VendorClass): ...@@ -60,7 +60,9 @@ class Vendor(VendorClass):
"discount": 300, "discount": 300,
"total": 156400 "total": 156400
}] }]
"""
"""
<?xml version="1.0"?> <?xml version="1.0"?>
<root> <root>
<status>SUCCESS</status> <status>SUCCESS</status>
...@@ -125,24 +127,27 @@ class Vendor(VendorClass): ...@@ -125,24 +127,27 @@ class Vendor(VendorClass):
log.info("Request: %s", params) log.info("Request: %s", params)
try: try:
resp = requests.get(self.url, params=params, timeout=15) resp = requests.get(self.url, params=params, timeout=15)
except requests.exceptions.RequestException as e:
data = dict(message = e.strerror,
code = e.errno)
return self.save_response(data)
if resp and resp.ok: if resp and resp.ok:
data = dict(xmltodict.parse(resp.text)["root"]) data = dict(xmltodict.parse(resp.text)["root"])
log.info("Response: %s", data) log.info("Response: %s", data)
data = self.pars_data(data) self.response = data
else:
elif resp:
data = dict(message=resp.text, data = dict(message=resp.text,
code=resp.status_code) code=resp.status_code)
else: self.response = data
except requests.exceptions.RequestException as e:
data = dict(message = e.strerror,
code = e.errno)
return self.save_response(data)
if not resp:
data = dict(message="No Response From Biller ", data = dict(message="No Response From Biller ",
code=500) code=500)
return self.save_response(data) return self.save_response(data)
data = self.pars_data(data)
self.result = data
return self.save_response(data) return self.save_response(data)
def payment(self): def payment(self):
...@@ -159,11 +164,11 @@ class Vendor(VendorClass): ...@@ -159,11 +164,11 @@ class Vendor(VendorClass):
else: else:
data = dict(code=resp.status_code, data = dict(code=resp.status_code,
message=resp.text) message=resp.text)
self.response = data
except: except:
data = dict(code=500, data = dict(code=500,
message="No Response From Biller") message="No Response From Biller")
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
self.save_log('payment') self.save_log('payment')
......
...@@ -160,29 +160,20 @@ class Vendor(VendorClass): ...@@ -160,29 +160,20 @@ class Vendor(VendorClass):
if resp and resp.ok: if resp and resp.ok:
data = dict(xmltodict.parse(resp.text)["root"]) data = dict(xmltodict.parse(resp.text)["root"])
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
elif resp: elif resp:
data = dict(message=resp.text, data = dict(message=resp.text,
code=resp.status_code) code=resp.status_code)
self.response = data
else: else:
data = dict(message="No Response From Biller ", data = dict(message="No Response From Biller ",
code=500) code=500)
return self.save_response(data) return self.save_response(data)
# if "status" in data and data["status"] and data["status"] == "SUCCESS": self.result = data
# # data = self.pars_data(data)
# data.update(dict(message="SUCCESS",
# code=0))
#
# elif "status" in data and data["status"] and data["status"] == "ERROR":
# #todo: apakah data akan dimapping errornya?
# data.update(dict(message=data["rcm"],
# code=data["rc"]))
# else:
# data.update(dict(message="Other Error",
# code=500))
return self.save_response(data) return self.save_response(data)
def payment(self): def payment(self):
...@@ -201,12 +192,11 @@ class Vendor(VendorClass): ...@@ -201,12 +192,11 @@ class Vendor(VendorClass):
else: else:
data = dict(code=resp.status_code, data = dict(code=resp.status_code,
message=resp.text) message=resp.text)
self.response = data
except: except:
data = dict(code=500, data = dict(code=500,
message="No Response From Biller") message="No Response From Biller")
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
self.save_log('payment') self.save_log('payment')
return data return data
...@@ -223,7 +213,6 @@ class Vendor(VendorClass): ...@@ -223,7 +213,6 @@ class Vendor(VendorClass):
resp = requests.get(self.url, params=params, timeout=15) resp = requests.get(self.url, params=params, timeout=15)
if resp.ok: if resp.ok:
data = dict(xmltodict.parse(resp.text)["root"]) data = dict(xmltodict.parse(resp.text)["root"])
self.response = data
else: else:
data = dict(code=resp.status_code, data = dict(code=resp.status_code,
message=resp.text) message=resp.text)
...@@ -232,7 +221,6 @@ class Vendor(VendorClass): ...@@ -232,7 +221,6 @@ class Vendor(VendorClass):
except: except:
data = dict(code=500, data = dict(code=500,
message="No Response From Biller") message="No Response From Biller")
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
self.result = data self.result = data
......
...@@ -105,9 +105,9 @@ class Vendor(VendorClass): ...@@ -105,9 +105,9 @@ class Vendor(VendorClass):
"total": subtotal-discount, "total": subtotal-discount,
} }
def save_response(self, data, typ="inquiry"): def save_result(self, data, typ="inquiry"):
self.response = data self.result = data
log.info("VSI PLN PRE Response: %s", data) log.info("Result: %s", data)
self.save_log(typ) self.save_log(typ)
return data return data
...@@ -118,40 +118,26 @@ class Vendor(VendorClass): ...@@ -118,40 +118,26 @@ class Vendor(VendorClass):
self.request = params self.request = params
self.save_log('inquiry') self.save_log('inquiry')
params['trxid'] = self.invoice_det.id params['trxid'] = self.invoice_det.id
log.info("VSI PLN PRE Request: %s", params) log.info("Request: %s", params)
try: try:
resp = requests.get(self.url, params=params, timeout=15) resp = requests.get(self.url, params=params, timeout=15)
except requests.exceptions.RequestException as e:
data = dict(message = e.strerror,
code = e.errno)
return self.save_response(data)
if resp and resp.ok: if resp and resp.ok:
data = dict(xmltodict.parse(resp.text)["root"]) data = dict(xmltodict.parse(resp.text)["root"])
data = self.pars_data(data) self.response = data
elif resp: else:
data = dict(message=resp.text, data = dict(message=resp.text,
code=resp.status_code) code=resp.status_code)
else: self.response = data
data = dict(message="No Response From Biller ", log.info("REsponse: %s" % data )
code=500) except requests.exceptions.RequestException as e:
return self.save_response(data) data = dict(message = e.strerror,
code = e.errno)
# if "status" in data and data["status"] and data["status"] == "SUCCESS": return self.save_result(data)
# # data = self.pars_data(data)
# data.update(dict(message="SUCCESS",
# code=0)) data = self.pars_data(data)
# return self.save_result(data)
# elif "status" in data and data["status"] and data["status"] == "ERROR":
# #todo: apakah data akan dimapping errornya?
# data.update(dict(message=data["rcm"],
# code=data["rc"]))
# else:
# data.update(dict(message="Other Error",
# code=500))
return self.save_response(data)
def payment(self): def payment(self):
params = self.get_params(cmd='PAY', modul='PRE') params = self.get_params(cmd='PAY', modul='PRE')
...@@ -168,13 +154,14 @@ class Vendor(VendorClass): ...@@ -168,13 +154,14 @@ class Vendor(VendorClass):
else: else:
data = dict(code=resp.status_code, data = dict(code=resp.status_code,
message=resp.text) message=resp.text)
self.response = data
except: except:
data = dict(code=500, data = dict(code=500,
message="No Response From Biller") message="No Response From Biller")
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
self.result = data
self.save_log('payment') self.save_log('payment')
return data return data
...@@ -191,7 +178,6 @@ class Vendor(VendorClass): ...@@ -191,7 +178,6 @@ class Vendor(VendorClass):
resp = requests.get(self.url, params=params, timeout=15) resp = requests.get(self.url, params=params, timeout=15)
if resp.ok: if resp.ok:
data = dict(xmltodict.parse(resp.text)["root"]) data = dict(xmltodict.parse(resp.text)["root"])
self.response = data
else: else:
data = dict(code=resp.status_code, data = dict(code=resp.status_code,
message=resp.text) message=resp.text)
...@@ -200,7 +186,6 @@ class Vendor(VendorClass): ...@@ -200,7 +186,6 @@ class Vendor(VendorClass):
except: except:
data = dict(code=500, data = dict(code=500,
message="No Response From Biller") message="No Response From Biller")
self.response = data
data = self.pars_data(data) data = self.pars_data(data)
self.result = data self.result = data
......
...@@ -2,7 +2,7 @@ from opensipkd.pasar.models import PartnerProduk ...@@ -2,7 +2,7 @@ from opensipkd.pasar.models import PartnerProduk
import requests import requests
import xmltodict import xmltodict
from agratek.api.merchant.tools import JsonRpcError from agratek.api.merchant.tools import JsonRpcError
from agratek.api.merchant.views.vsi import Vendor as VendorClass from agratek.api.merchant.views.vsi import Vendor as VendorClass, vsi_status
import logging import logging
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
...@@ -24,25 +24,30 @@ class Vendor(VendorClass): ...@@ -24,25 +24,30 @@ class Vendor(VendorClass):
:return: :return:
""" """
code = "rc" in data and int(data["rc"]) or 0 code = "rc" in data and int(data["rc"]) or 0
if code==0: self.status = vsi_status[str(code)]["status"]
status = self.status == -3 and "FAILED" or "PENDING"
if status == "PENDING":
code = 68
if self.status>-3:
product_id = self.invoice_det.produk.id product_id = self.invoice_det.produk.id
partner_id = self.invoice_det.h2h_ar_invoice.customer_id partner_id = self.invoice_det.h2h_ar_invoice.customer_id
discount = PartnerProduk.get_discount(partner_id, product_id) discount = PartnerProduk.get_discount(partner_id, product_id)
harga = self.vendor_produk.produk.harga harga = self.vendor_produk.produk.harga
self.status = 1 self.status = 1
status = "status" in data and data["status"] or ""
if not harga: if not harga:
raise JsonRpcError() raise JsonRpcError()
else: else:
discount = 0 discount = 0
harga = 0 harga = 0
self.status = -1
result = dict( result = dict(
status="status" in data and data["status"] or "PENDING", status=status,
code=code, code=code,
message="rcm" in data \ message="rcm" in data \
and (data["rcm"] == "00000" and "SUCCESS" or data["rcm"]) \ and (data["rcm"] == "00000" and "SUCCESS" or data["rcm"]) \
or "PENDING", or status,
serial_number="serialnumber" in data and data["serialnumber"] or "", serial_number="serialnumber" in data and data["serialnumber"] or "",
subtotal=int(harga), subtotal=int(harga),
discount=int(discount), discount=int(discount),
...@@ -60,21 +65,21 @@ class Vendor(VendorClass): ...@@ -60,21 +65,21 @@ class Vendor(VendorClass):
try: try:
result = requests.get(self.url, params=params, timeout=15) result = requests.get(self.url, params=params, timeout=15)
if result.ok: if result.ok:
data = xmltodict.parse(result.text)["root"] data = dict(xmltodict.parse(result.text)["root"])
else: else:
data = dict(code=result.status_code, data = dict(code=result.status_code,
message=result.text) message=result.text)
self.response = data
log.info("Response: %s" % (data))
except requests.exceptions.RequestException as e: except requests.exceptions.RequestException as e:
data = dict(code=e.errno, data = dict(code=e.errno,
message=e.strerror) message=e.strerror)
log.info("VSI PULSA Response: %s" % (data))
self.response = data
self.result = self.pars_data(data) self.result = self.pars_data(data)
log.info("VSI PULSA Result: %s" % (self.result)) log.info("Result: %s" % (self.result))
self.save_log('inquiry') self.save_log('inquiry')
return data return self.result
def payment(self): def payment(self):
params = self.get_params(cmd='PAY', modul='ISI') params = self.get_params(cmd='PAY', modul='ISI')
...@@ -86,18 +91,18 @@ class Vendor(VendorClass): ...@@ -86,18 +91,18 @@ class Vendor(VendorClass):
result = requests.get(self.url, params=params, timeout=15) result = requests.get(self.url, params=params, timeout=15)
if result.ok: if result.ok:
data = dict(xmltodict.parse(result.text)["root"]) data = dict(xmltodict.parse(result.text)["root"])
self.response = data
else: else:
data = dict(code=result.status_code, data = dict(code=result.status_code,
message=result.text) message=result.text)
self.response = data
log.info("Payment Response: %s" % (data))
except requests.exceptions.RequestException as e: except requests.exceptions.RequestException as e:
data = dict(code=e.errno, data = dict(code=e.errno,
message=e.strerror) message=e.strerror)
log.info("Payment Response: %s" % (data))
self.amt_buy = "harga" in data and data["harga"] or self.amt_buy self.amt_buy = "harga" in data and data["harga"] or self.amt_buy
self.vend_inv_no = "ref_num" in data and data["ref_num"] or self.vend_inv_no self.vend_inv_no = "ref_num" in data and data["ref_num"] or self.vend_inv_no
self.response = data
self.result = self.pars_data(data) self.result = self.pars_data(data)
log.info("Payment Result: %s" % (self.result)) log.info("Payment Result: %s" % (self.result))
self.save_log('payment') self.save_log('payment')
...@@ -105,14 +110,24 @@ class Vendor(VendorClass): ...@@ -105,14 +110,24 @@ class Vendor(VendorClass):
def advice(self): def advice(self):
params = self.get_params(cmd='ADV', modul='ISI') params = self.get_params(cmd='ADV', modul='ISI')
params["tujuan"] = self.id_pel
params["voucherid"] = self.vendor_produk.kode
self.request = params self.request = params
log.info("Advice Request: %s" % (self.request))
try:
result = requests.get(self.url, params=params, timeout=15) result = requests.get(self.url, params=params, timeout=15)
if result.ok: if result.ok:
data = xmltodict.parse(result.text)["root"] data = xmltodict.parse(result.text)["root"]
self.response = data
else: else:
data = dict(error=result.status_code) data = dict(code=result.status_code,
message=result.text)
self.response = data
log.info("Advice Response: %s" % (self.response))
except:
data = dict(code=999,
message="No Response From Biller")
self.result = data
log.info("Advice Result: %s" % (self.result))
self.save_log('advice') self.save_log('advice')
return data return data
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!