Android Google Pay返回Xamarin表单上的奇怪错误

Android Google Pay返回Xamarin表单上的奇怪错误,android,xamarin,xamarin.android,google-play-services,google-pay,Android,Xamarin,Xamarin.android,Google Play Services,Google Pay,我尝试将Google Pay集成到我的Xamarin.Forms shell应用程序中。我没有发现任何不使用stripe的教程,只有Kotlin一个。我尝试在我的Payment类中重新创建示例。方法Pay()如下所示: var activity = Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity; client = WalletClass.GetPaymentsClient(activity, ne

我尝试将Google Pay集成到我的Xamarin.Forms shell应用程序中。我没有发现任何不使用stripe的教程,只有Kotlin一个。我尝试在我的Payment类中重新创建示例。方法Pay()如下所示:

var activity = Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity;
            client = WalletClass.GetPaymentsClient(activity, new WalletClass.WalletOptions.Builder()
                .SetEnvironment(WalletConstants.EnvironmentTest)
                .SetTheme(WalletConstants.ThemeLight)
                .Build());
            PaymentMethodTokenizationParameters param = PaymentMethodTokenizationParameters.NewBuilder()
                .SetPaymentMethodTokenizationType(WalletConstants.PaymentMethodTokenizationTypePaymentGateway)
                .Build();
            PaymentDataRequest request =  PaymentDataRequest.NewBuilder()
                .SetEmailRequired(false)
                .SetShippingAddressRequired(false)
                .SetPhoneNumberRequired(false)
                .SetTransactionInfo(new TransactionInfo(1,"Test","Test"))
                .SetPaymentMethodTokenizationParameters(param)
                .AddAllowedPaymentMethod(WalletConstants.PaymentMethodTokenizedCard)
                .AddAllowedPaymentMethod(WalletConstants.PaymentMethodCard)
                .SetCardRequirements(CardRequirements.NewBuilder()
                    .AddAllowedCardNetwork(WalletConstants.CardNetworkVisa)
                    .AddAllowedCardNetwork(WalletConstants.CardNetworkMastercard)
                    .Build())
                .Build();
            var data = await client.LoadPaymentDataAsync(request);

但在最后一行之后,Xamarin返回奇怪的错误
'6:BuyFlow UI需要显示。
。但我认为最后一行应该显示谷歌支付的用户界面表单,但不知何故它不起作用。我正在使用PlayServices、Gms.Wallet和CurrentActivity插件

我还没有尝试过这一点,但也许可以尝试下面的方法来帮助您前进

我还没有尝试过这个方法,但也许可以尝试下面的方法来帮助您向前迈进

替换此:

var data = await client.LoadPaymentDataAsync(request);
使用此方法(非异步方法):

并将其传递到此处(
53
可以是任何内容,您将使用它来标识此请求):

然后,在用户操作“卡片拾取阶段”后,您将在MainActivity类中获得结果:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
我发现这个链接非常有用,并且成功地实现了:

替换此:

var data = await client.LoadPaymentDataAsync(request);
使用此方法(非异步方法):

并将其传递到此处(
53
可以是任何内容,您将使用它来标识此请求):

然后,在用户操作“卡片拾取阶段”后,您将在MainActivity类中获得结果:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
我发现这个链接非常有用,并且成功地实现了: