Добавить несколько элементов в Paypal в одной форме, используя hosted_button_id - PullRequest
4 голосов
/ 19 июля 2011

Я хочу настроить одну форму на сайте для покупки нескольких продуктов через PayPal. Продукты установлены в учетной записи PayPal, и каждый из них имеет идентификатор hosted_button_id.

Форма будет содержать серию описаний и количественных полей, изначально все обнуляются. Затем клиент может добавить желаемые количества к каждому продукту и отправить форму с помощью одной кнопки «Купить сейчас».

Возможно ли это с PayPal? Мне особенно не нужен опыт «корзины» и я не хочу передавать цены на товары (вместо этого используются данные, хранящиеся в PayPal).

спасибо

Ответы [ 2 ]

4 голосов
/ 01 сентября 2011

В итоге я пришел к выводу, что вы не можете этого сделать.

Я перепробовал все, включая AJAXing отправку и отправку отправки через скрытый iFrame, чтобы сохранить пользователя на моем сайте.Ничего не получалось.Похоже, что PayPal очень заинтересован в применении утвержденного рабочего процесса покупок при использовании их корзины.

1 голос
/ 08 мая 2013

Вы можете сделать это, но вам нужно будет заняться программированием на стороне сервера.Вы программно создаете «зашифрованную кнопку» и отправляете ее в PayPal.

Страница моего магазина по адресу https://secure.entrian.com/store/store.html делает это - она ​​запрашивает некоторую информацию, отправляет ее на сервер, чтобы она превратилась вЗашифрованная кнопка, а затем отправляет это в PayPal.

JavaScript выглядит следующим образом, где $license_name и $quantity - это поля, которые я запрашиваю, а formgen.py - это Python на стороне сервера.скрипт, который создает и подписывает запрос с использованием OpenSSL в соответствии с документацией PayPal:

$paypal_form.submit(function () {
   var response = $.ajax({
       type: "GET",
       url: 'formgen.py?' + serialize({
           licenseName: $license_name.val(),
           quantity: $quantity.val()
       }),
       async: false
   }).responseText;

   if (response.indexOf('PKCS7') >= 0) {
       $encrypted.val(response);
   } else {
       $payment_errors.text(response).show(easing_duration);
       return false;
   }

   return true;
}

Форма выглядит так (скорее упрощенно):

<form id="paypal-form" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="upload" value="1">
<input type="hidden" id="encrypted" name="encrypted" value="">
<button id="buynow" class="submit-button btn" type="submit">Buy Now</button>
</form>

То, что <input name="encrypted" ...> заполняетсяОтвет AJAX до отправки формы в PayPal.

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