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); } }
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); }