2013-10-08 43 views
1

我使用的.Net從的2Checkout獲取返回參數面臨的一個問題,我目前的工作演示模式,產品列表中成功發送到的2Checkout以及何時返回(x_receipt_link_url)沒有發生,通知購買已經完成,雖然我加入一個模塊來獲取返回參數, 我使用這樣的事情,但不同的價值觀無法獲取的2Checkout返回參數

//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

的2Checkout將在所有成功的銷售回報credit_card_processed=Y所以你的哈希應檢查點火。在演示銷售中,2Checkout MD5哈希將無法驗證,因爲返回的哈希是使用「1」作爲訂單號計算的。因此,在你的代碼,你可以像這樣搭配吧:

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

您的文章表明您有獲取返回的參數有問題,沒有驗證哈希,所以我認爲這個問題是代碼之外的問題你發佈了。請通過[email protected]與2Checkout技術支持部門聯繫,以獲取故障排除方面的幫助。

+0

感謝您的回覆。 – yousra

+0

你的回答是解決方案的一部分,而另一部分則是,我必須改變林後的設置帳戶才能使用直接回報的選擇頭球回傳。並解決了這個問題 – yousra

1
  1. 從您的網址

獲取參數獲取鍵,SID,ORDER_NUMBER,託塔升並從您的帳戶設置祕密字。 如果你不能正確讀取,你可以使用這個網頁讀取更好的參數。

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

  • 轉換爲MD5以大寫
  • 字符串結果= YourMethodConvertStringToMD5InUpperCase(保密字* + SID + ORDER_NUMBER +總計);

    [!] 不要忘記轉換爲大寫,不要忘記轉換總爲字符串。

  • 比較
  • 比較通過與結果的2Checkout生成的密鑰,這應該是真實的。

    記住,如果你在參數「演示」 =「Y」你會使用number_order =「1」在您的MD5加密,你可以在這裏閱讀。

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