2011-04-05 41 views
0

我已經能夠讓我的購物車在未加密時使用PayPal正常工作,但我在轉移到加密表單時遇到了更新問題。PayPal安全結帳與籃子的正確值是什麼?

[這是所有使用此刻的沙箱現場]

我已經上傳安全證書,這樣的和值的加密似乎是好的。

我的未加密表單使用_cart作爲cmd。使用此功能,我會收到錯誤消息「我們發現此購物車存在問題,如果問題仍然存在,請與商家聯繫。」

因此,由於移動到加密付款時,'正常'結帳命令從_xclick變爲_s-xclick,因此我接下來嘗試使用_s-cart作爲命令。這會導致出現錯誤消息:「您已請求過時的PayPal版本,此錯誤通常是由於使用了書籤造成的。」這是有用的。

我的購物車的加密值包含cmd值_cart,如購物車結帳的文檔中所示。

有誰知道正確的值應該是什麼? PayPal開發者文檔包含購物車結賬和單項加密結帳的樣本,但沒有(我已經能夠找到)購物車加密結賬的樣本。

我的加密形式看起來像這樣的時刻:

<form id="Paypal" name="Paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="cmd" value="_s-cart"> 
    <input type="hidden" name="encrypted" value="@ViewBag.EncryptedBasket" /> 
    <button type="submit" id="paypal-checkout-button" value="PayPal">Checkout</button> 
</form> 

我的加密值:

var valuePairs = (new[] 
    { 
     new KeyValuePair<string, string>("cmd", "_cart"), 
     new KeyValuePair<string, string>("upload", "1"), 
     new KeyValuePair<string, string>("business", Globals.Settings.PayPal.AccountEmail), 
     new KeyValuePair<string, string>("currency_code", Globals.Settings.PayPal.CurrencyCode), 
     new KeyValuePair<string, string>("return", returnUrl), 
     new KeyValuePair<string, string>("cancel_return", cancelUrl), 
     new KeyValuePair<string, string>("cert_id", Globals.Settings.PayPal.CertificateId), 
    }).ToList(); 

for (int i = 0; i < ShoppingCart.Items.Count; i++) 
{ 
    var index = i + 1; 
    var item = ShoppingCart.Items[i]; 

    valuePairs.Add(new KeyValuePair<string, string>("amount_" + index, item.Product.FinalUnitPrice.ToString("N2"))); 
    valuePairs.Add(new KeyValuePair<string, string>("item_name_" + index, item.Product.Title)); 
    valuePairs.Add(new KeyValuePair<string, string>("item_number_" + index, item.Product.ProductId.ToString())); 
    valuePairs.Add(new KeyValuePair<string, string>("quantity_" + index, item.Quantity.ToString())); 
} 
+0

我建議在這裏問你的問題:http://webapps.stackexchange.com/ – 2011-04-05 12:47:18

+0

感謝您的答覆。我並沒有真正嘗試使用網絡應用程序,我正在使用PayPal的API編寫代碼,因此我不確定webapps網站是否適合發佈問題。 – 2011-04-05 15:59:45

回答

0

如果任何人想知道,您每次使用加密的支付時間,你應該使用_s-xclick命令,然後您可以使用_cart命令加密您的項目,並確保將參數upload = 1添加到請求中。