예제 #1
0
        private static MaskedWalletRequest CreateMaskedWalletRequest (ItemInfo itemInfo, PaymentMethodTokenizationParameters parameters) {
            // Build a List of all line items
            var lineItems = buildLineItems (itemInfo, true);

            // Calculate the cart total by iterating over the line items.
            var cartTotal = calculateCartTotal(lineItems);

            var builder = MaskedWalletRequest.NewBuilder()
                .SetMerchantName (Constants.MERCHANT_NAME)
                .SetPhoneNumberRequired (true)
                .SetShippingAddressRequired (true)
                .SetCurrencyCode (Constants.CURRENCY_CODE_USD)
                .SetEstimatedTotalPrice (cartTotal)
                // Create a Cart with the current line items. Provide all the information
                // available up to this point with estimates for shipping and tax included.
                .SetCart (Cart.NewBuilder ()
                    .SetCurrencyCode (Constants.CURRENCY_CODE_USD)
                    .SetTotalPrice (cartTotal)
                    .SetLineItems (lineItems)
                    .Build ());

            if (parameters != null)
                builder.SetPaymentMethodTokenizationParameters (parameters);

            return builder.Build ();
        }
        private PaymentMethodTokenizationParameters CreateTokenizationParameters()
        {
            try
            {
                var version = /*ListUtils.SettingsSiteList?.ScriptVersion ??*/ "2019-02-19";

                return(PaymentMethodTokenizationParameters.NewBuilder()
                       .SetPaymentMethodTokenizationType(WalletConstants.PaymentMethodTokenizationTypePaymentGateway)
                       .AddParameter("gateway", "stripe")
                       .AddParameter("stripe:publishableKey", PaymentConfiguration.Instance.PublishableKey)
                       .AddParameter("stripe:version", version)
                       .Build());
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                return(null);
            }
        }
        void CreateWalletFragment()
        {
            var walletStyle = new WalletFragmentStyle()
                              .SetBuyButtonText(WalletFragmentStyle.BuyButtonText.LogoOnly)
                              .SetBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.AndroidPayLightWithBorder)
                              .SetBuyButtonWidth(WalletFragmentStyle.Dimension.MatchParent);

            var options = WalletFragmentOptions.NewBuilder()
                          .SetEnvironment(WalletEnvironment)
                          .SetTheme(WalletConstants.ThemeDark)
                          .SetFragmentStyle(walletStyle)
                          .SetMode(WalletFragmentMode.BuyButton)
                          .Build();

            var parameters = PaymentMethodTokenizationParameters.NewBuilder()
                             .SetPaymentMethodTokenizationType(PaymentMethodTokenizationType.NetworkToken)
                             .AddParameter("publicKey", Resources.GetString(Resource.String.public_key))
                             .Build();

            _walletFragment = SupportWalletFragment.NewInstance(options);

            var walletRequest = Android.Gms.Wallet.MaskedWalletRequest.NewBuilder()
                                .SetMerchantName(Resources.GetString(Resource.String.app_name))
                                .SetCurrencyCode(_judo.Currency)
                                .SetEstimatedTotalPrice(_judo.Amount.ToString())
                                .SetPaymentMethodTokenizationParameters(parameters)
                                .SetCart(Cart.NewBuilder()
                                         .SetCurrencyCode(_judo.Currency)
                                         .SetTotalPrice(_judo.Amount.ToString())
                                         .Build())
                                .Build();

            var startParams = WalletFragmentInitParams.NewBuilder()
                              .SetMaskedWalletRequest(walletRequest)
                              .SetMaskedWalletRequestCode(MaskedWalletRequest)
                              .Build();

            _walletFragment.Initialize(startParams);

            SupportFragmentManager.BeginTransaction()
            .Add(Resource.Id.container, _walletFragment)
            .Commit();
        }
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_checkout);

            mItemId = Intent.GetIntExtra(Constants.EXTRA_ITEM_ID, 0);

            createAndAddWalletFragment();

            mReturnToShopping        = FindViewById <Button> (Resource.Id.button_return_to_shopping);
            mReturnToShopping.Click += delegate {
                GoToItemListActivity();
            };
            mContinueCheckout        = FindViewById <Button> (Resource.Id.button_regular_checkout);
            mContinueCheckout.Click += delegate {
                ContinueCheckout();
            };

            mStripeCheckbox = FindViewById <CheckBox> (Resource.Id.checkbox_stripe);
            mStripeCheckbox.CheckedChange += (sender, e) => {
                if (e.IsChecked && ValidateStripeConfiguration())
                {
                    mPaymentMethodParameters = PaymentMethodTokenizationParameters.NewBuilder()
                                               .SetPaymentMethodTokenizationType(PaymentMethodTokenizationType.PaymentGateway)
                                               .AddParameter("gateway", "stripe")
                                               .AddParameter("stripe:publishableKey", GetString(Resource.String.stripe_publishable_key))
                                               .AddParameter("stripe:version", GetString(Resource.String.stripe_version))
                                               .Build();
                }
                else
                {
                    mPaymentMethodParameters = null;
                }

                // Re-create the buy-button with the proper processor
                createAndAddWalletFragment();
            };
        }
