Esempio n. 1
0
 protected virtual void InitFromBundle(PaymentOrderBundle parameters)
 {
     VmNavigationType = parameters.NavigationType == NavigationType.None ?
                        NavigationType.ClearAndPush :
                        parameters.NavigationType;
     OrderId = parameters.OrderId;
 }
        private async void ProcessNativePayment(PaymentOrderBundle bundle)
        {
            var vmService            = Mvx.Resolve <IYandexKassaVmService>();
            var paymentsVmService    = Mvx.Resolve <IPaymentsVmService>();
            var nativePaymentService = Mvx.Resolve <INativePaymentService>();

            var paymentInfo = await vmService.GetPaymentInfo(bundle.OrderId);

            var paymentToken = await nativePaymentService.Pay(paymentInfo);

            if (paymentToken == null)
            {
                return;
            }

            var paymentTokenObject = JObject.Parse(paymentToken);
            var paymentData        = paymentTokenObject["paymentData"].ToString();

            if (await vmService.PayWithApplePay(paymentData, paymentInfo.Amount, paymentInfo.Currency, bundle.OrderId))
            {
                await paymentsVmService.OrderPaid(bundle.OrderId);

                nativePaymentService.CompleteSuccess();
            }
            else
            {
                nativePaymentService.CompleteFail();
            }
        }
Esempio n. 3
0
        private async void ProcessNativePayment(PaymentOrderBundle bundle)
        {
            var vmService            = Mvx.Resolve <ICloudPaymentsVmService>();
            var paymentsVmService    = Mvx.Resolve <IPaymentsVmService>();
            var nativePaymentService = Mvx.Resolve <INativePaymentService>();

            var paymentInfo = await vmService.GetPaymentInfo(bundle.OrderId);

            var paymentToken = await nativePaymentService.Pay(paymentInfo);

            if (paymentToken == null)
            {
                return;
            }

            var paymentResult = await vmService.PayWithApplePay(paymentToken, paymentInfo.Amount, paymentInfo.Currency, bundle.OrderId);

            if (paymentResult.Succeeded)
            {
                await paymentsVmService.OrderPaid(bundle.OrderId);

                nativePaymentService.CompleteSuccess();
            }
            else
            {
                nativePaymentService.CompleteFail();
            }
        }
        public void NavigateToInAppPayment(PaymentOrderBundle bundle)
        {
            var config = Mvx.Resolve <IBasketConfigService>().Config;

            if (config.InAppPayments != null)
            {
                var type = GetPaymentModuleType(bundle, config.InAppPayments);

                if (!Mvx.Resolve <IRouterService>().NavigatedTo(type, bundle))
                {
                    MvxTrace.Trace(MvxTraceLevel.Error, this.GetType().FullName, $"Can't navigate to ViewModel of type {type}");
                }
            }
        }
        public void NavigateToInAppPayment(PaymentOrderBundle bundle)
        {
            switch (bundle.PaymentType)
            {
            case PaymentType.CreditCard:
                ProcessCardPayment(bundle);
                break;

            case PaymentType.Native:
                ProcessNativePayment(bundle);
                break;

            default:
                break;
            }
        }
        private string GetPaymentModuleType(PaymentOrderBundle bundle, Dictionary <BasketInAppPaymentType, AssemblyElement> inAppPayments)
        {
            if (inAppPayments.TryGetValue(BasketInAppPaymentType.All, out AssemblyElement assembly))
            {
                return(assembly.TypeName);
            }

            switch (bundle.PaymentType)
            {
            case PaymentType.CreditCard:
                return(inAppPayments.TryGetValue(BasketInAppPaymentType.CreditCard, out assembly) ? assembly.TypeName : string.Empty);

            case PaymentType.EWallet:
                return(inAppPayments.TryGetValue(BasketInAppPaymentType.EWallet, out assembly) ? assembly.TypeName : string.Empty);

            case PaymentType.Native:
                return(inAppPayments.TryGetValue(BasketInAppPaymentType.Native, out assembly) ? assembly.TypeName : string.Empty);
            }

            return(string.Empty);
        }
 private void ProcessCardPayment(PaymentOrderBundle bundle)
 {
     NavigateTo <IYandexKassaViewModel>(bundle);
 }
Esempio n. 8
0
 private async void ProcessCardPayment(PaymentOrderBundle bundle)
 {
     await NavigateTo <ICardPaymentViewModel>(bundle);
 }
Esempio n. 9
0
 public void NavigateToInAppPayment(PaymentOrderBundle bundle)
 {
     NavigateTo <IBest2PayViewModel>(bundle);
 }