예제 #1
0
        public async Task <DropUIResult> ShowDropUI(double totalPrice, string merchantId, int requestCode = 1234)
        {
            if (isReady)
            {
                CurrentInstance = this;
                _requestCode    = requestCode;
                dropUiPayTcs    = new TaskCompletionSource <DropUIResult>();
                GooglePaymentRequest googlePaymentRequest = new GooglePaymentRequest();

                googlePaymentRequest.InvokeTransactionInfo(TransactionInfo.NewBuilder()
                                                           .SetTotalPrice($"{totalPrice}")
                                                           .SetTotalPriceStatus(WalletConstants.TotalPriceStatusFinal)
                                                           .SetCurrencyCode("USD")
                                                           .Build());

                DropInRequest dropInRequest = new DropInRequest().ClientToken(_clientToken)
                                              .InvokeGooglePaymentRequest(googlePaymentRequest);

                Xamarin.Essentials.Platform.CurrentActivity.StartActivityForResult(dropInRequest.GetIntent(Xamarin.Essentials.Platform.CurrentActivity), requestCode);
            }
            else
            {
                OnDropUIError?.Invoke(this, "Platform is not ready to accept payments");
                dropUiPayTcs.TrySetException(new System.Exception("Platform is not ready to accept payments"));
            }

            return(await dropUiPayTcs.Task);
        }
예제 #2
0
        public void ShowInit(string clientToken)
        {
            var activity = (MainActivity)Forms.Context;
            var listener = new ActivityResultListener(activity, null);
            var request  = new DropInRequest().ClientToken(clientToken);

            activity.StartActivityForResult(request.GetIntent(Forms.Context), 1);
        }
        public void AddPaymentMethod()
        {
            DropInRequest dropInRequest = new DropInRequest();

            dropInRequest.ClientToken(mAuthorization);
            dropInRequest.Amount("1.00");

            StartActivityForResult(dropInRequest.GetIntent(this), DROP_IN_REQUEST);
        }
예제 #4
0
        public Task <bool> ShowPay(string clientToken, int bookingId)
        {
            var activity = (MainActivity)Forms.Context;
            var listener = new ActivityResultListener(activity, bookingId);
            var request  = new DropInRequest().ClientToken(clientToken);

            activity.StartActivityForResult(request.GetIntent(Forms.Context), 1);
            return(listener.Task);
        }
