コード例 #1
0
        public async Task <DoPaymentResponse> DoPaymentAsync(DoPaymentRequest request)
        {
            DoPaymentResponse response = new DoPaymentResponse();

            using (var unitOfWork = unitOfWorkFactory.Create())
            {
                unitOfWork.Begin();

                BankBin bankBin = await bankDomainService.GetValidBankBinByCardNumberAsync(unitOfWork, request.CardNumber);

                BankProvider bankProvider = await bankDomainService.GetValidBankProviderByBankIdAsync(unitOfWork, bankBin.BankId);

                Provider provider = await providerDomainService.GetValidProviderByIdAsync(unitOfWork, bankProvider.ProviderId);

                PaymentProvider paymentProvider = providerDomainService.GetValidPaymentProviderByType(provider.ProviderType);

                PaymentRequest paymentRequest = classMapper.Map <DoPaymentRequest, PaymentRequest>(request);
                paymentRequest.SetConfiguration(bankProvider.Configuration);

                paymentProvider.DoPaymentAsync(paymentRequest);

                unitOfWork.Commit();
            }

            return(response);
        }
コード例 #2
0
        public async Task DoPayment()
        {
            DoPaymentResponse response = await paymentService.DoPaymentAsync(new DoPaymentRequest
            {
                CardHolderName = "Tufan DAYI",
                CardNumber     = "4183427105342132",
                Cvc            = "123",
                ExpireMonth    = "12",
                ExpireYear     = "2020",
                Installment    = 1
            });

            Assert.True(response.IsSuccess);
        }