Пример #1
0
        public static void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            if (requestCode == _requestCode)
            {
                if (resultCode == Result.Ok)
                {
                    DropInResult result     = data.GetParcelableExtra(DropInResult.ExtraDropInResult).JavaCast <DropInResult>();
                    var          dropResult = new DropUIResult()
                    {
                        Nonce = result.PaymentMethodNonce.Nonce,
                        Type  = $"{result.PaymentMethodType}"
                    };

                    CurrentInstance?.SetDropResult(dropResult);
                }
                else if (resultCode == Result.Canceled)
                {
                    CurrentInstance?.SetDropCanceled();
                }
                else
                {
                    Exception error = data.GetSerializableExtra(DropInActivity.ExtraError).JavaCast <Java.Lang.Exception>();
                    CurrentInstance?.SetDropException(error);
                }
            }
        }
        public void OnResult(DropInResult result)
        {
            if (result.PaymentMethodType == null)
            {
                mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Visible;
            }
            else
            {
                mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Gone;

                mPaymentMethodType = result.PaymentMethodType;

                mPaymentMethodIcon.SetImageResource(result.PaymentMethodType.Drawable);
                //if (result.PaymentMethodNonce != null)
                //{
                //    DisplayResult(result.PaymentMethodNonce, result.DeviceData);
                //}
                //else if (result.PaymentMethodType == PaymentMethodType.AndroidPay)
                //{
                //    mPaymentMethodTitle.SetText(PaymentMethodType.AndroidPay.LocalizedName);
                //    mPaymentMethodDescription.Text = "";
                //    mPaymentMethod.Visibility = Android.Views.ViewStates.Visible;
                //}

                mPurchaseButton.Enabled = true;
            }
        }
        protected override void OnResume()
        {
            PayPalOneTouchCore.UseHardcodedConfig(this, true);
            mAuthorization = "sandbox_tmxhyf7d_dcpspy2brwdjr3qn";
            base.OnResume();
            if (mPurchased)
            {
                mPurchased = false;
                clearNonce();

                try
                {
                    if (ClientToken.FromString(mAuthorization) is ClientToken)
                    {
                        DropInResult.FetchDropInResult(this, mAuthorization, this);
                    }
                    else
                    {
                        mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Visible;
                    }
                }
                catch (InvalidArgumentException e)
                {
                    mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Visible;
                }
            }
        }
        protected override void OnResume()
        {
            base.OnResume();
            if (mPurchased)
            {
                mPurchased = false;
                clearNonce();

                try
                {
                    if (ClientToken.FromString(mAuthorization) is ClientToken)
                    {
                        DropInResult.FetchDropInResult(this, mAuthorization, this);
                    }
                    else
                    {
                        mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Visible;
                    }
                }
                catch (InvalidArgumentException e)
                {
                    mAddPaymentMethodButton.Visibility = Android.Views.ViewStates.Visible;
                }
            }
        }
        protected override void OnAuthorizationFetched()
        {
            try
            {
                mBraintreeFragment = BraintreeFragment.NewInstance(this, mAuthorization);

                if (ClientToken.FromString(mAuthorization) is ClientToken)
                {
                    DropInResult.FetchDropInResult(this, mAuthorization, this);
                }
                else
                {
                    mAddPaymentMethodButton.Visibility = ViewStates.Visible;
                }
            }
            catch (InvalidArgumentException e)
            {
                ShowDialog(e.Message);
            }
        }
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            SafelyCloseLoadingView();

            if (resultCode == Result.Ok)
            {
                DropInResult result = (DropInResult)data.GetParcelableExtra(DropInResult.ExtraDropInResult);
                DisplayResult(result.PaymentMethodNonce, result.DeviceData);
                mPurchaseButton.Enabled = (true);
            }
            else if (resultCode != Result.Canceled)
            {
                SafelyCloseLoadingView();
                var error = data.GetSerializableExtra(DropInActivity.ExtraError);

                ShowDialog(((Java.Lang.Exception)error)
                           .Message);
            }
        }