diff --git a/orders/views/payment.py b/orders/views/payment.py
index 8a2e58a..a1a1a84 100644
--- a/orders/views/payment.py
+++ b/orders/views/payment.py
@@ -1441,6 +1441,7 @@ class CreateOrderView(APIView):
sorted_pay_sign_data = sorted(pay_sign_data.items(), key=lambda x: x[0])
pay_sign_string = '&'.join([f"{key}={value}" for key, value in sorted_pay_sign_data])
+ string_a = pay_sign_string # 无 key,供诊断页核对
pay_sign_string += f'&key={KEY}'
pay_sign = hashlib.md5(pay_sign_string.encode('utf-8')).hexdigest().upper()
@@ -1461,6 +1462,9 @@ class CreateOrderView(APIView):
'openid_preview': _oid_preview,
'openid_len': len(openid or ''),
'key_source': str(pay_cfg.get('_key_source') or ''),
+ 'key_len': len(KEY or ''),
+ 'string_a': string_a,
+ 'paySign_preview': pay_sign[:8],
},
}
diff --git a/templates/wechat/h5_jsapi_pay.html b/templates/wechat/h5_jsapi_pay.html
index a1f9f3e..c249486 100644
--- a/templates/wechat/h5_jsapi_pay.html
+++ b/templates/wechat/h5_jsapi_pay.html
@@ -201,7 +201,9 @@
package: pay.package,
openid_preview: diag.openid_preview,
mch_id: diag.mch_id,
- key_source: diag.key_source
+ key_source: diag.key_source,
+ key_len: diag.key_len,
+ string_a: diag.string_a || '(无)'
});
} else {
try {
@@ -334,17 +336,17 @@
push('oauth_openid', SERVER_OID || '(无)');
push('关键:秒关时屏幕是否出现「当前页面的URL未注册」?有=目录问题;无=把本页绿日志发回');
if (quick) {
- setTip('微信秒关 cancel
请确认是否闪过「URL未注册」灰字,并把绿日志复制发回', true);
+ setTip('微信秒关 cancel
请看清闪过的灰字:URL未注册 / 支付验证签名失败 / 什么都没有', true);
try {
alert(
- '支付秒关 cancel\n\n' +
- 'mch_id=' + ((diag && diag.mch_id) || '?') + '\n' +
+ '支付秒关 cancel(约' + costMs + 'ms)\n\n' +
+ '请务必看清闪过的提示(三选一回复我):\n' +
+ 'A. 当前页面的URL未注册\n' +
+ 'B. 支付验证签名失败\n' +
+ 'C. 什么字都没有 / 只闪一下\n\n' +
+ 'mch=' + ((diag && diag.mch_id) || '?') + '\n' +
'appId=' + appId + '\n' +
- '来源=' + PAY_SOURCE + '\n' +
- 'openid=' + (SERVER_OID || '?') + '\n' +
- 'URL=' + checkUrl + '\n' +
- 'ms=' + costMs + '\n\n' +
- '请问:有没有灰字「当前页面的URL未注册」?'
+ 'URL=' + checkUrl
);
} catch (e) {}
} else {