如何使用 Google Pay 设置送货回调

How can I setup the shipping callbacks with Google Pay

我想在我的 Android 应用程序中创建一种付款方式,例如 Google 照片中的付款方式: 我想询问送货地址,并根据国家动态更新运费。

我关注Google Pay documentation 但它没有给出任何关于如何设置回调的解释,例如 Google Pay web documentation 中的解释。 我也尝试寻找一些教程,但似乎没有人尝试做我想做的事情。

例如我想显示一个错误 this picture

当我尝试创建 JSON 以添加回调时,Google 支付崩溃但没有提供任何日志,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);

很遗憾,Android 目前无法使用此功能。我知道对此的支持已计划,但是,我不能说它何时可用。

运输信息现在可在 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");    

在您的 paymentsutil.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 示例代码,但您必须添加代码以提取送货信息。如果要查看付款信息对象中的此数据或其他数据,可以使用 'Log'

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

要查看输出,您可以 运行 您的应用,然后单击屏幕底部的 'Run'。

https://github.com/google-pay/android-quickstart https://developers.google.com/pay/api/android/guides/tutorial