Exemplo n.º 1
0
        public ActionResult Index()
        {
            var model = new PaymentInitializationRequest
            {
                MerchantAgreementCode = "demo-merchant-agreement-code",
                OrderNumber           = "12345678"
            };

            return(View(model));
        }
        public static void SetInitializationMetaFields(this MetaStorageBase order, PaymentInitializationRequest initializationRequest)
        {
            order.SetMetaField(MetadataConstants.OrderTimestamp, initializationRequest.OrderTimestamp.ToString("yyyy-MM-dd HH:mm:ss"));
            order.SetMetaField(MetadataConstants.OrderCurrencyCode, initializationRequest.OrderCurrencyCode);

            if (string.IsNullOrWhiteSpace(initializationRequest.SignatureOne) == false)
            {
                order.SetMetaField(MetadataConstants.SignatureOne, initializationRequest.SignatureOne);
            }

            if (string.IsNullOrWhiteSpace(initializationRequest.SignatureTwo) == false)
            {
                order.SetMetaField(MetadataConstants.SignatureTwo, initializationRequest.SignatureTwo);
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Donate([FromServices] IPaymentProvider provider, int donation, string email)
        {
            var request = new PaymentInitializationRequest();

            request.Initialize(new Dictionary <string, string>
            {
                [PAYSTACK_AMOUNT_KEY] = (donation * 100).ToString(),
                [PAYSTACK_INITIALIZATION_REFERENCE_KEY] = Guid.NewGuid().ToString(),
                [PAYSTACK_EMAIL_KEY]        = email,
                [PAYSTACK_CALLBACK_URL_KEY] = Url.Action("confirm")
            });

            var response = await provider.MakePayment(request);

            return(Json(response));
        }
        public static void InitializeFromOrder(this PaymentInitializationRequest request, PurchaseOrder purchaseOrder)
        {
            var          currentMarket  = ServiceLocator.Current.GetInstance <ICurrentMarket>();
            var          paymentService = ServiceLocator.Current.GetInstance <IVerifonePaymentService>();
            OrderAddress orderAddress   = purchaseOrder.OrderAddresses.First();

            request.PaymentLocale     = paymentService.GetPaymentLocale(ContentLanguage.PreferredCulture);
            request.OrderNumber       = purchaseOrder.Id.ToString(CultureInfo.InvariantCulture.NumberFormat);
            request.OrderCurrencyCode = currentMarket.GetCurrentMarket().DefaultCurrency.CurrencyCode;
            request.OrderGrossAmount  = purchaseOrder.Total.ToVerifoneAmountString();
            request.OrderNetAmount    = purchaseOrder.SubTotal.ToVerifoneAmountString();
            //request.OrderVatAmount = purchaseOrder.TaxTotal.ToAmountString();
            request.BuyerFirstName            = orderAddress.FirstName;
            request.BuyerLastName             = orderAddress.LastName;
            request.BuyerPhoneNumber          = orderAddress.DaytimePhoneNumber ?? orderAddress.EveningPhoneNumber;
            request.BuyerEmailAddress         = orderAddress.Email;
            request.DeliveryAddressLineOne    = orderAddress.Line1;
            request.DeliveryAddressLineTwo    = orderAddress.Line2;
            request.DeliveryAddressPostalCode = orderAddress.PostalCode;
            request.DeliveryAddressCity       = orderAddress.City;
        }
        public async Task IsInitializePaymentParsingCorrect()
        {
            paystack.Caller = new TestPaystackCaller <PaymentInitializationResponse>();
            const string expectedMessage = "Authorization URL created";
            const string expectedStatus  = "success";


            var request = new PaymentInitializationRequest();

            request.Initialize(new Dictionary <string, string>
            {
                [PAYSTACK_AMOUNT_KEY] = 500000.ToString(),
                [PAYSTACK_INITIALIZATION_REFERENCE_KEY] = "500",
                [PAYSTACK_EMAIL_KEY]        = "[email protected]",
                [PAYSTACK_CALLBACK_URL_KEY] = "https://callback.test.com/endpoint"
            });

            var response = await paystack.MakePayment(request);

            Assert.AreEqual(expectedMessage, response.Message);
            Assert.AreEqual(expectedStatus, response.Status);
            Assert.IsTrue(response.AuthorizationUrl != null);
        }