From 447e8bd7ef097792498abd65056e7111046ceda3 Mon Sep 17 00:00:00 2001 From: yixian Date: Wed, 31 Jan 2018 17:21:44 +0800 Subject: [PATCH 1/2] invoice with gst --- .../core/impls/TradeLogServiceImpl.java | 2 +- .../resources/jasper/partner_invoice_gst.jasper | Bin 0 -> 84473 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/main/resources/jasper/partner_invoice_gst.jasper diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index 1694ea999..4bb98e03c 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -115,7 +115,7 @@ public class TradeLogServiceImpl implements TradeLogService { // @Value("classpath:/jasper/trans_flow.jasper") // @Value("classpath:/jasper/trans_flow_new.jasper") - @Value("classpath:/jasper/partner_invoice.jasper") + @Value("classpath:/jasper/partner_invoice_gst.jasper") private org.springframework.core.io.Resource trans_flow; @Value("classpath:/jasper/royalpay_logo.png") private org.springframework.core.io.Resource logo; diff --git a/src/main/resources/jasper/partner_invoice_gst.jasper b/src/main/resources/jasper/partner_invoice_gst.jasper new file mode 100644 index 0000000000000000000000000000000000000000..95cd7257eb37afabd0851a438a3bc5a6457ba50b GIT binary patch literal 84473 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 literal 0 HcmV?d00001 From afb9586017d256199d8268e674d2760ecc4c7fe9 Mon Sep 17 00:00:00 2001 From: yixian Date: Wed, 31 Jan 2018 18:08:17 +0800 Subject: [PATCH 2/2] asynchronize redirect after payment --- .../templates/payment/v1/gateway_jsapi.js | 34 ++++++++++++++---- .../ui/static/templates/payment/v1/payment.js | 35 ++++++++++++++++--- .../templates/payment/v1/retail_jsapi.js | 20 ++++++++++- 3 files changed, 78 insertions(+), 11 deletions(-) diff --git a/src/main/ui/static/templates/payment/v1/gateway_jsapi.js b/src/main/ui/static/templates/payment/v1/gateway_jsapi.js index 42b571ea1..fc837d49c 100644 --- a/src/main/ui/static/templates/payment/v1/gateway_jsapi.js +++ b/src/main/ui/static/templates/payment/v1/gateway_jsapi.js @@ -4,16 +4,18 @@ $(document).ready(function () { 'use strict'; decode(); + function decode() { var redirect = window.redirect; - while(redirect.indexOf('://')<0){ + while (redirect.indexOf('://') < 0) { redirect = decodeURIComponent(redirect); - if(redirect==window.redirect){ + if (redirect == window.redirect) { break; } window.redirect = redirect; } } + var dataCache = {paying: false}; $('#key_P').bind('touchstart', startPay); if (window.paydata) { @@ -21,6 +23,7 @@ $(document).ready(function () { invokePay(window.paydata); }) } + function startPay() { $('#wdiv').show(); if (dataCache.paying) { @@ -33,13 +36,13 @@ $(document).ready(function () { method: 'get', dataType: 'json', success: function (pay) { - if('SUCCESS'!=pay.return_code){ + if ('SUCCESS' != pay.return_code) { alert(pay.return_msg); $('#wdiv').hide(); dataCache.paying = false; return; } - if(pay.direct_paid){ + if (pay.direct_paid) { dataCache.paying = false; location.href = window.redirect + (window.redirect.indexOf('?') < 0 ? '?' : '&') + 'success=true'; } @@ -67,7 +70,7 @@ $(document).ready(function () { }, function (res) { dataCache.paying = false; if (res.err_msg == 'get_brand_wcpay_request:ok') { - location.href = window.redirect + (window.redirect.indexOf('?') < 0 ? '?' : '&') + 'success=true'; + startCheckOrder(window.client_moniker, window.merchant_orderid); } else { if (res.err_msg != 'get_brand_wcpay_request:cancel' && res.err_msg != 'get_brand_wcpay_request:fail') { alert('WeChat Error:' + res.err_msg); @@ -81,6 +84,25 @@ $(document).ready(function () { }) } + function startCheckOrder(clientMoniker, merchantOrderId) { + function checkOrderStd() { + $.ajax({ + url: '/api/v1.0/payment/clients/' + clientMoniker + '/orders/' + merchantOrderId + '/status', + method: 'GET', + dataType: 'json', + success: function (res) { + if (res.paid) { + location.href = window.redirect + (window.redirect.indexOf('?') < 0 ? '?' : '&') + 'success=true'; + } else { + setTimeout(checkOrderStd, 500); + } + } + }) + } + + checkOrderStd(); + } + function waitForPaymentSuccess(orderId) { var sock = new SockJS('/register'); var client = Stomp.over(sock); @@ -91,7 +113,7 @@ $(document).ready(function () { if (window.redirect.indexOf('?') > 0) { concat = '&'; } - location.href = window.redirect + concat + 'time=' + json.time + '&nonce_str=' + json.nonce_str + '&sign=' + json.sign+'&success=true'; + location.href = window.redirect + concat + 'time=' + json.time + '&nonce_str=' + json.nonce_str + '&sign=' + json.sign + '&success=true'; }) }) } diff --git a/src/main/ui/static/templates/payment/v1/payment.js b/src/main/ui/static/templates/payment/v1/payment.js index b017686be..1e8259bc4 100644 --- a/src/main/ui/static/templates/payment/v1/payment.js +++ b/src/main/ui/static/templates/payment/v1/payment.js @@ -256,7 +256,7 @@ $(function () { return; } if (pay.direct_paid) { - window.location = '/api/payment/v1.0/wechat_jsapi_payment/partners/' + window.client_moniker + '/orders/' + pay.order_id; + location.href = '/api/payment/v1.0/wechat_jsapi_payment/partners/' + window.client_moniker + '/orders/' + pay.order_id; return; } var paydata = pay.jsapi; @@ -270,7 +270,8 @@ $(function () { }, function (res) { dataCache.paying = false; if (res.err_msg == 'get_brand_wcpay_request:ok') { - window.location = '/api/payment/v1.0/wechat_jsapi_payment/partners/' + window.client_moniker + '/orders/' + pay.order_id; + startCheckOrder(pay.order_id); + } else { if (res.err_msg != 'get_brand_wcpay_request:cancel' && res.err_msg != 'get_brand_wcpay_request:fail') { weuiAlert('WeChat Error:' + res.err_msg); @@ -289,6 +290,24 @@ $(function () { }) }); + function startCheckOrder(orderId) { + function checkOrderStd() { + $.ajax({ + url: '/api/v1.0/payment/orders/' + orderId + '/status', + method: 'GET', + dataType: 'json', + success: function (res) { + if (res.paid) { + location.href = '/api/payment/v1.0/wechat_jsapi_payment/partners/' + window.client_moniker + '/orders/' + orderId; + } else { + setTimeout(checkOrderStd, 500); + } + } + }) + } + checkOrderStd(); + } + function weuiAlert(msg) { var config = { template: msg @@ -343,7 +362,11 @@ $(function () { } var ft = $('
').appendTo(dialogBox); if ($.isFunction(config.confirm)) { - var yes = $('
', {class: 'weui_btn_dialog primary', text: 'OK',style:'background: #0bb20c;color: #fff;'}).appendTo(ft); + var yes = $('', { + class: 'weui_btn_dialog primary', + text: 'OK', + style: 'background: #0bb20c;color: #fff;' + }).appendTo(ft); yes.click(function () { config.confirm(dialog, true); dialog.remove(); @@ -354,7 +377,11 @@ $(function () { dialog.remove(); }) } else { - var ok = $('', {class: 'weui_btn_dialog primary', text: 'OK',style:'background: #0bb20c;color: #fff;'}).appendTo(ft); + var ok = $('', { + class: 'weui_btn_dialog primary', + text: 'OK', + style: 'background: #0bb20c;color: #fff;' + }).appendTo(ft); ok.click(function () { dialog.remove(); }) diff --git a/src/main/ui/static/templates/payment/v1/retail_jsapi.js b/src/main/ui/static/templates/payment/v1/retail_jsapi.js index cae38c388..6c42a8d43 100644 --- a/src/main/ui/static/templates/payment/v1/retail_jsapi.js +++ b/src/main/ui/static/templates/payment/v1/retail_jsapi.js @@ -56,7 +56,7 @@ $(document).ready(function () { }, function (res) { dataCache.paying = false; if (res.err_msg == 'get_brand_wcpay_request:ok') { - location.href = window.redirect + (window.redirect.indexOf('?') < 0 ? '?' : '&') + 'success=true'; + startCheckOrder(window.order_id) } else { if (res.err_msg != 'get_brand_wcpay_request:cancel' && res.err_msg != 'get_brand_wcpay_request:fail') { alert('WeChat Error:' + res.err_msg); @@ -69,4 +69,22 @@ $(document).ready(function () { $('#wdiv').hide(); }) } + + function startCheckOrder(orderId) { + function checkOrderStd() { + $.ajax({ + url: '/api/v1.0/payment/orders/' + orderId + '/status', + method: 'GET', + dataType: 'json', + success: function (res) { + if (res.paid) { + location.href = window.redirect + (window.redirect.indexOf('?') < 0 ? '?' : '&') + 'success=true'; + } else { + setTimeout(checkOrderStd, 500); + } + } + }) + } + checkOrderStd(); + } }); \ No newline at end of file