Django-PayPal: обработка потока перед отправкой в ​​PayPal оплаты - PullRequest
0 голосов
/ 23 февраля 2011

У меня нет типичного магазина, в котором вы знаете, что вы продаете заранее. Я создаю нестандартные продукты на ходу (необходимо заполнить пару форм), которые люди могут купить, поэтому, прежде чем они уйдут на сайт оплаты PayPal (я использую Paypal Standard с django-paypal без проблем), мне нужно сохранить продукт в БД, поэтому при оплате он связывается с IPN с использованием номера счета.

Я мог бы хранить каждую комбинацию, которую делает пользователь, даже если он не нажимает кнопку «Купить сейчас», но тогда БД будет расти слишком быстро. Я знаю, что могу заставить процесс cron удалить те продукты, которые не были оплачены. Но, искренне, я совсем новичок в PayPal, и IPN время от времени дает сбой, так что я могу получить продукт, которого нет в базе данных, поэтому возврат будет единственным выбором, что означает потерянный бизнес.

У кого-нибудь есть идеи, как решить эту проблему? Единственное, о чем я могу думать, это манипулировать формой django-paypal, чтобы вызвать мое собственное представление, в котором хранится продукт, а затем вручную отправляет форму в paypal.

1 Ответ

0 голосов
/ 17 марта 2011

У меня сама похожая проблема. Вот путь, по которому я иду:

Я создаю страницу с изображением кнопки PayPal, которая, однако, просто отправляет окончательная информация о продукте на мой сайт. В этот момент я сохраняю в БД то, что спросил пользователь и ответьте со страницей, содержащей форму PayPal и автоматическую отправку при загрузке. т.е. вот так

<head>
<script src="{{ STATIC_URL }}js/jquery.js"></script>
  <script>
  $(document).ready(function () {
  $("#paypalform").submit() 
});
  </script>
</head>

<form id="paypalform" name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="boo_1300035015_biz@foo.com">
    <input type="hidden" name="amount" value="0.20">
    <input type="hidden" name="custom" value="{{translation.id}}">
    <input type="hidden" id="quantity" name="quantity" value="{{translation.cnt_words}}">
    <input type="hidden" name="item_name" value="Some Name">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

</script>

Глядя на django_paypal - кажется, что form.render () позволил бы мне заменить все вышеперечисленные формы PayPal с его выводом. Единственная проблема может заключаться в том, что я предпочел бы, чтобы на странице ничего не было видно (кроме «нажмите здесь, если эта форма не перенаправляет вас на PayPal ...»), что означает, что мне может понадобиться либо изменить функцию рендера так как опционально позволяет переопределить отображение кнопок .... или, возможно, удалить кнопку с несколькими js при загрузке документа.

Извините за отсутствие деталей, но у меня еще нет готового кода / продукта).

Дайте мне знать, если это поможет.

Диомед

...