Commit 616f530d by Solo Group

cancel

1 parent 6fad9750
......@@ -400,9 +400,12 @@ def cancel_tx(dat):
dat["message"] = "Data Tagihan {} tidak ditemukan".format(inv_no)
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:
payment = inv.payment["response"]
payment = inv.payment and "response" in inv.payment and \
inv.payment["response"] or None
if not payment:
dat["status"] = "FAILED"
......@@ -423,7 +426,7 @@ def cancel_tx(dat):
typ = 'proses'
cls = hasattr(moduls, typ) and getattr(moduls, typ) or None
if cls:
order = cls(inv, vend_produk)
order = cls(inv, vend_produk, dat)
return order
return dict()
......@@ -431,30 +434,6 @@ def cancel_tx(dat):
@jsonrpc_method(method='cancel', endpoint='api-merchant')
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)
i = 0
is_list = type(data) == list
......@@ -464,11 +443,13 @@ def cancel_rpc(request, data):
raise JsonRpcCustomerNotFoundError
r_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["message"] = "Parameter tidak lengkap"
dat.update(cancel_tx(dat))
else:
dat.update(cancel_tx(dat))
r_data.append(dat)
i += 1
data = is_list and r_data or r_data[0]
......
......@@ -448,13 +448,16 @@ class Vendor(VendorClass): # VendorClass
def cancel(self, data):
Nicepay.requestData = {}
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:
payment = self.invoice_det.payment["response"]
Nicepay.set("payMethod", payment["payMethod"])
Nicepay.set("cancelType", data["cancel_type"])
Nicepay.set("preAuthToken", payment["preAuthToken"])
Nicepay.set("cancelType", str(data["cancel_type"]))
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)
self.request = Nicepay.requestData
......@@ -517,16 +520,22 @@ def get_result(response, pay_method):
# deposit_date="depositDt" in response and response["depositDt"] or "",
# deposit_time="depositTm" in response and response["depositTm"] or "",
# 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 "",
amount="amt" in response and int(response["amt"]) or 0,
match_cl="matchCl" in response and int(response["matchCl"]) or 0,
amount="amt" in response and response["amt"] and int(response["amt"]) or 0,
match_cl="matchCl" in response and response["matchCl"] and int(response["matchCl"]) or 0,
status=status,
trans_date="transDt" in response and response["transDt"] or "",
trans_time="transTm" in response and response["transTm"] or "",
currency="currency" in response and response["currency"] or "",
description="goodsNm" in response and response["goodsNm"] or "",
customer_nm="billingNm" in response and response["billingNm"] or "",
)
))
if pay_method == "01":
result.update(dict(
credit_card=dict(
......
......@@ -6,8 +6,8 @@ from opensipkd.pasar.models.produk import PartnerPay, PartnerProduk
log = logging.getLogger(__name__)
from . import Vendor
def proses(invoice_det, vendor_produk):
def proses(invoice_det, vendor_produk, data):
vendor = Vendor(vendor_produk, invoice_det)
vendor.cancel()
vendor.cancel(data)
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!