Django-PayPal: обработка потока перед отправкой в ​​PayPal оплаты

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

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

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

1 ответ

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

Я создаю страницу с изображением кнопки 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 при загрузке документа.

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

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

Диомед

Другие вопросы по тегам