Невозможно получить 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 для помощи в устранении неполадок с передачей.

  1. Получить параметры из вашего URL

Получите ключ, sid, order_number, tota l и секретное слово из настроек вашего аккаунта. если вы не можете читать правильно, вы можете использовать эту сеть, чтобы лучше читать параметры.

http://www.freeformatter.com/url-parser-query-string-splitter.html

  1. Преобразовать в MD5 в верхнем регистре

String result = YourMethodConvertStringToMD5InUpperCase(секретное слово * + sid + порядковый номер + общее количество);

[!] Не забудьте конвертировать в UpperCase, не забудьте конвертировать сумму в строку.

  1. сравнить

Сравните ключ, сгенерированный 2checkout, с результатом, это должно быть правдой.

Помните, что если у вас есть параметр "demo"="Y", вы будете использовать number_order="1" в своем шифровании md5, как вы можете прочитать здесь.

https://www.2checkout.com/documentation/checkout/passback-validation/

Другие вопросы по тегам