Example #1
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            HiddenFormResponse res = new HiddenFormResponse();

            if (this.Setting == null)
            {
                return(null);
            }
            var dic = new AopDictionary();

            dic.Add("subject", request.Name);
            if (request.Description != null)
            {
                dic.Add("body", request.Description);
            }

            dic.Add("out_trade_no", request.Id.ToString("N"));
            dic.Add("product_code", "FAST_INSTANT_TRADE_PAY");//fix value

            var amount = Math.Round(request.TotalAmount, 2);

            dic.Add("total_amount", amount);
            dic.Add("time_expire", DateTime.Now.AddMinutes(10));

            string notifurl  = PaymentHelper.GetCallbackUrl(this, nameof(Notify), Context);
            string returnurl = request.ReturnUrl ?? PaymentHelper.EnsureHttpUrl(this.Setting.ReturnUrl, Context);

            res.html = AlipayApi.Pay(dic, this.Setting, returnurl, notifurl);

            return(res);
        }
Example #2
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            HiddenFormResponse res = new HiddenFormResponse();

            res.html = GetForm(request);

            return(res);
        }
Example #3
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            HiddenFormResponse res = new HiddenFormResponse();
            var token = GenerateClientToken();

            if (string.IsNullOrEmpty(token))
            {
                return(null);
            }
            res.html = GenerateHtml(token, request.TotalAmount, request.Id, request.ReturnUrl);

            return(res);
        }
Example #4
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            request.Additional.TryGetValue("firstName", out var firstName);
            request.Additional.TryGetValue("lastName", out var lastName);
            var email = Guid.NewGuid().ToString() + "@email.com";

            var customerParameters = new Customer()
            {
                FirstName = (string)firstName,
                LastName  = (string)lastName,
                Email     = email
            };

            var money = new Money
            {
                Currency = request.Currency,
                Value    = request.TotalAmount
            };

            var dwollaApi      = new DwollaApi(Setting);
            var failedResponse = new FailedResponse("Payment failed")
            {
                requestId = request.Id
            };

            var customer = dwollaApi.CreateCustomer(customerParameters).Result;

            if (!customer.IsSuccessStatusCode)
            {
                failedResponse.Message = customer.Content;
                return(failedResponse);
            }

            var iavToken = dwollaApi.CreateIavToken(customer.Headers.Location.ToString()).Result;

            if (string.IsNullOrEmpty(iavToken.Token))
            {
                failedResponse.Message = "Getting IAV token failed";
                return(failedResponse);
            }

            var response = new HiddenFormResponse
            {
                requestId = request.Id
            };

            response.html = GetHtml(Setting.IsUsingSanbox, iavToken.Token, money, request);
            return(response);
        }
Example #5
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            request.Additional.TryGetValue("quantity", out var quantity);
            request.Additional.TryGetValue("paymentMethodType", out var paymentMethodType);
            string cancelUrl  = string.IsNullOrEmpty(request.CancelUrl) ? Setting.CancelUrl : request.CancelUrl;
            string successUrl = string.IsNullOrEmpty(request.ReturnUrl) ? Setting.SuccessUrl : request.ReturnUrl;

            var lineItems = new List <SessionLineItemOptions>
            {
                new SessionLineItemOptions {
                    Name        = request.Name,
                    Description = request.Description,
                    Amount      = long.Parse(request.TotalAmount.ToString()),
                    Currency    = request.Currency,
                    Quantity    = long.Parse(quantity.ToString())
                }
            };

            var paymentMethodTypesList = new List <string>();

            if (paymentMethodType is object[])
            {
                var paymentMethodTypeArray = Array.ConvertAll((object[])paymentMethodType, x => x.ToString());
                paymentMethodTypesList.AddRange(paymentMethodTypeArray);
            }
            else if (paymentMethodType is object)
            {
                paymentMethodTypesList.Add((string)paymentMethodType);
            }

            var options = new SessionCreateOptions
            {
                SuccessUrl         = successUrl,
                CancelUrl          = cancelUrl,
                LineItems          = lineItems,
                PaymentMethodTypes = paymentMethodTypesList,
                ClientReferenceId  = request.Id.ToString()
            };

            var sessionId = StripeUtility.CreateSession(options, Setting.Secretkey).Result;
            var response  = new HiddenFormResponse
            {
                paymemtMethodReferenceId = request.Id.ToString()
            };

            response.html = GenerateHtml(Setting.Publishablekey, sessionId);
            return(response);
        }
        public IPaymentResponse Charge(PaymentRequest request)
        {
            request.Additional.TryGetValue("quantity", out var quantity);
            request.Additional.TryGetValue("cancelUrl", out var cancelUrl);
            request.Additional.TryGetValue("successUrl", out var successUrl);
            request.Additional.TryGetValue("paymentMethodType", out var paymentMethodType);

            var lineItems = new List <SessionLineItemOptions>
            {
                new SessionLineItemOptions {
                    Name        = request.Name,
                    Description = request.Description,
                    Amount      = long.Parse(request.TotalAmount.ToString()),
                    Currency    = request.Currency,
                    Quantity    = long.Parse(quantity.ToString())
                }
            };

            var paymentMethodTypesList = new List <string>();

            if (paymentMethodType is object[])
            {
                var paymentMethodTypeArray = Array.ConvertAll((object[])paymentMethodType, x => x.ToString());
                paymentMethodTypesList.AddRange(paymentMethodTypeArray);
            }
            else if (paymentMethodType is object)
            {
                paymentMethodTypesList.Add((string)paymentMethodType);
            }

            var options = new SessionCreateOptions
            {
                SuccessUrl         = (string)successUrl,
                CancelUrl          = (string)cancelUrl,
                LineItems          = lineItems,
                PaymentMethodTypes = paymentMethodTypesList
            };

            var sessionId = StripeUtility.CreateSession(options, Setting.Secretkey).Result;
            var response  = new HiddenFormResponse
            {
                paymemtMethodReferenceId = sessionId
            };

            response.setFieldValues("publishableKey", Setting.Publishablekey);
            return(response);
        }