public StartPoliPaymentResponse InitiateTransaction(PoliPayment payment) { var json = System.Text.Encoding.UTF8.GetBytes(payment.ToInitiateTransactionRequest(_appSettings)); var myRequest = CreatePostRequest(json); SendRequest(myRequest, json); var poliResponse = new GetResponseFromHttpRequest <InitiatePoliTransaction>(myRequest).Do(); return(poliResponse.ToResponse()); }
public static string ToInitiateTransactionRequest(this PoliPayment instance, IAppSettings appSettings) { var request = new { Amount = instance.Total.ToCurrencyString(), CurrencyCode = "NZD", MerchantReference = "{0}{1}".FormatWith(instance.ItemType, instance.ItemId), MerchantHomepageURL = appSettings.GetWebsiteUrl(), SuccessURL = instance.SuccessUrl, FailureURL = instance.FailureUrl, CancellationURL = instance.CancellationUrl, NotificationURL = "{0}/api/online-payment/poli/nudge".FormatWith(appSettings.GetApiUrl()) }; var requestAsJson = request.ToJson(); return(requestAsJson); }