0

我正在尝试使用贝宝为我的第 3 方购物车创建结帐。我将所有值与贝宝的网页“ https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/cart_upload/ ”完全相同。

我从我的数据库中获取产品名称。问题是,这是第一次,但是当我将另一个产品添加到我的购物车并单击购买进入贝宝商店页面时,它只得到了我数据库中的一个项目。我放了3个项目来测试它。

有人可以帮助我吗?我的代码是:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" />
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="upload" value="1" />
    <input type="hidden" name="business" value="vendedortest@test.com" />

    <input type="hidden" name="item_name_1" value="<?php echo $product; ?>" />
    <input type="hidden" name="item_number_1" value="<?php echo $id; ?>" />
    <input type="hidden" name="amount_1" value="<?php echo $price; ?>" />
    <input type="hidden" name="quantity_1" value="<?php echo $qty; ?>" />

    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="rm" value="2" />
    <input type="hidden" name="return" value="products.php" />
    <input type="hidden" name="cancel_return" value="cart.php" />
    <input type="hidden" name="notify_url" value="paypal.php" />
    <input type="hidden" name="charset" value="utf-8" />
</form>
4

1 回答 1

0

我认为您混淆了两种不同的 PayPal 接口方法/产品,即 PayPal 购物车(https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paypal_shopping_cart/)和 PayPal 的第三方购物车功能(您在问题中链接到该功能)。

PayPal 购物车要求 PayPal 为您管理购物车,多次“添加到购物车”调用将逐步在 PayPal 上构建一个商品购物车,然后您可以通过一次结账呼叫作为一组付款。您将 cmd=_cart 与“添加”或“查看”功能结合起来,以修改或查看 PayPal 网站上的购物车,然后买家可以从该 PayPal 托管页面发起结帐。

第三方结账功能假设您的网站上有一个购物车,并且您正在管理从该购物车中添加和删除内容;在这种情况下,您只有在客户拥有完整的购物车并想要结账时才调用 PayPal。在这个模型中,只有最后一个 PayPal 表单提交是相关的——它会覆盖任何以前的调用(这将被视为中止付款)。这是设计使然:用户可能会考虑购买 3 样东西,但返回您的网站,决定添加或删除一些商品,然后决定购买更改后的购物车。以这种方式使用时,PayPal 在多次调用 _cart 命令之间不会为您维护任何状态。这种用法是通过使用与 _cart 命令配对的“上传”输入来控制的,就像您在上面所做的那样。

如果您想在 PayPal 的购物车中放入一些东西,然后在购物车中再放入一些东西,然后为所有这些物品结帐,您需要切换到 PayPal 购物车,这意味着不使用“上传”,而是使用“添加”命令(加上文档中指示的其他一些更改)。

于 2015-05-08T15:43:47.273 回答