在 Xamarin Android 中使用 Google 钱包时出错

Error using Google wallet in Xamarin Android

我正在尝试在我的 Xamarin 应用中使用 Google Pay。首先,我从 nuget 添加了 GooglePlayServices 包 然后我按照 here

的文档

这是我的 JSON

{
     "apiVersion": 2,
     "apiVersionMinor": 0,
     "merchantInfo": { "merchantName": "testName" },
      "allowedPaymentMethods": [
    {
       "type": "CARD",
       "parameters": {
       "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
       "allowedCardNetworks": ["AMEX", "DISCOVER", "MASTERCARD", "VISA"]
      }
    },
    {
      "type": "PAYMENT_GATEWAY",
     "parameters": { "gateway": "firstdata", "gatewayMerchantId": "12365" }
     }
    ],
      "transactionInfo": {
      "totalPriceStatus": "FINAL",
      "totalPrice": "4.10",
      "currencyCode": "USD",
      "checkoutOption": "COMPLETE_IMMEDIATE_PURCHASE"
  }
}

代码:

    paymentsClient = WalletClass.GetPaymentsClient(
        Xamarin.Essentials.Platform.CurrentActivity,
        new WalletClass.WalletOptions.Builder()
           .SetEnvironment(WalletConstants.EnvironmentTest)
           .Build());
     var request =  PaymentDataRequest.FromJson(json);
     AutoResolveHelper.ResolveTask(paymentsClient.LoadPaymentData(request), 
                            Xamarin.Essentials.Platform.CurrentActivity, 999);

但我得到一个错误 Code 10: Developer Error

如果我这样做的话

     var result = await paymentsClient.LoadPaymentDataAsync(request);

我得到以下错误6: BuyFlow UI needs to be shown.

在重新查看文档后我意识到我的 json 对象是错误的而不是

{
   "type": "CARD",
   "parameters": {
   "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
   "allowedCardNetworks": ["AMEX", "DISCOVER", "MASTERCARD", "VISA"]
  }
},
{
  "type": "PAYMENT_GATEWAY",
 "parameters": { "gateway": "firstdata", "gatewayMerchantId": "12365" }
 }

它需要看起来像这样:作为支付方式对象的tokenizationSpecification部分

 {
   "type": "CARD",
      "parameters": {
          "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
           "allowedCardNetworks": ["AMEX", "DISCOVER", "MASTERCARD", "VISA"]
         },  
    "tokenizationSpecification": {  
           "type": "PAYMENT_GATEWAY",
            "parameters": { "gateway": "firstdata", "gatewayMerchantId": "12365" }
 }

我想知道的是为什么我调用 PaymentDataRequest.FromJson(json)

时它没有抛出错误