Невозможно получить 2Checkout возвращаемых параметров
Я сталкиваюсь с проблемой при получении параметров возврата из 2Checkout с помощью.Net, в настоящее время я работаю в демонстрационном режиме, список продуктов успешно отправляется в 2checkout, и при возврате в (x_receipt_link_url) ничего не происходит, чтобы уведомить, что покупка была завершена, хотя я добавляю блок для получения возвращаемых параметров, я использую что-то вроде этого, но с другими значениями
//Check for response from 2Checkout
if (Request.Params["credit_card_processed"] != null)
{
//Initialize returned parameters
string key = Request.Params["key"];
string sid = "1303908";
string secret_word = "tango";
string merchant_order_id = Request.Params["merchant_order_id"];
string order_number = Request.Params["order_number"];
string total = Request.Params["total"];
//Compute our hash
string string_to_hash = secret_word + sid + order_number + total;
string our_hash = getMd5Hash(string_to_hash);
//Compare hashes and update response string
if (our_hash != key)
{
response = "ERROR: MD5 hash did not match!";
}
else
{
response = "Thank you for your Order!";
}
}
Добрый совет? Спасибо за вашу помощь.
2 ответа
2Checkout вернется credit_card_processed=Y
на всех успешных продажах, так что ваша проверка хеша должна быть запущена. При демонстрационных продажах 2Checkout MD5 Hash не сможет проверить, потому что возвращенный хеш вычисляется с использованием "1" для номера заказа. Таким образом, в вашем коде вы можете сопоставить его следующим образом:
if (Request.Params["demo"] == "Y")
{
string order_number = "1";
}
Ваше сообщение указывает на то, что у вас проблема с получением возвращаемых параметров, а не с проверкой хеша, поэтому я думаю, что проблема не в том коде, который вы опубликовали. Пожалуйста, свяжитесь со службой технической поддержки 2Checkout по адресу techsupport@2co.com для помощи в устранении неполадок с передачей.
- Получить параметры из вашего URL
Получите ключ, sid, order_number, tota l и секретное слово из настроек вашего аккаунта. если вы не можете читать правильно, вы можете использовать эту сеть, чтобы лучше читать параметры.
http://www.freeformatter.com/url-parser-query-string-splitter.html
- Преобразовать в MD5 в верхнем регистре
String result = YourMethodConvertStringToMD5InUpperCase(секретное слово * + sid + порядковый номер + общее количество);
[!] Не забудьте конвертировать в UpperCase, не забудьте конвертировать сумму в строку.
- сравнить
Сравните ключ, сгенерированный 2checkout, с результатом, это должно быть правдой.
Помните, что если у вас есть параметр "demo"="Y", вы будете использовать number_order="1" в своем шифровании md5, как вы можете прочитать здесь.
https://www.2checkout.com/documentation/checkout/passback-validation/