예제 #5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());

            DropInRequest dropInRequest = new DropInRequest();

            dropInRequest.ClientToken("eyJ2ZXJzaW9uIjoyLCJlbnZpcm9ubWVudCI6InNhbmRib3giLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpGVXpJMU5pSXNJbXRwWkNJNklqSXdNVGd3TkRJMk1UWXRjMkZ1WkdKdmVDSXNJbWx6Y3lJNkltaDBkSEJ6T2k4dllYQnBMbk5oYm1SaWIzZ3VZbkpoYVc1MGNtVmxaMkYwWlhkaGVTNWpiMjBpZlEuZXlKbGVIQWlPakUxT1RrMU9USTFORFlzSW1wMGFTSTZJams0WXpjNU1XSXpMVFEzTkRJdE5EWmtaaTA0WVdSbUxXUm1NVGt3WkRjeE4ySXdaU0lzSW5OMVlpSTZJbUkxTjI1NE0zRm5jekp4TldRemEyb2lMQ0pwYzNNaU9pSm9kSFJ3Y3pvdkwyRndhUzV6WVc1a1ltOTRMbUp5WVdsdWRISmxaV2RoZEdWM1lYa3VZMjl0SWl3aWJXVnlZMmhoYm5RaU9uc2ljSFZpYkdsalgybGtJam9pWWpVM2JuZ3pjV2R6TW5FMVpETnJhaUlzSW5abGNtbG1lVjlqWVhKa1gySjVYMlJsWm1GMWJIUWlPbVpoYkhObGZTd2ljbWxuYUhSeklqcGJJbTFoYm1GblpWOTJZWFZzZENKZExDSnpZMjl3WlNJNld5SkNjbUZwYm5SeVpXVTZWbUYxYkhRaVhTd2liM0IwYVc5dWN5STZlMzE5LkhDczQ1US1CMnp6WEI1Sm9sYy1VdGJzTlh0ajFvdHZhSkl1Qm40VkNOUElnTTQzeFJWRExxUWRScHBsakc4M0Q3U0hSZlU1MHlIQTMyb1lyMlZGT0R3IiwiY29uZmlnVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzL2I1N254M3FnczJxNWQza2ovY2xpZW50X2FwaS92MS9jb25maWd1cmF0aW9uIiwiZ3JhcGhRTCI6eyJ1cmwiOiJodHRwczovL3BheW1lbnRzLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vZ3JhcGhxbCIsImRhdGUiOiIyMDE4LTA1LTA4In0sImNoYWxsZW5nZXMiOltdLCJjbGllbnRBcGlVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvYjU3bngzcWdzMnE1ZDNrai9jbGllbnRfYXBpIiwiYXNzZXRzVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhdXRoVXJsIjoiaHR0cHM6Ly9hdXRoLnZlbm1vLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhbmFseXRpY3MiOnsidXJsIjoiaHR0cHM6Ly9vcmlnaW4tYW5hbHl0aWNzLXNhbmQuc2FuZGJveC5icmFpbnRyZWUtYXBpLmNvbS9iNTdueDNxZ3MycTVkM2tqIn0sInRocmVlRFNlY3VyZUVuYWJsZWQiOnRydWUsInBheXBhbEVuYWJsZWQiOnRydWUsInBheXBhbCI6eyJkaXNwbGF5TmFtZSI6IkNvbGNoZXN0ZXIgQ2hyaXN0aWFuIEFjYWRlbXkiLCJjbGllbnRJZCI6bnVsbCwicHJpdmFjeVVybCI6Imh0dHA6Ly9leGFtcGxlLmNvbS9wcCIsInVzZXJBZ3JlZW1lbnRVcmwiOiJodHRwOi8vZXhhbXBsZS5jb20vdG9zIiwiYmFzZVVybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXNzZXRzVXJsIjoiaHR0cHM6Ly9jaGVja291dC5wYXlwYWwuY29tIiwiZGlyZWN0QmFzZVVybCI6bnVsbCwiYWxsb3dIdHRwIjp0cnVlLCJlbnZpcm9ubWVudE5vTmV0d29yayI6dHJ1ZSwiZW52aXJvbm1lbnQiOiJvZmZsaW5lIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoibWFzdGVyY2xpZW50MyIsImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwibWVyY2hhbnRBY2NvdW50SWQiOiJjb2xjaGVzdGVyY2hyaXN0aWFuYWNhZGVteSIsImN1cnJlbmN5SXNvQ29kZSI6IkNBRCJ9LCJtZXJjaGFudElkIjoiYjU3bngzcWdzMnE1ZDNraiIsInZlbm1vIjoib2ZmIn0=");
            StartActivityForResult(dropInRequest.GetIntent(this), REQUEST_CODE);
        }
        void MAddPaymentMethodButton_Click(object sender, System.EventArgs e)
        {
            DropInRequest dropInRequest = new DropInRequest()
                                          .ClientToken(mAuthorization)
                                          .Amount("1.00")
                                          .RequestThreeDSecureVerification(Settings.isThreeDSecureEnabled(this))
                                          .CollectDeviceData(Settings.ShouldCollectDeviceData(this))
                                          .AndroidPayCart(getAndroidPayCart())
                                          .AndroidPayShippingAddressRequired(Settings.IsAndroidPayShippingAddressRequired(this))
                                          .AndroidPayPhoneNumberRequired(Settings.IsAndroidPayPhoneNumberRequired(this))
                                          .AndroidPayAllowedCountriesForShipping(Settings.GetAndroidPayAllowedCountriesForShipping(this));

            if (Settings.isPayPalAddressScopeRequested(this))
            {
                dropInRequest.PaypalAdditionalScopes(new List <string> {
                    PayPal.ScopeAddress
                });
            }

            StartActivityForResult(dropInRequest.GetIntent(this), DROP_IN_REQUEST);
        }