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(); } }
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); }
private async void ProcessCardPayment(PaymentOrderBundle bundle) { await NavigateTo <ICardPaymentViewModel>(bundle); }
public void NavigateToInAppPayment(PaymentOrderBundle bundle) { NavigateTo <IBest2PayViewModel>(bundle); }