feat(pay): 统一收银台四种模式(站内二维码/当前页跳转/表单提交/JSAPI)
- PaymentOrchestrator 统一返回 mode + code_url/payment_url/form_html/jsapi_params
- 支付宝:当面付二维码 / 电脑网站支付 / H5;微信:Native / H5 / JSAPI(WechatOpenid 静默授权)
- 易支付:PC mapi 二维码,移动端自动提交表单
- 删除旧键 alipay_payment_type / wechat_payment_type / epay_device 与 redirect/qr_content 字段
- 新增 pay-cashier.js,移除 window.open,订单状态接口改为 /pay/order/{n}
- 拆分 credits.js(affiliate / withdraw-history)至 1000 行以内
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b340b77d5a
commit
1df2822f01
28 files changed
+1255
-836
No files matched your search
+14
-13
@@ -281,7 +281,7 @@
|
||||
const maxTries = 40;
|
||||
const timer = setInterval(function () {
|
||||
tries += 1;
|
||||
fetch(REST_BASE + '/pay/content/order/' + encodeURIComponent(orderNumber), {
|
||||
fetch(REST_BASE + '/pay/order/' + encodeURIComponent(orderNumber), {
|
||||
method: 'GET',
|
||||
credentials: 'same-origin',
|
||||
headers: restHeaders(),
|
||||
@@ -673,13 +673,17 @@
|
||||
}
|
||||
const data = (r.json && r.json.data) ? r.json.data : r.json;
|
||||
delete button.dataset.aksrtOperationKey;
|
||||
if (data && data.redirect && (data.payment_url || data.qr_content)) {
|
||||
if (data.payment_url) {
|
||||
window.open(data.payment_url, '_blank');
|
||||
}
|
||||
renderScanPay(data, returnFocusEl);
|
||||
if (data && data.mode) {
|
||||
if (window.AksrtModalRuntime) window.AksrtModalRuntime.invalidate(['orders']);
|
||||
if (data.order_number) pollOrderPaid(data.order_number, returnFocusEl);
|
||||
if (data.mode === 'qrcode') {
|
||||
renderScanPay(data, returnFocusEl);
|
||||
} else if (window.AksrtPayCashier) {
|
||||
close();
|
||||
window.AksrtPayCashier.handle(data, {});
|
||||
}
|
||||
if ((data.mode === 'qrcode' || data.mode === 'jsapi') && data.order_number) {
|
||||
pollOrderPaid(data.order_number, returnFocusEl);
|
||||
}
|
||||
return;
|
||||
}
|
||||
window.location.reload();
|
||||
@@ -693,12 +697,9 @@
|
||||
|
||||
function renderScanPay(data, returnFocusEl) {
|
||||
data = data || {};
|
||||
let body = '';
|
||||
if (data.qr_content) {
|
||||
body += '<div class="aksrt-dl-modal__code-card"><div class="aksrt-dl-modal__code-caption">凭证内容</div>' +
|
||||
'<code class="aksrt-dl-modal__code aksrt-dl-modal__code--wrap">' + escapeHtml(String(data.qr_content)) + '</code></div>';
|
||||
}
|
||||
body += '<p class="aksrt-dl-modal__msg">' + escapeHtml(data.message || '请使用手机扫码完成支付,支付后刷新页面。') + '</p>';
|
||||
const body = window.AksrtPayCashier
|
||||
? window.AksrtPayCashier.qrHtml(data)
|
||||
: '<p class="aksrt-dl-modal__msg">' + escapeHtml('收银台组件未加载,请刷新页面重试。') + '</p>';
|
||||
open(
|
||||
dlView('pay', {
|
||||
subtitle: '支付完成后页面会自动刷新',
|
||||
|
||||
Reference in new issue
Block a user