Commit 3f809681 by Solo Group

VSI

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