6

私は Xamarin プロジェクトの統合 Google Pay に取り組んでいます。[今すぐ購入] ボタンが表示されますが、それを押すと、「この支払いオプションは、このアプリでは利用できなくなりました」というメッセージが表示されます。

Stripe を支払いゲートウェイとして使用し、テスト環境を使用しています。私が使用しているアクティビティはこちらです。FragmentActivity を継承し、GoogleApiClient.IConnectionCallbacks と GoogleApiClient.IONConnectionFailedListener を実装します。

 public void SetupWallet()
            {
                _walletFragment = SupportWalletFragment.NewInstance(WalletFragmentOptions.NewBuilder()
                    .SetEnvironment(WalletConstants.EnvironmentTest)
                     .SetMode(WalletFragmentMode.BuyButton)
                    .SetTheme(WalletConstants.ThemeLight)
                    .SetFragmentStyle(new WalletFragmentStyle()
                    .SetBuyButtonText(BuyButtonText.BuyWithGoogle)
                    .SetBuyButtonAppearance(BuyButtonAppearance.Classic)
                    .SetBuyButtonWidth(Dimension.MatchParent))
                    .Build());

                var maskedWalletRequest = MaskedWalletRequest.NewBuilder()

                // Request credit card tokenization with Stripe
                .SetPaymentMethodTokenizationParameters(
                    PaymentMethodTokenizationParameters.NewBuilder()
                        .SetPaymentMethodTokenizationType(PaymentMethodTokenizationType.PaymentGateway)
                        .AddParameter("gateway", "stripe")
                        .AddParameter("stripe:publishableKey", AppConfig.StripeApiKey)
                        .AddParameter("stripe:version", "2018-02-06")
                        .Build())
                    .SetMerchantName("My Name")
                    .SetPhoneNumberRequired(false)
                    .SetShippingAddressRequired(false)
                    .SetEstimatedTotalPrice("20.00")
                    .SetCurrencyCode("USD")
                    .Build();

                _walletFragment.Initialize(WalletFragmentInitParams.NewBuilder()
                    .SetMaskedWalletRequest(maskedWalletRequest)
                    .SetMaskedWalletRequestCode(LOAD_MASKED_WALLET_REQ_CODE)
                    .Build());

                SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.dynamic_wallet_button_fragment, _walletFragment).Commit();
            }




       protected override void OnStart()
        {
            base.OnStart();
            _googleApiClient.Connect();
        }

        protected override void OnStop()
        {
            base.OnStop();
            _googleApiClient.Disconnect();
        }

        private void CheckAndroidPayAvailable()
        {
            var result = WalletClass.Payments.IsReadyToPay(_googleApiClient);
            result.SetResultCallback(new AndroidPayCallback(_walletFragment));

        }

protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.google_play_activity);

            _googleApiClient = new GoogleApiClient.Builder(((MainActivity)Forms.Context).ApplicationContext)
               .AddConnectionCallbacks(this)
               .AddOnConnectionFailedListener(this)
               .AddApi(WalletClass.API, new WalletClass.WalletOptions.Builder()
                     .SetEnvironment(WalletConstants.EnvironmentTest)
                     .Build())
                     .EnableAutoManage(this, this)
               .Build();

            SetupWallet();
            CheckAndroidPayAvailable();
        }
4

0 に答える 0