Django отправьте форму и перенаправьте на страницу оплаты, затем заполните форму - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь интегрировать Stripe Checkout , чтобы клиент платил при отправке формы.Эта интеграция перенаправляет клиента на страницу Stripe для осуществления платежа.Как я могу заставить Django запомнить значения ввода из формы после отправки платежа на перенаправленной странице?Могу ли я создать собственный URL, который запоминает значения?

Также их сценарию требуется идентификатор платежа, который я передаю через переменную, но эта переменная сначала создается после отправки формы.Я не могу изменить переменную javascript динамически после рендеринга страницы, верно?

Javascript

<script>
    stripe.redirectToCheckout({
      sessionId: "{{context}}",
    }).then(function (result) {
      // Diplay result.error.message to your customer
    });
    </script>

Python-код для создания платежа, который называется после отправки формы

    stripeUID = str(uuid.uuid4())
    payment = stripe.checkout.Session.create(
  success_url="https://mypage.com/succes",
  cancel_url="https://mypage.com/error",
  payment_method_types=["card"],
  client_reference_id= stripeUID,
  line_items=[
    {
      "amount": 2000242,
      "quantity": 1,
      "name": "Blender rendering",
      "currency": "usd",
    }
  ]
)   
    context = payment.id

1 Ответ

1 голос
/ 12 марта 2019

Для идентификатора платежа используйте AJAX.Отправьте форму с Javascript, и в ответе AJAX укажите идентификатор платежа.тогда вы можете использовать его в перенаправлении.Что касается перенаправления, вам нужно будет создать модель для хранения значения формы с идентификатором сеанса чередования, поэтому, когда ваш клиент получает перенаправление на ваш веб-сайт, вы можете запросить таблицу с идентификатором сеанса, чтобы получить их исходные значения формы.

AJAX-вызовы могут выполняться с помощью fetch , XMLHttpRequest , jQuery.ajax

...