Прямо сейчас я успешно создаю подписку 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">
Но здесь нет формы, поэтому я не уверен, каким должен быть следующий шаг.