我已經能夠讓我的購物車在未加密時使用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()));
}
我建議在這裏問你的問題:http://webapps.stackexchange.com/ – 2011-04-05 12:47:18
感謝您的答覆。我並沒有真正嘗試使用網絡應用程序,我正在使用PayPal的API編寫代碼,因此我不確定webapps網站是否適合發佈問題。 – 2011-04-05 15:59:45