【问题标题】:Paypal "add to cart" without leaving pagePaypal“添加到购物车”而不离开页面
【发布时间】:2011-09-12 06:30:04
【问题描述】:

我正在尝试在我的页面上集成一个贝宝添加到购物车按钮。当每个 paypal 添加时,包含的表单似乎工作正常.. 但是当我使用 ajax 序列化并提交表单时,它给了我一个 302 错误并且永远不会填充 Div。

从技术上讲,我试图避免在有人单击“添加到购物车”按钮时重新加载页面或重定向/打开新页面,并认为我可以使用 Ajax 解决这个问题。显然,由于 ajax 调用无法发布或加载重定向页面,重定向会扼杀这种可能性?

任何指针都会受到赞赏。

这是我的代码:

Javascript:

$(document).ready(function(){
    $(".addToCart").click(function(){
        var ev = arguments[0] || window.event,
        origEl = ev.target || ev.srcElement;
        var cartForm = origEl.name;
        var formData = $(cartForm).serialize();
        $.ajax({
            type: "POST",
            url: "https://www.paypal.com/cgi-bin/webscr",
            cache: false,
            data: formData,
            success: onSuccess,
            error: onError
        });
        return false;
    });
});

HTML:

<a class="addToCart" cartNumber="#paypal<?PHP echo $counter; ?>">
    <img name="#paypal<?PHP echo $counter; ?>" src="images/butNowButton.jpg" cartNumber="#paypal<?PHP echo $counter; ?>" border="0" style="text-decoration:none;" />
</a>
<form name="paypal<?PHP echo $counter; ?>" id="paypal<?PHP echo $counter; ?>" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_cart">
    <input type="hidden" name="business" value="removed for security">
    <input type="hidden" name="lc" value="US">
    <input type="hidden" name="item_name" value="<?PHP echo $itemName; ?>">
    <input type="hidden" name="item_number" value="<?PHP echo $Row['id']; ?>">
    <input type="hidden" name="amount" value="<?PHP echo $amount; ?>">
    <input type="hidden" name="currency_code" value="USD">
    <input type="hidden" name="button_subtype" value="products">
    <input type="hidden" name="no_note" value="0">
    <input type="hidden" name="tax_rate" value="0.000">
    <input type="hidden" name="shipping" value="0.00">
    <input type="hidden" name="add" value="1">
    <input type="hidden" name="bn" value="PP-hopCartBF:btn_cart_LG.gif:NonHostedGuest">
</form>

谢谢,

银虎

【问题讨论】:

  • 完全不知道为什么会收到 302(从技术上讲这不是错误)。但作为替代方案,请查看minicart.paypal-labs.com 的 PayPal 迷你购物车——这可能适合您的需求?
  • 信不信由你..我能够使用它,因为我在您回复之前找到了它。它工作正常:) 非常感谢您的帮助,尽管现在我必须找到一种方法来使用 php 将多个项目添加到购物车(客户选择多个项目,然后我为他们添加到购物车)....必须找到答案到目前为止。

标签: php ajax paypal


【解决方案1】:

您可以使用购物车 API 的 add="1" 方法提交多个商品。您需要做的就是为您要提交的每个产品添加item_nameitem_number 和/或amount 变量,如下所示。

<!-- item 1 -->
<input type="hidden" name="item_name_1" value="....">
<input type="hidden" name="item_number_1" value="....">
<input type="hidden" name="amount_1" value="....">
<!-- item 2 -->
<input type="hidden" name="item_name_2" value="....">
<input type="hidden" name="item_number_2" value="....">
<input type="hidden" name="amount_2" value="....">
<!-- item x -->
<input type="hidden" name="item_name_x" value="....">
<input type="hidden" name="item_number_x" value="....">
<input type="hidden" name="amount_x" value="....">

请查看HTML Variables for PayPal Payments Standard 了解有关此 API 方法和您可以使用的变量的更多信息。

【讨论】:

    【解决方案2】:

    我有单独的按钮用于添加到购物车,并且还需要这个过程来添加多个项目。

    我确实发现您可以使用“upload='1'”方法使用表单来提交多个项目,但是在提交时它会用新列表“覆盖”当前购物车项目......这将不起作用我使用单个“添加到购物车”按钮输入的其他项目将丢失。

    有人有这方面的经验吗?我希望 paypal hd 有一个 API,我可以用 .. 添加项目,但一直找不到类似的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2015-03-31
      • 2012-10-04
      • 1970-01-01
      相关资源
      最近更新 更多