Как создать подписку Stripe с переменным количеством? - PullRequest
0 голосов
/ 16 февраля 2019

Прямо сейчас я успешно создаю подписку Stripe с жестко заданным количеством:

customer = stripe.Customer.create(email=request.form['stripeEmail'], source=request.form['stripeToken'])

# For the moment, change the quantity parameter for each customer
subscription = stripe.Subscription.create(
    customer = customer.id,
    items = [
        {
            'plan': 'plan_*************',
            'quantity': 7,
        },
    ],
)

Идея состоит в том, чтобы получить это значение для quantity из внешнего интерфейса.У меня уже есть селектор, который устанавливает значение количества программно, и я фактически использую его для печати переменных сумм в Stripe Checkout:

<script>
  var handler = StripeCheckout.configure({
    key: "{{pub_key}}",
    image: "https://stripe.com/img/documentation/checkout/marketplace.png",
    locale: "auto",
    zipCode: true,
    token: function(token) {
      // You can access the token ID with `token.id`.
      // Get the token ID to your server-side code for use.
    }
  });

  document.getElementById("customButton").addEventListener("click", function(e) {
    var quantity = document.getElementsByName("selectedQuantity")[0];
    var text = quantity.options[quantity.selectedIndex].text;
    // Open Checkout with further options:
    handler.open({
      name: "Company, Inc.",
      description: text + " Subscriptions",
      amount: 900 * text
    });
    e.preventDefault();
  });

  // Close Checkout on page navigation:
  window.addEventListener("popstate", function() {
    handler.close();
  });
</script>

Обратите внимание, что я получаю открытый ключиз бэкэнда, но я не знаю, как получить значение количества из внешнего интерфейса в бэкэнде.

Как мне это сделать?

РЕДАКТИРОВАТЬ:

Когда я не использовал пользовательскую интеграцию Checkout, у меня была форма, которая будет делать это:

<form action="{{ url_for('pay') }}" method="POST">

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

1 Ответ

0 голосов
/ 16 февраля 2019

Как вы отправляете токен на ваш бэкэнд-сервер (т.е. как вы реализовали функцию token)?Как только вы это сделаете, вы можете просто отправить количество таким же образом.

Один из способов сделать это - использовать форму, добавить токен Stripe к скрытому вводу в этой форме, а затемотправьте его с помощью Javascript.

Вот пример: https://jsfiddle.net/53u96kvw/

Или, если у вас вообще нет формы, вы можете сделать запрос AJAX с той же информацией: https://jsfiddle.net/kcp12o3z/

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