0

我已经实现了 Braintree SDK,它支持使用 Paypal、信用卡或借记卡和 Google Pay 进行支付。

除 Google Pay 外,其他所有功能均正常运行。选择付款方式为 GooglePay 时出现以下错误。

即使我在 Braintree 控制台上启用了 Google Pay 选项,此商家也未启用 Google Pay 。

以下是实现代码:

支付按钮点击代码:

DropInRequest dropInRequest = new DropInRequest()
                    .amount(strAmount)
                    .googlePaymentRequest(getGooglePaymentRequest())
                    .tokenizationKey("production_key_xxxxxxxxx");
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                startActivityForResult(dropInRequest.getIntent(getActivity()), 399);
            }



private GooglePaymentRequest getGooglePaymentRequest() {
            return new GooglePaymentRequest()
                    .transactionInfo(TransactionInfo.newBuilder()
                            .setTotalPrice(strAmount)
                            .setCurrencyCode("USD")
                            .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
                            .build())
                    .emailRequired(true);
        }

帮助将不胜感激。

4

3 回答 3

0

您还需要添加 googleMerchantId("YOUR-MERCHANT-ID")

PaymentDataRequest 中的 MerchantId 参数必须设置为您的 Google Pay 开发者资料中提供的值。

https://developers.google.com/pay/api/web/support/troubleshooting#merchantId

于 2019-05-03T05:33:04.857 回答
0

要在生产环境中使用 Google Pay API,您还需要在 Google 端为您的应用启用它。

他们的集成清单是一个很好的起点,特别是它有一个名为“请求生产访问”的部分

于 2018-08-07T10:53:09.420 回答
0

全面披露:我在布伦特里工作。如果您还有其他问题,请随时联系 支持人员

您似乎正试图通过 Braintree 将独立 Google Pay 集成的不正确 Google Pay 对象传递到您的 Drop-in UI。

如果您还没有,则需要在您的 : 中包含 Google Pay 元标记AndroidManifest.xml

<meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true"/>

然后,构造一个GooglePaymentRequest对象并将其传递给您的DropInRequest对象。该对象可能类似于:

private void enableGooglePay(DropInRequest dropInRequest) {
    GooglePaymentRequest googlePaymentRequest = new GooglePaymentRequest()
      .transactionInfo(TransactionInfo.newBuilder()
        .setTotalPrice("1.00")
        .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
        .setCurrencyCode("USD")
        .build())
      .billingAddressRequired(true); // We recommend collecting and passing billing address information with all Google Pay transactions as a best practice.

    dropInRequest.googlePaymentRequest(googlePaymentRequest);
}

您可以在我们的开发者文档中找到更多相关信息。

于 2018-08-02T21:43:52.933 回答