使用购物篮的 PayPal 安全结账的正确值是多少?

Posted

技术标签:

【中文标题】使用购物篮的 PayPal 安全结账的正确值是多少?【英文标题】:What are the correct values for PayPal secure checkout with basket? 【发布时间】:2011-07-29 22:18:45 【问题描述】:

我的购物车在未加密的情况下可以通过 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()));

【问题讨论】:

我建议您在这里提问:webapps.stackexchange.com 感谢您的回复。我并没有真正尝试使用网络应用程序,我正在使用 PayPal 的 API 编写代码,所以我不确定 webapps 网站是否适合发布问题。 【参考方案1】:

如果其他人想知道,每次您使用加密支付时都应该使用 _s-xclick 命令,然后您可以使用 _cart 命令加密您的项目,并确保将参数 upload=1 添加到请求中。

【讨论】:

以上是关于使用购物篮的 PayPal 安全结账的正确值是多少?的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 10418错误

有没有办法在 PayPal 结账时检查用户如何付款(使用他自己的帐户或信用卡)?

Paypal express checkout 使用 NVP 上线 - “安全标头无效”

PayPal 从 IPN 到 REST API 的过渡

PayPal Rest API Express Checkout 工作流程

如何将单个商品的数量和价格传递给 PayPal?