Я делаю звонок через почтовый запрос в коде в Global Payments, но я не знаю, получает ли он информацию или нет.
Кажется, что игнорируется мой параметр конфигурации и мои URL-адреса возврата так что удивляйтесь, получает ли он какие-либо данные, хотя он и выдает ошибку, если order_id, amount и т. д. c неверны Я также не получаю запись транзакции на портале отчетов.
Так что я звоню с AWS Lambda как:
Payment pay = new Payment();
string URL = "https://pay.sandbox.realexpayments.com/pay";
// Create a payment object with built in validation, etc
pay.ORDER_ID = [ORDERID];
pay.MERCHANT_ID = [COMPANYNAME];
pay.ACCOUNT = [ACCOUNT];
pay.TIMESTAMP = DateTime.Now.Year.ToString() +
DateTime.Now.Month.ToString().PadLeft(2, pad) +
DateTime.Now.Day.ToString().PadLeft(2,pad) +
DateTime.Now.Hour.ToString().PadLeft(2, pad) +
DateTime.Now.Minute.ToString().PadLeft(2, pad) +
DateTime.Now.Second.ToString().PadLeft(2, pad);
pay.CURRENCY = [CURRENCY];
pay.AMOUNT = [PRICE];
**pay.PM_METHODS = "cards|paypal";**
**pay.MERCHANT_RESPONSE_URL = [VALID API GATEWAY MOCK ENDPOINT];**
pay.HPP_TX_STATUS_URL = ...
pay.VARREF = ...
pay.COMMENT1 = ...
pay.AUTO_SETTLE_FLAG = 1;
pay.SHIPPING_ADDRESS_ENABLE = 1;
pay.ADDRESS_OVERRIDE = 1;
pay.HPP_NAME = ...;
pay.HPP_STREET = ...;
pay.HPP_STREET2 = ...;
pay.HPP_CITY = ...;
pay.HPP_STATE = ...;
pay.HPP_ZIP = ...;
pay.HPP_COUNTRY = ...;
pay.HPP_PHONE = ...;
// Get the hash key
string tempToHash = HashIt(pay.TIMESTAMP + "." + pay.MERCHANT_ID + "." + pay.ORDER_ID + "." + pay.AMOUNT + "." + pay.CURRENCY);
string finalHash = HashIt(tempToHash + ".[hash key]");
pay.SHA1HASH = finalHash;
var httpWebRequest = (System.Net.HttpWebRequest)WebRequest.Create(URL);
var postData = "TIMESTAMP=" + pay.TIMESTAMP +
"&MERCHANT_ID=" + pay.MERCHANT_ID +
"&ACCOUNT=" + pay.ACCOUNT +
"&ORDER_ID=" + pay.ORDER_ID +
"&AMOUNT=" + pay.AMOUNT +
"&CURRENCY=" + pay.CURRENCY +
"&MERCHANT_RESPONSE_URL=" + pay.MERCHANT_RESPONSE_URL +
"&HPP_TX_STATUS_URL=" + pay.HPP_TX_STATUS_URL +
"&PM_METHODS=" + pay.PM_METHODS +
"&SHA1HASH=" + finalHash +
"&HPP_VERSION=2" +
"&VARREF=" + pay.VARREF +
"&COMMENT1=" + pay.COMMENT1 +
"&AUTO_SETTLE_FLAG=" + pay.AUTO_SETTLE_FLAG +
"&SHIPPING_ADDRESS_ENABLE=" + pay.SHIPPING_ADDRESS_ENABLE +
"&ADDRESS_OVERRIDE=" + pay.ADDRESS_OVERRIDE +
"&HPP_NAME=" + pay.HPP_NAME +
"&HPP_STREET=" + pay.HPP_STREET +
"&HPP_STREET2=" + pay.HPP_STREET2 +
"&HPP_CITY=" + pay.HPP_CITY +
"&HPP_STATE=" + pay.HPP_STATE +
"&HPP_ZIP=" + pay.HPP_ZIP +
"&HPP_COUNTRY=" + pay.HPP_COUNTRY +
"&HPP_PHONE=" + pay.HPP_PHONE;
var data = Encoding.ASCII.GetBytes(postData);
var data2 = Encoding.ASCII.GetChars(data);
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.ContentLength = data.Length;
Console.WriteLine(postData);
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(data2, 0, data2.Length);
}
Console.WriteLine("Calling");
try
{
var httpResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine(result);
Я знаю, что код не совсем элегантный ( !) но, похоже, это делает пост. Он перенаправляет на страницу оплаты и, кажется, принимает платеж, но не настраивает страницу правильно, так как на ней отображаются только платежи по карте - нет PayPal и не используется мой обратный URL.
Я что-то пропустил?
Приветствия,