获得Google Pay merchantId
的批准后,尝试打开付款表时出现以下错误。
{ statusCode: "DEVELOPER_ERROR", errorCode: 2,
statusMessage: "PaymentDataRequest.merchantId does not exist." }
我正在使用Braintree Payments,但这与结束消息无关。
var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({
merchantId: environment.payment.googlePayMerchantId,
merchantInfo: {
merchantId: environment.payment.googlePayMerchantId
},
transactionInfo: {
currencyCode: 'USD',
totalPriceStatus: 'ESTIMATED',
totalPrice: this.priceEstimate.toFixed(2)
},
shippingAddressRequired: true,
emailRequired: true,
shippingAddressParameters: {
allowedCountryCodes: data.countryCodes.map(c => c.code)
}
// cardRequirements: {
// // We recommend collecting billing address information, at minimum
// // billing postal code, and passing that billing postal code with all
// // Google Pay transactions as a best practice.
// billingAddressRequired: true
// }
});
Google告诉我一切顺利。
答案 0 :(得分:0)
结果证明,除了merchantId
之外还传递 extra merchantInfo
参数可能会导致这种情况。
所以解决方法就是这样:
// merchantId: environment.payment.googlePayMerchantId
但是,如果您在merchantInfo
中首次创建Braintree客户端时已正确提供了createPaymentDataRequest
,则merchantId
中的braintree.googlePayment.create(...)
并不需要。
因此,上述代码中的最终解决方法是同时删除merchantId
和merchantInfo
。
我不记得这是旧版API的错误还是过时的参数。在这两种情况下,这都是一个极具误导性的错误,因为该错误表明它已丢失,但实际上是一个额外的参数。