Android Google Pay返回Xamarin表单上的奇怪错误
我尝试将Google Pay集成到我的Xamarin.Forms shell应用程序中。我没有发现任何不使用stripe的教程,只有Kotlin一个。我尝试在我的Payment类中重新创建示例。方法Pay()如下所示: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
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)
我发现这个链接非常有用,并且成功地实现了: