2

我在使用 .Net 从 2Checkout 获取返回参数时遇到问题,我目前正在使用演示模式,产品列表已成功发送到 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!";
                }
            }

好心劝告?谢谢你的帮助。

4

2 回答 2

1

2Checkout 将返回credit_card_processed=Y所有成功的销售,因此您的哈希检查应该被触发。在演示销售中,2Checkout MD5 哈希将无法验证,因为返回的哈希是使用订单号的“1”计算的。因此,在您的代码中,您可以像这样匹配它:

if (Request.Params["demo"] == "Y")
{
    string order_number = "1";
}

您的帖子表明您在获取返回的参数时遇到问题,而不是验证哈希的问题,所以我认为问题不在您发布的代码范围内。请通过 techsupport@2co.com 联系 2Checkout 技术支持,以获取有关回传故障排除的帮助。

于 2013-10-08T21:51:02.573 回答
1
  1. 从您的 URL 获取参数

从您的帐户设置中获取密钥、sid、order_number、total密码。如果您无法正确阅读,可以使用此网络更好地阅读获取参数。

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

  1. 转换为大写的 MD5

字符串结果 = YourMethodConvertStringToMD5InUpperCase(密码* + sid + order_number + total );

[!]不要忘记转换为大写,不要忘记将总计转换为字符串。

  1. 相比

将 2checkout 生成的密钥与结果进行比较,这应该是正确的。

请记住,如果您有参数“demo”="Y",您将在加密 md5 中使用 number_order="1",您可以在此处阅读。

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

于 2016-01-20T16:15:17.783 回答