예제 #1
0
        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());
        }
예제 #2
0
        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);
        }