Commit cc26715f by Solo Group

pln

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