Google Pay按钮初始化报错”Invalid arguments provided”
在React项目里集成Google Pay时,按照官方文档配置了支付参数,但初始化PaymentsClient时总是报错”Invalid arguments provided to the PaymentsClient constructor”。
已经检查过API版本和allowedMethods,代码是这样的:
const baseRequest = {
apiVersion: 2,
apiVersionMinor: 0,
allowedPaymentMethods: [{
type: 'CARD',
parameters: {
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
allowedCardNetworks: ['AMEX', 'VISA']
},
tokenizationSpecification: {
type: 'PAYMENT_GATEWAY',
parameters: {
gateway: 'example',
gatewayMerchantId: '12345'
}
}
}]
};
测试环境用的Web payments SDK 3.0.0,控制台还提示”merchantInfo.merchantName is required”,但我的配置里明明有写:
const paymentsClient = new google.payments.api.PaymentsClient({
merchantId: '12345678901234567890',
merchantName: 'Test Store'
});
试过清除缓存、更换SDK版本号都不行,到底是哪里配置错了吗?
PaymentsClient的参数格式上。官方文档里说得很清楚,environment和merchantInfo是必须的字段,而你的代码里少了environment。另外,虽然你写了
merchantName,但它的位置不对,应该放在merchantInfo里面。拿去改改:
测试环境记得保持为
'TEST',上线时再改成'PRODUCTION'。顺便检查下gatewayMerchantId是否正确,经常有小伙伴配错了还死活找不到原因。