Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Kunto
/
backoffice
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 6fad9750
authored
Sep 16, 2019
by
Solo Group
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
cancel
1 parent
2bdb8632
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
76 additions
and
175 deletions
src/agratek/api/merchant/views/api_merchant.py
src/agratek/api/merchant/views/np/__init__.py
src/agratek/api/merchant/views/np/cancel_tx.py
src/agratek/api/merchant/views/vendor.py
src/agratek/api/merchant/views/api_merchant.py
View file @
6fad975
...
...
@@ -400,7 +400,10 @@ def cancel_tx(dat):
dat
[
"message"
]
=
"Data Tagihan {} tidak ditemukan"
.
format
(
inv_no
)
return
dat
payment
=
inv
.
payment
[
"response"
]
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
)
...
...
src/agratek/api/merchant/views/np/__init__.py
View file @
6fad975
...
...
@@ -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
,
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
)
"""
\
.
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
])
...
...
@@ -508,10 +420,10 @@ class Vendor(VendorClass): # VendorClass
</script>
<noscript>Your browser does not support JavaScript!</noscript>
"""
.
format
(
url
=
self
.
invoice_det
.
callback_url
,
script
=
script
,
f
=
f
)
url
=
self
.
invoice_det
.
callback_url
,
script
=
script
,
f
=
f
)
return
dict
(
form
=
form
)
def
advice
(
self
):
...
...
@@ -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
...
...
@@ -722,7 +603,7 @@ def get_result(response, pay_method):
receiptCode ANS 18 Authorization code (CVS)
"""
other
=
dict
(
pay_no
=
"payNo"
in
response
and
response
[
"payNo"
]
or
""
,
pay_no
=
"payNo"
in
response
and
response
[
"payNo"
]
or
""
,
valid_date
=
"payValidDt"
in
response
and
response
[
"payValidDt"
]
or
""
,
valid_time
=
"payValidTm"
in
response
and
response
[
"payValidTm"
]
or
""
,
m_ref_no
=
"mRefNo"
in
response
and
response
[
"mRefNo"
]
or
""
,
...
...
src/agratek/api/merchant/views/np/cancel_tx.py
0 → 100644
View file @
6fad975
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"
]
src/agratek/api/merchant/views/vendor.py
View file @
6fad975
...
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment