收口微信支付订阅诊断日志
微信支付和订阅失败日志改为固定阶段标签 原生壳门禁拒绝支付订阅日志输出原生错误对象 同步宿主壳方案和共享决策记录
This commit is contained in:
@@ -2653,6 +2653,10 @@ function assertWechatPaymentResultBoundaries() {
|
||||
for (const snippet of [
|
||||
"function normalizePayError()",
|
||||
"return 'wechat payment unavailable'",
|
||||
'function logWechatPayFailure(label, _error)',
|
||||
'console.error(`[wechat-pay] ${label}`)',
|
||||
"logWechatPayFailure('parse params failed', error)",
|
||||
"logWechatPayFailure('requestVirtualPayment failed', error)",
|
||||
]) {
|
||||
if (!paymentSource.includes(snippet)) {
|
||||
throw new Error(`wechat payment bridge must include ${snippet}`);
|
||||
@@ -2660,7 +2664,9 @@ function assertWechatPaymentResultBoundaries() {
|
||||
}
|
||||
if (
|
||||
paymentSource.includes('JSON.stringify({\n errCode') ||
|
||||
paymentSource.includes('String(error.errMsg || error)')
|
||||
paymentSource.includes('String(error.errMsg || error)') ||
|
||||
paymentSource.includes("console.error('[wechat-pay] parse params failed', error)") ||
|
||||
paymentSource.includes("console.error('[wechat-pay] requestVirtualPayment failed', error)")
|
||||
) {
|
||||
throw new Error('wechat payment bridge must not expose native payment errors to H5');
|
||||
}
|
||||
@@ -2668,6 +2674,8 @@ function assertWechatPaymentResultBoundaries() {
|
||||
'maps virtual payment cancel errCode to cancel result',
|
||||
'hides ordinary payment native failure details from H5 result',
|
||||
"errorMessage: 'wechat payment unavailable'",
|
||||
"expect(console.error).toHaveBeenCalledWith(\n '[wechat-pay] requestVirtualPayment failed'",
|
||||
'expect(console.error.mock.calls.flat()).not.toContain(payError)',
|
||||
]) {
|
||||
if (!paymentTestSource.includes(snippet)) {
|
||||
throw new Error(`wechat payment bridge test must include ${snippet}`);
|
||||
@@ -2687,20 +2695,26 @@ function assertWechatSubscribeResultBoundaries() {
|
||||
|
||||
for (const snippet of [
|
||||
"WECHAT_SUBSCRIBE_UNAVAILABLE_REASON = 'wechat subscribe unavailable'",
|
||||
"console.error('[subscribe-message] request failed', error)",
|
||||
'function logWechatSubscribeFailure(label, _error)',
|
||||
'console.error(`[subscribe-message] ${label}`)',
|
||||
"logWechatSubscribeFailure('request failed', error)",
|
||||
'WECHAT_SUBSCRIBE_UNAVAILABLE_REASON',
|
||||
]) {
|
||||
if (!subscribeSource.includes(snippet)) {
|
||||
throw new Error(`wechat subscribe bridge must include ${snippet}`);
|
||||
}
|
||||
}
|
||||
if (subscribeSource.includes("error && error.errMsg ? error.errMsg : 'failed'")) {
|
||||
if (
|
||||
subscribeSource.includes("error && error.errMsg ? error.errMsg : 'failed'") ||
|
||||
subscribeSource.includes("console.error('[subscribe-message] request failed', error)")
|
||||
) {
|
||||
throw new Error('wechat subscribe bridge must not expose native subscribe errors to H5');
|
||||
}
|
||||
for (const snippet of [
|
||||
'hides requestSubscribeMessage native failure details from H5 result',
|
||||
'wechat%20subscribe%20unavailable',
|
||||
"expect(console.error).toHaveBeenCalledWith(",
|
||||
"expect(console.error).toHaveBeenCalledWith('[subscribe-message] request failed')",
|
||||
'expect(console.error.mock.calls.flat()).not.toContain(subscribeError)',
|
||||
]) {
|
||||
if (!subscribeTestSource.includes(snippet)) {
|
||||
throw new Error(`wechat subscribe bridge test must include ${snippet}`);
|
||||
|
||||
Reference in New Issue
Block a user