Apple Pay支付成功但兼容检查报undefined类型错误,求排查方案
Apple Pay支付成功但兼容性检查触发
applePaySession.completeMerchantValidation undefined错误 已完成Apple Pay支付,但执行兼容性检查逻辑时抛出未捕获类型错误:undefined不是对象(计算'applePaySession.completeMerchantValidation'时)。支付流程正常,但兼容性校验环节出现异常,相关触发代码如下:
setCanDisplayApplePay() { var client = new window.usaepay.Client(this.publicKey); var applePayConfig = { targetDiv: 'apple-pay-compat-test', displayName: 'ApplePay', paymentRequest: { total: { label: this.name, amount: 0.01, type: 'final' }, requiredBillingContactFields: [ 'postalAddress' ], requiredShippingContactFields: [ 'name', 'phone', 'email' ], countryCode: 'US', currencyCode: 'USD' } }; var applePay = client.createApplePayEntry(applePayConfig); applePay.checkCompatibility().then((res) => { this.canDisplayApplePay = true; }).catch((err) => { this.canDisplayApplePay = false; }); },
可能的原因
usaepaySDK内部在兼容性检查流程中,尝试调用ApplePaySession实例的completeMerchantValidation方法,但此时会话实例未正确初始化或已被销毁- 测试环境下Apple Pay商户验证配置缺失,导致SDK无法创建有效会话对象
- 页面中
apple-pay-compat-test容器状态异常(如不存在、被隐藏),干扰SDK的环境检测逻辑
解决方案
- 升级
usaepaySDK至最新稳定版本,排查是否存在已知的兼容性检测bug - 在调用兼容性检查前,先手动校验Apple Pay环境,避免无效执行:
setCanDisplayApplePay() { // 先确认浏览器支持Apple Pay if (!window.ApplePaySession || !window.ApplePaySession.canMakePayments()) { this.canDisplayApplePay = false; return; } var client = new window.usaepay.Client(this.publicKey); var applePayConfig = { targetDiv: 'apple-pay-compat-test', displayName: 'ApplePay', paymentRequest: { total: { label: this.name, amount: 0.01, type: 'final' }, requiredBillingContactFields: [ 'postalAddress' ], requiredShippingContactFields: [ 'name', 'phone', 'email' ], countryCode: 'US', currencyCode: 'USD' } }; var applePay = client.createApplePayEntry(applePayConfig); applePay.checkCompatibility().then((res) => { this.canDisplayApplePay = true; }).catch((err) => { this.canDisplayApplePay = false; }); }, - 核对
applePayConfig配置:确保displayName与Apple开发者后台配置的商户名称一致,paymentRequest内的countryCode、currencyCode符合业务区域要求 - 确认页面中
apple-pay-compat-test元素存在且未被CSS隐藏,SDK可能依赖该容器完成环境检测
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

