Paypal“添加到购物车”而不离开页面

时间:2011-09-12 06:30:05

标签: php ajax paypal

我正在尝试在我的页面上集成paypal添加到购物车按钮。当每个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>

感谢,

Silver Tiger

2 个答案:

答案 0 :(得分:1)

您可以使用Shopping Cart 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方法和可以使用的变量的更多信息。

答案 1 :(得分:0)

我有单独的按钮可以添加到购物车,并且需要此过程另外添加多个项目。

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

有没有人有这方面的经验?我希望paypal有一个API,我可以用...添加项目但是却找不到那样的东西。