Paypal "добавить в корзину" не покидая страницы - PullRequest
4 голосов
/ 12 сентября 2011

Я пытаюсь добавить кнопку 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>

спасибо,

Серебряный тигр

Ответы [ 2 ]

1 голос
/ 17 сентября 2012

Вы можете использовать метод add="1" API Корзины для отправки нескольких товаров. Все, что вам нужно сделать, это включить переменные item_name, item_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 для PayPal Payments Standard для получения дополнительной информации об этом методе API и переменных, которые вы можете использовать.

0 голосов
/ 15 сентября 2011

У меня есть отдельные кнопки для добавления в корзину, и мне нужен этот процесс для добавления нескольких элементов, а также.

Я обнаружил, что вы можете использовать форму для отправки нескольких товаров, используя метод «upload = '1'», но при отправке «перезаписывает» текущие элементы корзины новым списком ... который не будет работать как другие элементы, которые я ввожу с помощью одной кнопки «добавить в корзину», будут потеряны.

Кто-нибудь имел опыт работы с этим? Я надеялся, что PayPal HD API, я мог бы добавить элементы с ... но не смог найти ничего подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...