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 {