Как настроить обратные вызовы доставки с помощью Google Pay

Я хотел бы создать способ оплаты в своем приложении для Android, например, в Google Фото: Я хочу узнать адрес доставки и динамически обновлять стоимость доставки в зависимости от страны.

Я следую Документация Google Pay но он не дает никакого объяснения того, как установить обратные вызовы, как, например, объясняется в файле Веб-документация Google Pay. Я также пытался найти некоторые учебники, но, похоже, никто не пытался сделать то, что я пытаюсь сделать.

Например, я хотел бы показать ошибку, например эта картинка

Когда я пытаюсь создать JSON для добавления обратного вызова, Google pay вылетает, не предоставляя никакого журнала, ни с adb -d logcat -s WalletMerchantError

JSONObject paymentDataRequestJSON = new JSONObject()
                .put("apiVersion", 2)
                .put("apiVersionMinor", 0)
                .put("allowedPaymentMethods", new JSONArray()
                        .put(cardPaymentMethod))
                .put("transactionInfo", transactionInfo)
                //.put("merchantInfo", merchantInfo) // TODO
                .put("callbackIntents", new JSONArray()
                        .put("SHIPPING_ADDRESS")
                        .put("SHIPPING_OPTION"))
                .put("shippingAddressRequired", true);
2
0
604
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

К сожалению, в настоящее время это недоступно для Android. Я знаю, что поддержка для этого запланирована, однако я не могу сказать, когда она будет доступна.

Есть ли какие-либо обновления по этому поводу? Или ссылку на запрос функции в конце Google, на который можно сослаться?

Westy92 18.12.2020 16:51
Ответ принят как подходящий

Информация о доставке теперь доступна в Google Pay. Вы можете извлечь информацию, обратившись к приведенному ниже коду.

enter code here

JSONObject paymentMethodData;
    JSONObject shippingAddress;

    try {
        paymentMethodData = new  JSONObject(paymentInformation).getJSONObject("paymentMethodData");
        shippingAddress = new JSONObject(paymentInformation).getJSONObject("shippingAddress");   
shippingname = shippingAddress.getString("name");
        streetaddress1 = shippingAddress.getString("address1");
        streetaddress2 = shippingAddress.getString("address2");
        city = shippingAddress.getString("locality");
        zip5 = shippingAddress.getString("postalCode");
        state = shippingAddress.getString("administrativeArea");    

В файле paymentutil.java убедитесь, что для требований shippingAddress установлено значение true, как показано ниже.

enter code here /* An optional shipping address requirement is a top-level property of the PaymentDataRequest

  JSON object. */

        paymentDataRequest.put("shippingAddressRequired", true);

Вы можете ссылаться на приведенные ниже ссылки для примера кода Gpay, но вам нужно будет добавить код, чтобы извлечь информацию о доставке. Если вы хотите увидеть эти данные или другие данные в объекте информации о платеже, вы можете распечатать его, используя «Журнал».

enter code here Log.i("PaymentInformation", new JSONObject(paymentInformation).toString());

Чтобы просмотреть результат, вы можете запустить свое приложение, а затем нажать «Выполнить» в нижней части экрана.

https://github.com/google-pay/android-быстрый стартhttps://developers.google.com/pay/api/android/guides/tutorial

Это не обратный вызов, а просто извлечение окончательных данных.

Westy92 08.12.2020 21:31

Другие вопросы по теме