Apple Pay按钮显示不可用,沙盒测试一直报错怎么办?
在iOS应用里集成Apple Pay时,支付按钮始终显示灰色不可用状态。用沙盒账号测试时还弹出错误提示"Invalid merchant identifier",但Merchant ID明明已经在苹果开发者账号里绑定了。
已经按照文档配置了PKPaymentAuthorizationViewController,并在Info.plist里填好了MerchantIdentifier和ATS设置。测试用的信用卡也是苹果官方推荐的沙盒卡号,证书也配置了Apple Pay服务。
const paymentRequest = {
country: 'US',
currency: 'USD',
merchantIdentifier: 'merchant.com.myapp', // 和开发者账号一致
requiredBillingContactFields: PKContactField.None
};
奇怪的是其他支付方式(比如信用卡表单)都能正常显示,只有Apple Pay按钮有问题。重启Xcode和手机都没用,求大神指点哪里可能出错了?
另外你在代码里写的merchantIdentifier是
merchant.com.myapp,需要确保这个值和苹果开发者后台完全一致,包括大小写。我遇到过好几次因为多了一个点或者大小写不对导致的问题。还有一点容易忽略的是Entitlements文件,建议改成这样配置:
另外你的paymentRequest配置有点问题,requiredBillingContactFields不应该用PKContactField.None,建议改成:
最后别忘了在Xcode的Signing & Capabilities里添加Apple Pay,并且把对应的Merchant ID勾选上。这步很多人会漏掉。如果还是不行,建议清理下项目,重启下设备,有时候缓存也会导致奇怪的问题。