Commit 616f530d by Solo Group

cancel

1 parent 6fad9750
...@@ -400,9 +400,12 @@ def cancel_tx(dat): ...@@ -400,9 +400,12 @@ def cancel_tx(dat):
dat["message"] = "Data Tagihan {} tidak ditemukan".format(inv_no) dat["message"] = "Data Tagihan {} tidak ditemukan".format(inv_no)
return dat return dat
payment = inv.notify["request"] payment = inv.notify and "request" in inv.notify and \
inv.notify["request"] or None
# inv.notify["request"]
if not payment: if not payment:
payment = inv.payment["response"] payment = inv.payment and "response" in inv.payment and \
inv.payment["response"] or None
if not payment: if not payment:
dat["status"] = "FAILED" dat["status"] = "FAILED"
...@@ -423,7 +426,7 @@ def cancel_tx(dat): ...@@ -423,7 +426,7 @@ def cancel_tx(dat):
typ = 'proses' typ = 'proses'
cls = hasattr(moduls, typ) and getattr(moduls, typ) or None cls = hasattr(moduls, typ) and getattr(moduls, typ) or None
if cls: if cls:
order = cls(inv, vend_produk) order = cls(inv, vend_produk, dat)
return order return order
return dict() return dict()
...@@ -431,30 +434,6 @@ def cancel_tx(dat): ...@@ -431,30 +434,6 @@ def cancel_tx(dat):
@jsonrpc_method(method='cancel', endpoint='api-merchant') @jsonrpc_method(method='cancel', endpoint='api-merchant')
def cancel_rpc(request, data): def cancel_rpc(request, data):
"""
Digunakan untuk mendapatkan daftar produk
:param request:
:param data:
{
denom: string,
id_pel:string
inv_no: string optional
}
:param token:
user_token
:return:
{
product_nm:string,
denom: string,
id_pel:string
inv_no: string optional
denom:string,
harga:integer,
admin:integer,
discount:integer,
total:integer,
status:success/pending/failed
"""
user = auth_from_rpc(request) user = auth_from_rpc(request)
i = 0 i = 0
is_list = type(data) == list is_list = type(data) == list
...@@ -464,11 +443,13 @@ def cancel_rpc(request, data): ...@@ -464,11 +443,13 @@ def cancel_rpc(request, data):
raise JsonRpcCustomerNotFoundError raise JsonRpcCustomerNotFoundError
r_data = [] r_data = []
for dat in data: for dat in data:
if "invoice_no" not in dat and "tx_id" not in dat and "cancel_type" not in dat: if "invoice_no" not in dat or "tx_id" not in dat \
or "cancel_type" not in dat\
or "cancel_msg" not in dat:
dat["status"] = "FAILED" dat["status"] = "FAILED"
dat["message"] = "Parameter tidak lengkap" dat["message"] = "Parameter tidak lengkap"
else:
dat.update(cancel_tx(dat)) dat.update(cancel_tx(dat))
r_data.append(dat) r_data.append(dat)
i += 1 i += 1
data = is_list and r_data or r_data[0] data = is_list and r_data or r_data[0]
......
...@@ -448,13 +448,16 @@ class Vendor(VendorClass): # VendorClass ...@@ -448,13 +448,16 @@ class Vendor(VendorClass): # VendorClass
def cancel(self, data): def cancel(self, data):
Nicepay.requestData = {} Nicepay.requestData = {}
self.set_static_params() self.set_static_params()
payment = self.invoice_det.notify["request"] payment = self.invoice_det.notify and "request" in self.invoice_det.notify and \
self.invoice_det.notify["request"] or None
if not payment: if not payment:
payment = self.invoice_det.payment["response"] payment = self.invoice_det.payment["response"]
Nicepay.set("payMethod", payment["payMethod"]) Nicepay.set("payMethod", payment["payMethod"])
Nicepay.set("cancelType", data["cancel_type"]) Nicepay.set("cancelType", str(data["cancel_type"]))
Nicepay.set("preAuthToken", payment["preAuthToken"]) Nicepay.set("cancelMsg", data["cancel_msg"])
pre_auth_token = "preAuthToken" in payment and payment["preAuthToken"] or ""
Nicepay.set("preAuthToken", pre_auth_token)
Nicepay.set("tXid", self.invoice_det.vend_inv_no) Nicepay.set("tXid", self.invoice_det.vend_inv_no)
self.request = Nicepay.requestData self.request = Nicepay.requestData
...@@ -517,16 +520,22 @@ def get_result(response, pay_method): ...@@ -517,16 +520,22 @@ def get_result(response, pay_method):
# deposit_date="depositDt" in response and response["depositDt"] or "", # deposit_date="depositDt" in response and response["depositDt"] or "",
# deposit_time="depositTm" in response and response["depositTm"] or "", # deposit_time="depositTm" in response and response["depositTm"] or "",
# tx_id= "", # <= diisi tx_id merchant saat request register # tx_id= "", # <= diisi tx_id merchant saat request register
)
if code!=0:
return result
result.update(dict(
invoice_no="referenceNo" in response and response["referenceNo"] or "", invoice_no="referenceNo" in response and response["referenceNo"] or "",
amount="amt" in response and int(response["amt"]) or 0, amount="amt" in response and response["amt"] and int(response["amt"]) or 0,
match_cl="matchCl" in response and int(response["matchCl"]) or 0, match_cl="matchCl" in response and response["matchCl"] and int(response["matchCl"]) or 0,
status=status, status=status,
trans_date="transDt" in response and response["transDt"] or "", trans_date="transDt" in response and response["transDt"] or "",
trans_time="transTm" in response and response["transTm"] or "", trans_time="transTm" in response and response["transTm"] or "",
currency="currency" in response and response["currency"] or "", currency="currency" in response and response["currency"] or "",
description="goodsNm" in response and response["goodsNm"] or "", description="goodsNm" in response and response["goodsNm"] or "",
customer_nm="billingNm" in response and response["billingNm"] or "", customer_nm="billingNm" in response and response["billingNm"] or "",
) ))
if pay_method == "01": if pay_method == "01":
result.update(dict( result.update(dict(
credit_card=dict( credit_card=dict(
......
...@@ -6,8 +6,8 @@ from opensipkd.pasar.models.produk import PartnerPay, PartnerProduk ...@@ -6,8 +6,8 @@ from opensipkd.pasar.models.produk import PartnerPay, PartnerProduk
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
from . import Vendor from . import Vendor
def proses(invoice_det, vendor_produk): def proses(invoice_det, vendor_produk, data):
vendor = Vendor(vendor_produk, invoice_det) vendor = Vendor(vendor_produk, invoice_det)
vendor.cancel() vendor.cancel(data)
return invoice_det.cancel["result"] return invoice_det.cancel["result"]
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!