예제 #5
0
        protected override void OnCreate (Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);
        
            SetContentView (Resource.Layout.activity_checkout);

            mItemId = Intent.GetIntExtra (Constants.EXTRA_ITEM_ID, 0);

            createAndAddWalletFragment();

            mReturnToShopping = FindViewById<Button> (Resource.Id.button_return_to_shopping);
            mReturnToShopping.Click += delegate {
                GoToItemListActivity ();
            };
            mContinueCheckout = FindViewById<Button> (Resource.Id.button_regular_checkout);
            mContinueCheckout.Click += delegate {
                ContinueCheckout ();
            };

            mStripeCheckbox = FindViewById<CheckBox> (Resource.Id.checkbox_stripe);
            mStripeCheckbox.CheckedChange += (sender, e) => {
                if (e.IsChecked && ValidateStripeConfiguration ()) {
                    
                    mPaymentMethodParameters = PaymentMethodTokenizationParameters.NewBuilder ()
                        .SetPaymentMethodTokenizationType (PaymentMethodTokenizationType.PaymentGateway)
                        .AddParameter ("gateway", "stripe")
                        .AddParameter ("stripe:publishableKey", GetString (Resource.String.stripe_publishable_key))
                        .AddParameter ("stripe:version", GetString (Resource.String.stripe_version))
                        .Build();
                    
                } else {
                    mPaymentMethodParameters = null;
                }

                // Re-create the buy-button with the proper processor
                createAndAddWalletFragment();
            };
        }
        private static MaskedWalletRequest CreateMaskedWalletRequest(ItemInfo itemInfo, PaymentMethodTokenizationParameters parameters)
        {
            // Build a List of all line items
            var lineItems = buildLineItems(itemInfo, true);

            // Calculate the cart total by iterating over the line items.
            var cartTotal = calculateCartTotal(lineItems);

            var builder = MaskedWalletRequest.NewBuilder()
                          .SetMerchantName(Constants.MERCHANT_NAME)
                          .SetPhoneNumberRequired(true)
                          .SetShippingAddressRequired(true)
                          .SetCurrencyCode(Constants.CURRENCY_CODE_USD)
                          .SetEstimatedTotalPrice(cartTotal)
                          // Create a Cart with the current line items. Provide all the information
                          // available up to this point with estimates for shipping and tax included.
                          .SetCart(Cart.NewBuilder()
                                   .SetCurrencyCode(Constants.CURRENCY_CODE_USD)
                                   .SetTotalPrice(cartTotal)
                                   .SetLineItems(lineItems)
                                   .Build());

            if (parameters != null)
            {
                builder.SetPaymentMethodTokenizationParameters(parameters);
            }

            return(builder.Build());
        }
 /**
  * Creates a MaskedWalletRequest for processing payments with Stripe
  *
  * @param itemInfo {@link com.google.android.gms.samples.wallet.ItemInfo} containing details
  *                 of an item.
  * @param parameters {@link PaymentMethodTokenizationParameters} object containing details
  *                   for payment processing with Stripe.
  * @return {@link MaskedWalletRequest} instance
  */
 public static MaskedWalletRequest CreateStripeMaskedWalletRequest(ItemInfo itemInfo, PaymentMethodTokenizationParameters parameters)
 {
     return(CreateMaskedWalletRequest(itemInfo, parameters));
 }
예제 #8
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Create your application here
            SetContentView(Resource.Layout.Main);

            FindViewById <Button>(Resource.Id.buttonCard).Click += delegate {
                StartActivity(typeof(CardInputActivity));
            };

            var b = new WalletClass.WalletOptions.Builder()
                    .SetEnvironment(WalletConstants.EnvironmentSandbox)
                    .SetTheme(WalletConstants.ThemeLight)
                    .Build();

            googleApiClient = new GoogleApiClientBuilder(this)
                              .AddConnectionCallbacks(this)
                              .AddOnConnectionFailedListener(this)
                              .AddApi(WalletClass.API, b)
                              .Build();


            var walletFragment = SupportWalletFragment.NewInstance(WalletFragmentOptions.NewBuilder()
                                                                   .SetEnvironment(WalletConstants.EnvironmentSandbox)
                                                                   .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 by specifying tokenization parameters:
                                      .SetPaymentMethodTokenizationParameters(PaymentMethodTokenizationParameters.NewBuilder()
                                                                              .SetPaymentMethodTokenizationType(PaymentMethodTokenizationType.PaymentGateway)
                                                                              .AddParameter("gateway", "stripe")
                                                                              .AddParameter("stripe:publishableKey", STRIPE_PUBLISHABLE_KEY)
                                                                              .AddParameter("stripe:version", "1.15.1")
                                                                              .Build())

                                      // You want the shipping address:
                                      .SetShippingAddressRequired(true)

                                      .SetMerchantName("Llamanators")
                                      .SetPhoneNumberRequired(true)
                                      .SetShippingAddressRequired(true)

                                      // Price set as a decimal:
                                      .SetEstimatedTotalPrice("20.00")
                                      .SetCurrencyCode("USD")

                                      .Build();

            // Set the parameters:
            var initParams = WalletFragmentInitParams.NewBuilder()
                             .SetMaskedWalletRequest(maskedWalletRequest)
                             .SetMaskedWalletRequestCode(LOAD_MASKED_WALLET_REQ_CODE)
                             .Build();

            // Initialize the fragment:
            walletFragment.Initialize(initParams);

            SupportFragmentManager.BeginTransaction().Replace(Resource.Id.frameFragment, walletFragment).Commit();
        }
예제 #9
0
    /**
 * Creates a MaskedWalletRequest for processing payments with Stripe
 *
 * @param itemInfo {@link com.google.android.gms.samples.wallet.ItemInfo} containing details
 *                 of an item.
 * @param parameters {@link PaymentMethodTokenizationParameters} object containing details
 *                   for payment processing with Stripe.
 * @return {@link MaskedWalletRequest} instance
 */
    public static MaskedWalletRequest CreateStripeMaskedWalletRequest (ItemInfo itemInfo, PaymentMethodTokenizationParameters parameters) 
    {
        return CreateMaskedWalletRequest (itemInfo, parameters);
    }