Commit a0efbbb9 by yasir

InsyaAllah selesai

1 parent 6203408b
......@@ -89,6 +89,7 @@ test-postpaid-inquiry,/api/test/postpaid/inquiry,API TEST INQUIRY POSTPAUD,1,0
api-vsi,/api/vsi,'API VSI,1,0
pay-form,/pay/{pay_token},Metode Pembayaran,1,0
pay-info,/pay_info/{pay_token}/{meth},Informasi Pembayaran,1,0
pay-info,/pay_info/{pay_token}/{state}/,Informasi Pembayaran,1,0
pay-request,/pay_request,Pembayaran,1,0
pay-request-resp,/pay_request_resp,Respon Request Pembayaran,1,0
\ No newline at end of file
pay-request-resp,/pay_request_resp,Respon Request Pembayaran,1,0
tangkap-response,/tangkap_response,tes_dong,1,0
\ No newline at end of file
......@@ -9,60 +9,78 @@ from ..pay_request_tools import methods, vacs, cvss, loans, cps, ems, get_str_ha
class view_pay(BaseView):
@view_config(route_name = 'pay-info', renderer = 'templates/pay_info.pt')#permission = 'pay-form',
@view_config(route_name = 'pay-info', renderer = 'templates/pay_info_fail.pt', request_param='adt=fail')#permission = 'pay-form',
def the_form(self):
request = self.req
session = self.ses
url_dict = request.matchdict
meth = url_dict['meth']
state = url_dict['state']
pay_token = url_dict['pay_token']
row_pay = PartnerPay.query().filter(PartnerPay.token_pay_req == pay_token).first()
amount = 0,
if meth == 'VA':
subject = 'No. Virtual Account'
content = row_pay.card_no
dt_tm_str = '',
img_src = '',
va_dt = row_pay.inv_valid_date
va_tm = row_pay.inv_valid_time
va_dt = datetime.strptime(va_dt, "%Y%m%d").date()
hari_str = get_str_hari(va_dt.day, va_dt.month, va_dt.year)
bulan_str = get_str_bulan(va_dt.month)
va_tm = datetime.strptime(va_tm, "%H%M%S").time()
jam_str = str(va_tm.hour) + str(va_tm.minute)
# Jum'at, 27 Desember 2019, Pukul 04:44 WIB
dt_tm_str = hari_str + ', ' + str(va_dt.day) + ' ' + bulan_str + ' ' + str(va_dt.year) + ', Pukul ' + str(va_tm) + ' WIB'
meth_str = '',
denom_str = row_pay.pay_denom
layanan = denom_str.split('-')[1]
img_src = VA_IMG_SRC[layanan]
subject = '',
content = '',
response_url = ''
amount = format(row_pay.amt_sell, ',d').replace(',', '.')
# bringback_url = bringback_url
if state == '0':
pay_token = url_dict['pay_token']
row_pay = PartnerPay.query().filter(PartnerPay.token_pay_req == pay_token).first()
meth = row_pay.pay_req_mth
meth_str = dict(methods)[meth] + ', ' + dict(vacs)[denom_str]
bringback_url = row_pay.bringback_url
if meth == 'VA':
subject = 'No. Virtual Account'
content = row_pay.card_no
va_dt = row_pay.inv_valid_date
va_tm = row_pay.inv_valid_time
va_dt = datetime.strptime(va_dt, "%Y%m%d").date()
hari_str = get_str_hari(va_dt.day, va_dt.month, va_dt.year)
bulan_str = get_str_bulan(va_dt.month)
va_tm = datetime.strptime(va_tm, "%H%M%S").time()
jam_str = str(va_tm.hour) + str(va_tm.minute)
# Jum'at, 27 Desember 2019, Pukul 04:44 WIB
dt_tm_str = hari_str + ', ' + str(va_dt.day) + ' ' + bulan_str + ' ' + str(va_dt.year) + ', Pukul ' + str(va_tm) + ' WIB'
elif meth == 'CC':
content = row_pay.card_no
elif meth == 'CVS':
subject = ''
content = ''
elif meth == 'EM':
subject = ''
content = ''
elif meth == 'loan':
subject = ''
content = ''
elif meth == 'CP':
subject = ''
content = ''
denom_str = row_pay.pay_denom
layanan = denom_str.split('-')[1]
img_src = VA_IMG_SRC[layanan]
amount = format(row_pay.amt_sell, ',d').replace(',', '.')
meth = row_pay.pay_req_mth
meth_str = dict(methods)[meth] + ', ' + dict(vacs)[denom_str]
response_url = row_pay.response_url
elif meth == 'CC':
content = row_pay.card_no
elif meth == 'CVS':
subject = ''
content = ''
elif meth == 'EM':
subject = ''
content = ''
elif meth == 'loan':
subject = ''
content = ''
elif meth == 'CP':
subject = ''
content = ''
return dict(
state = state,
amount = amount,
dt_tm_str = dt_tm_str,
......@@ -73,5 +91,5 @@ class view_pay(BaseView):
subject = subject,
content = content,
bringback_url = bringback_url
response_url = response_url
)
\ No newline at end of file
......@@ -67,6 +67,7 @@ class ParamsSchema(colander.Schema):
currency = colander.SchemaNode(colander.String(), title = "Mata Uang ", widget=widget.HiddenWidget(readonly=True))
amount = colander.SchemaNode(colander.String(), title = "Total Bayar")
invoice_no = colander.SchemaNode(colander.String(), title = "Nomor Invoice")
response_url = colander.SchemaNode(colander.String(), title = "Response URL")
description = colander.SchemaNode(colander.String(), title = "Deskripsi Transaksi", missing=colander.drop)
fee = colander.SchemaNode(colander.Integer(), title = "Fee")
vat = colander.SchemaNode(colander.Integer(), title = "VAT")
......@@ -114,6 +115,8 @@ class ItemsSchema(colander.Schema):
goods_name = colander.SchemaNode(colander.String(), title = "Nama Produk")
goods_detail = colander.SchemaNode(colander.String(), title = "Detail")
goods_amt = colander.SchemaNode(colander.String(), title = "Harga")
qty = colander.SchemaNode(colander.String(), title = "Qty")
subtotal = colander.SchemaNode(colander.String(), title = "Subtotal")
class CartSchema(colander.Schema):
count = colander.SchemaNode(colander.String(), title = "Jumlah", oid="count")
......@@ -192,6 +195,8 @@ class view_pay(BaseView):
goods_name = items[key],
goods_detail = items['goods_detail-' + uniq],
goods_amt = items['goods_amt-' + uniq],
qty = items['qty-' + uniq],
subtotal = items['subtotal-' + uniq]
)
produks.append(produk)
......@@ -227,6 +232,7 @@ class view_pay(BaseView):
"method": "pay_request",
"params": {
"data": {
"response_url": items['response_url'],
"time_stamp": time_stamp,
"currency": "IDR",
"amount": items['amount'],
......
......@@ -20,9 +20,6 @@ log = logging.getLogger(__name__)
def encode_form_to_json(form_request_data, parsed_produks):
decoded_dict = {}
print('isi form_request_data dalam encode_to_json >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
print(form_request_data)
customer_req = {}
deliver_to = {}
server = {}
......@@ -75,14 +72,14 @@ def added_register_values(current_register_values, dat):
added_dict['biller_state'] = dat['biller']['state']
added_dict['biller_post_code'] = dat['biller']['post_code']
added_dict['biller_country'] = dat['biller']['country']
added_dict['bringback_url'] = dat['bringback_url']
added_dict['response_url'] = dat['response_url']
return added_dict
@jsonrpc_method(method='pay_request', endpoint='api-merchant')
def pay_request(request, data, **kwargs):
# user = auth_from_rpc(request)
user = DBSession.query(User).filter(User.id == 1).first()
user = auth_from_rpc(request)
# user = DBSession.query(User).filter(User.id == 1).first()
i = 0
print('masuk sini loh >>>>>>>>>>>>>>>>>>>>>>>>>>>')
if not data:
......@@ -120,7 +117,7 @@ def pay_request(request, data, **kwargs):
r_data["status"] = "SUCCESS"
r_data["message"] = "Data tersimpan silahkan lanjutkan pembayaran"
r_data['code'] = 1
r_data['code'] = 0
r_data['pay_token'] = ar_invoice.token_pay_req
r_data['pay_url'] = request._host + '/pay/' + ar_invoice.token_pay_req
......
from opensipkd.base.views import BaseView
from pyramid.view import view_config
class view_pay(BaseView):
@view_config(route_name = 'tangkap-response', renderer = 'json')#permission = 'pay-form',
def view(self):
request = self.req
session = self.ses
url_dict = request.matchdict
print('masuk masuk >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
print(request.json_body)
\ No newline at end of file
......@@ -275,20 +275,12 @@ td, th {
</select>
<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>
</div>
</div>
</div>
<div id="bt_box" class="col-md-12" style="text-align: right;">
<button style="margin: 0px;" class="btn btn-success col-md-5 col-xs-5 col-sm-5 pull-left" type="submit" name="bayar" id="bt_bayar" >Bayar</button>
<button style="margin: 0px;" class="btn btn-warning col-md-5 col-xs-5 col-sm-5 pull-right" type="submit" name="batal_bayar" id="bt_batal_bayar" >Batal</button>
<div id="bt_box" class="col-md-12" style="text-align: center;">
<button style="margin: 0px; width: 100%;" class="btn btn-success" type="submit" name="bayar" id="bt_bayar" >Bayar</button>
</div>
</form>
<!-- End Template Form -->
<!-- </div> -->
......
......@@ -80,9 +80,6 @@ td, th {
<hr class="col-sm-12 col-md-12 col-xs-12" >
<label style="font-weight: normal;" class="col-md-12 col-xs-12 col-sm-12">${subject}</label>
<label style="font-weight: bolder;" class="col-md-12 col-xs-12 col-sm-12">${content}</label>
<div id="bt_box" class="col-md-12 col-xs-12 col-sm-12" style="padding: 0px; text-align: center; margin-bottom: 10px;">
<button id="btn_tutup" class="btn btn-warning" style="margin: 0px; width: 90%;" type="button">Tutup</button>
</div>
</div>
</div>
......@@ -102,9 +99,6 @@ td, th {
<script>
$(document).ready(function() {
$('#btn_tutup').click(function(){
window.open('${bringback_url}', '_self');
})
})
</script>
......
<html metal:use-macro="load: opensipkd.base:views/templates/base3-clean.pt">
<div metal:fill-slot="content">
<style>
button {
margin:0px 3px;
}
#main{min-height: 1px;
padding-bottom: 1px;}
hr {
display: block;
margin-top: 0px;
margin-bottom: 5px;
margin-left: auto;
margin-right: auto;
/*border-style: inset;*/
/*border-width: 0.2px;*/
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
.control-label{
text-align: left !important;
}
</style>
</div>
<div metal:fill-slot="scripts">
<div class="panel-body col-md-12">
<div class="col-md-6 col-md-offset-3 col-xs-12 well" style="padding: 0px;">
<!-- Proses Template Form -->
<div style="height: 300px; text-align: center;" class="col-xs-12 col-md-12 col-sm-12">
<label style="color: indianred; padding-top: 140px; display: block; font-weight: bold;">Terjadi Kesalahan Sistem, Gagal melakukan transaksi.</label>
<label style="color: indianred; padding-top: 5px; display: block; font-weight: bold;">Code : ${state}</label>
</div>
<!-- End Template Form -->
<!-- </div> -->
</div>
</div>
<script>
$(document).ready(function() {
})
</script>
</div>
</html>
......@@ -334,20 +334,12 @@
`<div class="col-md-12" id="pack-`+cnt+`">`+
`<legend id="judul"></legend>`+
`<button type="button" onclick="removeItem('pack-`+cnt+`')">Hapus</button> `+
`<div tal:define="fieldItem formItemCart['img_url']" id="item-${fieldItem.oid}">`+
`<div class="col-md-8">`+
`<input type="text" name="${fieldItem.name}-`+cnt+`" value="" id="${fieldItem.name}-`+cnt+`">`+
`</div>`+
`</div>`+
`<br></br>`+
`<div tal:define="fieldItem formItemCart['goods_name']" id="item-${fieldItem.oid}">`+
`<label for="${fieldItem.oid}" class="control-label col-md-4 required" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8">`+
`<select class="form-control" name="${fieldItem.name}-`+cnt+`" id="${fieldItem.name}-`+cnt+`" required="required">`+
`<option disabled selected value> -- pilih produk -- </option>`+
`<option tal:repeat="item produks" value="${item[1]}">${item[1]}</option>`+
`</select>`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
......@@ -356,7 +348,7 @@
`<label for="${fieldItem.oid}" class="control-label col-md-4" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8">`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" readonly="">`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
......@@ -364,8 +356,33 @@
`<div tal:define="fieldItem formItemCart['goods_amt']" id="item-${fieldItem.oid}">`+
`<label for="${fieldItem.oid}" class="control-label col-md-4" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8" style="width: 150px;">`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" readonly="">`+
`<div class="col-md-8" >`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
`<br></br>`+
`<div tal:define="fieldItem formItemCart['img_url']" id="item-${fieldItem.oid}">`+
`<label for="${fieldItem.oid}" class="control-label col-md-4" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8" >`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
`<div tal:define="fieldItem formItemCart['qty']" id="item-${fieldItem.oid}">`+
`<label for="${fieldItem.oid}" class="control-label col-md-4" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8" >`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
`<div tal:define="fieldItem formItemCart['subtotal']" id="item-${fieldItem.oid}">`+
`<label for="${fieldItem.oid}" class="control-label col-md-4" id="req-${fieldItem.oid}">`+
`${fieldItem.title}</label>`+
`<div class="col-md-8" >`+
`<input type="text" class="form-control" id="${fieldItem.name}-`+cnt+`" name="${fieldItem.name}-`+cnt+`" value="" >`+
`<p id="error-${fieldItem.oid}" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">${error}</p>`+
`</div>`+
`</div>`+
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!