Commit 6fad9750 by Solo Group

cancel

1 parent 2bdb8632
......@@ -400,7 +400,10 @@ def cancel_tx(dat):
dat["message"] = "Data Tagihan {} tidak ditemukan".format(inv_no)
return dat
payment = inv.notify["request"]
if not payment:
payment = inv.payment["response"]
if not payment:
dat["status"] = "FAILED"
dat["message"] = "Data Pembayaran {} tidak ditemukan".format(inv_no)
......
......@@ -21,8 +21,6 @@ class Vendor(VendorClass): # VendorClass
self.bank_cd, self.pay_method = self.v_produk_kd.split('-')
self.mid = 'np_mid' in settings and settings['np_mid'] or None
# khusus payloan, imidnya tersendiri. jika tdk diset, maka disamakan dgn yg lain
# tambahkan setting np_loan_mid di ini file
if self.pay_method == '06' and 'np_loan_mid' in settings and settings['np_loan_mid']:
self.mid = settings['np_load_mid']
......@@ -45,36 +43,19 @@ class Vendor(VendorClass): # VendorClass
self.cust_kd = customer.kode
self.cust_inv_no = self.invoice_det.cust_inv_no
if self.pay_method == "02" and is_devel():
# self.mid = "VACTFOPEND" # sama dgn yang lain
key = ":".join([self.mid, self.key]).encode()
self.auth = base64.b64encode(key).decode()
# if self.pay_method == "02" and is_devel():
# # self.mid = "VACTFOPEND" # sama dgn yang lain
# key = ":".join([self.mid, self.key]).encode()
# self.auth = base64.b64encode(key).decode()
self.va_typ = None
self.reccuring = False
self.amt = str(self.invoice_det.amt_sell)
# setMandatoryParameter
# def request_payment(self, response):
# Nicepay.requestData={}
# Nicepay.set('timeStamp', self.invoice_det.time_stamp)
# Nicepay.set('referenceNo', self.cust_inv_no)
# Nicepay.set('tXid', response["tXid"])
# Nicepay.set('cardNo', self.invoice_det.card_no)
# Nicepay.set('cardExpYymm', self.invoice_det.card_exp) # format Yymm '2012'
# Nicepay.set('cardCvv', self.invoice_det.card_cvv)
# Nicepay.set('recurringToken', '')
# Nicepay.set('preauthToken', '')
# Nicepay.set('clickPayNo', '')
# Nicepay.set('dataField3', '')
# Nicepay.set('clickPayToken', '')
# Nicepay.set('callBackUrl', self.callback_url)
# result = Nicepay.nicePayment()
# return result
def set_static_params(self):
if not self.cust_inv_no:
return
Nicepay.set('timeStamp', self.invoice_det.inv_time_stamp) #
Nicepay.set('iMid', self.mid)
Nicepay.set('referenceNo', self.cust_inv_no)
......@@ -86,6 +67,7 @@ class Vendor(VendorClass): # VendorClass
def set_billing_param(self):
if not self.invoice_det:
return
Nicepay.set('payMethod', self.pay_method)
Nicepay.set('currency', 'IDR')
Nicepay.set('userIP', self.invoice_det.inv_cust_ip)
......@@ -121,26 +103,9 @@ class Vendor(VendorClass): # VendorClass
Nicepay.set('deliveryState', self.invoice_det.delivery_state)
Nicepay.set('deliveryPostCd', self.invoice_det.delivery_pos)
Nicepay.set('deliveryCountry', self.invoice_det.delivery_country)
# Nicepay.set('deliveryEmail', self.invoice_det.delivery_email)
# print('>>> INVOICE DET:', self.invoice_det.vat, type(self.invoice_det.vat),
# self.invoice_det.fee, type(self.invoice_det.fee),
# self.invoice_det.notax_amt, type(self.invoice_det.notax_amt))
Nicepay.set('reqClientVer', '')
Nicepay.set('reqDt', self.invoice_det.req_dt) # Format (YYYYMMDD)
Nicepay.set('reqTm', self.invoice_det.req_tm) # Format (HHiiss)
# Nicepay.set('reqDt', '') # Format (YYYYMMDD)
# Nicepay.set('reqTm', '') # Format (HHiiss)
# Nicepay.set('instmntType', '')
# Nicepay.set('instmntMon', '')
# Nicepay.set('mRefNo', '')
# result dari nicepay
# Nicepay.set('tXid', '')
# Nicepay.set('transDt', '')
# Nicepay.set('transTm', '')
# Nicepay.set('payValidDt', '')
# Nicepay.set('payValidTm', '')
# Nicepay.set('recurrOpt', '')
def register(self):
Nicepay.requestData = {}
......@@ -208,8 +173,8 @@ class Vendor(VendorClass): # VendorClass
# Process to nice pay register
self.request = Nicepay.requestData
np_request=self.request
np_request["cartData"]=json.dumps(np_request["cartData"])
np_request = self.request
np_request["cartData"] = json.dumps(np_request["cartData"])
log.info("NP PRE REQUEST: {}".format(np_request))
log.info("NP REQUEST: {}".format(json.dumps(np_request)))
......@@ -252,44 +217,6 @@ class Vendor(VendorClass): # VendorClass
self.invoice_det.trans_tm = response["transTm"]
self.invoice_det.tx_id = tx_id
self.vend_inv_no = response["tXid"]
# if self.pay_method == "01":
# request_data = Nicepay.requestData
# settings = get_settings()
# call_back_url = settings['switcher_call_back_url']
# result.update(dict(
# time_stamp=request_data['timeStamp'],
# tx_id=self.invoice_det.tx_id,
# merchant_token=request_data['merchantToken'],
# call_back_url=call_back_url,
# ))
# todok result harus html
# settings = get_settings()
# form = """<!DOCTYPE html>
# <html lang="en-us">
# <head>
# <meta http-equiv="content-type" content="text/html; charset=utf-8">
# <title>Payment</title>
# </head>
# <body>
# <script>
# //document.write("Hello World!")
# </script>
# <noscript>Your browser does not support JavaScript!</noscript>
# </body>
# </html>
# """.format(
# url=settings["_host"],
# time_stamp=request_data['timeStamp'],
# tx_id=result['tx_id'],
# merchant_token=request_data['merchantToken'],
# card_no=self.invoice_det.card_no,
# card_exp=self.card_exp,
# card_cvv=self.card_cvv,
# card_holder_nm=self.card_name,
# call_back_url=call_back_url,
# )
# result['form'] = form
if self.pay_method == "02":
result["va"] = dict(
......@@ -308,16 +235,6 @@ class Vendor(VendorClass): # VendorClass
)
self.invoice_det.card_no = response['payNo']
# elif self.pay_method == "04":
# # clickpay
# result["receipt_code"]=response['receiptCode']
# elif self.pay_method == "05":
# # e-wallet
# result["receipt_code"]='receiptCode' in response and response['receiptCode'] or ''
# elif self.pay_method == "06":
# # akulaku
# pass
self.result = result
self.save_log(typ="inquiry")
return dict(data=result)
......@@ -326,11 +243,6 @@ class Vendor(VendorClass): # VendorClass
Nicepay.requestData = {}
Nicepay.merchantKey = self.key
self.set_static_params()
# Nicepay.set('referenceNo', self.invoice_det.cust_inv_no)
# Nicepay.set('amt', self.invoice_det.amt_sell)
# Nicepay.set('merchantToken', Nicepay.merchantToken())
# Nicepay.set('callBackUrl', self.callback_url)
# Nicepay.set('tXid', str(self.invoice_det.vend_inv_no) or '')
url = "{}/payment".format(self.url)
if self.pay_method == '01':
if not req_fields(data, ["card_no", "callback_url", "card_exp",
......@@ -339,11 +251,6 @@ class Vendor(VendorClass): # VendorClass
self.invoice_det.card_no = data["card_no"]
self.invoice_det.callback_url = data["callback_url"]
flush_row(self.invoice_det)
#
# Nicepay.set('cardNo', str(self.invoice_det.card_no) or '')
# Nicepay.set('cardExpYymm', str(data["card_exp"]) or '')
# Nicepay.set('cardCvv', str(data["card_cvv"]) or '')
# Nicepay.set('cardHolderNm', str(data["card_name"]) or '')
request_data = Nicepay.requestData
script = """
function submit_form(){
......@@ -353,7 +260,7 @@ class Vendor(VendorClass): # VendorClass
submit_form();
});
"""
#/api/merchant/payment
# /api/merchant/payment
form = """
<form action="{url}" method="post" name="payment">
<input type="hidden" name="timeStamp" value="{time_stamp}">
......@@ -457,14 +364,19 @@ class Vendor(VendorClass): # VendorClass
</script>
<noscript>Your browser does not support JavaScript!</noscript>
""".format(
url=url,
""" \
.format(url=url,
time_stamp=self.invoice_det.inv_time_stamp,
tx_id=self.invoice_det.vend_inv_no,
merchant_token=request_data['merchantToken'],
call_back_url=self.callback_url,
script=script
)
else:
form = """
Payment Not Supported
"""
self.request = data
self.save_log("payment")
return dict(form=form)
......@@ -491,7 +403,7 @@ class Vendor(VendorClass): # VendorClass
self.save_log("payment")
for r in result:
if r and type(result[r])==dict:
if r and type(result[r]) == dict:
rs = result[r]
for s in rs:
f += '<input type="hidden" name="{k}" value="{v}">'.format(k=s, v=rs[s])
......@@ -527,70 +439,39 @@ class Vendor(VendorClass): # VendorClass
self.response = response
log.info("NP RESPONSE: {}".format(json.dumps(self.response)))
self.save_log("advice")
# if 'resultCd' not in response:
# self.result = dict(
# error="Connection Timeout. Please Try Again!"
# )
# self.save_log(typ="inquiry")
# return
# result = dict()
# try:
# result_code = int(response['resultCd'])
# except:
# result_code = 999
#
# result["code"] = result_code
# result["message"] = response['resultMsg']
# if result_code == 0: # or self.pay_method == '01':
# result["code"] = 0
# result["message"] = 'SUCCESS'
# time_stamp = datetime.now().strftime('%Y%m%d%H%M%S')
# key = sha256("{}{}".format(self.cust_inv_no, time_stamp))
# tx_id = "{}{}".format(self.invoice_det.customer.users.user_name, key)
# result["tx_id"] = tx_id
# result["invoice_no"] = response['referenceNo']
# result["amount"] = response['amt']
# result["trans_date"] = response['transDt']
# result["trans_time"] = response['transTm']
# result["description"] = response['description']
# self.invoice_det.trans_dt = response["transDt"]
# self.invoice_det.trans_tm = response["transTm"]
# self.invoice_det.tx_id = tx_id
# self.vend_inv_no = response["tXid"]
# if self.pay_method == "02":
# result["va"] = dict(
# vacct_no=response['vacctNo'],
# valid_date=response['vacctValidDt'],
# valid_time=response['vacctValidTm'],
# )
# self.invoice_det.card_no = response['vacctNo']
#
# elif self.pay_method == "03":
# result["cvs"] = dict(
# pay_no=response['payNo'],
# valid_date=response['payValidDt'],
# valid_time=response['payValidTm'],
# )
# self.invoice_det.card_no = response['payNo']
# elif self.pay_method == "04":
# # clickpay
# result["receipt_code"]=response['receiptCode']
# elif self.pay_method == "05":
# # e-wallet
# result["receipt_code"]='receiptCode' in response and response['receiptCode'] or ''
# elif self.pay_method == "06":
# # akulaku
# pass
# self.result = result
self.save_log("advice")
self.result = get_result(self.response, self.pay_method)
self.result["tx_id"] = self.invoice_det.tx_id
self.save_log("advice")
def cancel(self, data):
Nicepay.requestData = {}
self.set_static_params()
payment = self.invoice_det.notify["request"]
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("tXid", self.invoice_det.vend_inv_no)
self.request = Nicepay.requestData
log.info("CANCEL REUQEST: {}".format(self.request))
self.save_log("cancel")
result_data = Nicepay.niceCancel()
response = json.loads(result_data)
self.response = response
log.info("CANCEL RESPONSE: {}".format(json.dumps(self.response)))
self.save_log("cancel")
# self.result = result
self.result = get_result(self.response, self.pay_method)
self.result["tx_id"] = self.invoice_det.tx_id
self.save_log("cancel")
def notify(self, data):
amount = self.invoice_det.amt_sell
vend_inv_no = self.invoice_det.vend_inv_no
......
import logging
from agratek.api.merchant.views.notify_vendor import payment_notify
from opensipkd.pasar.models.produk import PartnerPay, PartnerProduk
log = logging.getLogger(__name__)
from . import Vendor
def proses(invoice_det, vendor_produk):
vendor = Vendor(vendor_produk, invoice_det)
vendor.cancel()
return invoice_det.cancel["result"]
......@@ -174,6 +174,10 @@ class VendorClass(object):
self.invoice_det.notify = dict(request=self.request,
response=self.response,
result=self.result)
elif typ == 'cancel':
self.invoice_det.cancel = dict(request=self.request,
response=self.response,
result=self.result)
flush_row(self.invoice_det)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!