GooglePay DEVELOPER_ERROR“ PaymentDataRequest.merchantId不存在”

时间:2019-07-13 02:27:23

标签: braintree google-pay

获得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告诉我一切顺利。

1 个答案:

答案 0 :(得分:0)

结果证明,除了merchantId之外还传递 extra merchantInfo参数可能会导致这种情况。

所以解决方法就是这样:

  // merchantId: environment.payment.googlePayMerchantId

但是,如果您在merchantInfo中首次创建Braintree客户端时已正确提供了createPaymentDataRequest,则merchantId中的braintree.googlePayment.create(...)并不需要。

因此,上述代码中的最终解决方法是同时删除merchantIdmerchantInfo

我不记得这是旧版API的错误还是过时的参数。在这两种情况下,这都是一个极具误导性的错误,因为该错误表明它已丢失,但实际上是一个额外的参数。