GooglePay не работает с Braintree SDK

Я внедрил Braintree SDK, который поддерживает оплату с помощью Paypal, кредитной или дебетовой карты и Google Pay.

Все работают кроме Google Pay. Я получаю следующую ошибку при выборе способа оплаты как GooglePay.

Этот продавец не поддерживает Google Pay. Даже я включил опцию Google Pay в консоли Braintree.

Ниже приведен код для реализации:

Код при нажатии кнопки оплаты:

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);
        }

Помощь будет оценена.


person Ankit Mehta    schedule 01.08.2018    source источник
comment
fstanis ответ правильный. Не забудьте запустить серверную реализацию Braintree в режиме SANDBOX, иначе они не смогут ее протестировать! Это также причина, по которой вы получили сообщение выше. Для тестирования вам потребуется 1) Веб-сайт Braintree: включить GooglePay (Sandbox) 2) Реализация сервера Braintree переключена на SANDBOX (не забудьте также использовать ключи SANDBOX) 3) Реализация клиента: WalletConstants.ENVIRONMENT_TEST   -  person Adam Ri    schedule 15.10.2018
comment
Вы нашли решение, почему оно не работает?   -  person Farhana Naaz Ansari    schedule 14.11.2018
comment
С какой средой у вас возникли проблемы? Тестовая / песочница или продакшн?   -  person Soc    schedule 20.09.2019


Ответы (3)


Полное раскрытие информации: я работаю в Braintree. Если у вас есть дополнительные вопросы, обращайтесь в службу поддержки.

Похоже, вы пытаетесь передать неверный объект Google Pay для автономной интеграции Google Pay через Braintree в свой Drop-in UI.

Если вы еще этого не сделали, вам необходимо включить метатег Google Pay в свой _ 1_:

<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);
}

Дополнительную информацию об этом можно найти в наши документы для разработчиков.

person David    schedule 02.08.2018

Чтобы использовать Google Pay API в производственной среде, вам необходимо включить его для своего приложения и на стороне Google.

Их контрольный список интеграции является хорошим место для начала, в частности, в нем есть раздел под названием Запрос рабочего доступа

person fstanis    schedule 07.08.2018

Вам также необходимо добавить googleMerchantId ("YOUR-MERCHANT-ID")

Параметр merchantId внутри PaymentDataRequest должен иметь значение, указанное в вашем профиле разработчика Google Pay.

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

person Omer    schedule 03.05.2019