我在使用.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!";
}
}
请咨询? 谢谢你的帮助。
答案 0 :(得分:1)
2Checkout将在所有成功销售中返回credit_card_processed=Y
,因此您的哈希检查应该被解雇。在演示销售中,2Checkout MD5哈希将无法验证,因为返回的哈希是使用订单号的“1”计算的。因此,在您的代码中,您可以像这样匹配它:
if (Request.Params["demo"] == "Y")
{
string order_number = "1";
}
您的帖子表明您在获取返回的参数时遇到问题,而不是验证哈希值的问题,所以我认为问题超出了您发布的代码。请通过techsupport@2co.com联系2Checkout技术支持,以获取有关回传故障的帮助。
答案 1 :(得分:1)
从您的帐户设置中获取密钥,sid,order_number,tota l和密码。 如果你无法正确阅读,你可以使用这个网页更好地阅读获取参数。
http://www.freeformatter.com/url-parser-query-string-splitter.html
String result = YourMethodConvertStringToMD5InUpperCase (密码字* + sid + order_number + total);
[!] 不要忘记转换为UpperCase,不要忘记将总数转换为字符串。
将2checkout生成的密钥与结果进行比较,这应该是真的。
请记住,如果你有参数“demo”=“Y”,你可以在你的加密md5中使用number_order =“1”,你可以在这里阅读。
https://www.2checkout.com/documentation/checkout/passback-validation/