Commit cc26715f by Solo Group

pln

1 parent 4bd4cd6a
......@@ -105,21 +105,32 @@ class Vendor(VendorClass):
resp = self.request_post(params, '/prepaid/purchase')
try:
result = json.loads(resp.text)
success = True
except:
result = resp.text
success = False
self.response = result
log.info("ODEO Payment Response: %s" % self.response)
if resp.ok:
# self.status = 1 # sukses
if success:
if result["status"]=="SUCCESS":
self.status = 1
elif result["status"]=="PENDING":
self.status = -1
elif result["status"]=="GAGAL":
self.status = -2
data = "data" in result and result["data"] or None
if data:
self.vend_trx = "order_id" in data and data["order_id"] or None
self.vend_inv_no = "order_id" in data and data["order_id"] or None
self.amt_buy = "price" in data and data["price"] or 0
parsd = self.pars_data(data)
if not parsd:
else:
# parsd = self.pars_data(data)
# if not parsd:
self.status = -4
parsd = dict(code=500,
message="Other Error",
......
......@@ -20,7 +20,7 @@ from pyramid.httpexceptions import HTTPFound
from pyramid.view import view_config
from . import BaseView # , save_file_upload
from ..models import (DBSession, flush_row, Partner, PartnerProduk)
from ..models import (DBSession, flush_row, Partner, PartnerProduk, H2hArInvoice)
from ..models import (Produk, ProdukKategori)
from ..tools import (btn_next, date_from_str, get_settings, btn_reset,
btn_inquiry, btn_advice, btn_payment)
......@@ -49,6 +49,7 @@ class VendorClass(object):
self.serial_number = invoice_det and hasattr(invoice_det, 'serial_number') \
and invoice_det.serial_number or None
self.amt_buy = 0
def save_log(self, typ):
# if not self.partner_log:
......@@ -70,6 +71,10 @@ class VendorClass(object):
if self.vend_inv_no:
self.invoice_det.vend_inv_no = self.vend_inv_no
if self.amt_buy:
self.invoice_det.amt_buy = self.amt_buy
if typ == 'inquiry':
self.invoice_det.inquiry = dict(request=self.request,
response=self.response)
......@@ -177,25 +182,27 @@ def proses_odeo(request):
log.info("Signature Vendor Different")
log.info("local %s, vendor %s" % (signature, data["signature"]))
return dict(error="Signature Different")
order = PartnerLog.query() \
.filter(PartnerLog.vendor_id == partner.id,
PartnerLog.vend_trx == str(order_id)).first()
order = H2hArInvoice.query() \
.filter(H2hArInvoice.vendor_id == partner.id,
H2hArInvoice.vend_inv_no == str(order_id)).first()
if order:
if status == "COMPLETED":
order.status = 1
else:
order.status = -1
flush_row(order)
customer = Partner.query_id(order.customer_id).first()
if customer and customer.website:
users = customer.users
url = customer.website
c_data = dict(trx_id=order.cust_trx,
status=status,
signature=sha256(users.user_name + users.api_key))
with requests.session():
requests.post(url, data=c_data)
#
# customer = Partner.query_id(order.customer_id).first()
# if customer and customer.website:
# users = customer.users
# url = customer.website
# c_data = dict(trx_id=order.cust_trx,
# status=status,
# signature=sha256(users.user_name + users.api_key))
# with requests.session():
# requests.post(url, data=c_data)
@view_config(route_name='api-vendor-notify', renderer='json')
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!