Я пытался найти способ написать простую подписку, используя новый набор инструментов, предоставленный Stripe 1 июля 2019 г. (см. Здесь https://stripe.com/docs/payments/checkout/fulfillment), чтобы выполнить правила SCA, но он не работает для меня. было бы здорово, если бы кто-то мог поделиться полным примером (оформить заказ, просмотреть и т. д.), чтобы сделать это во Flask / Python.
Я прикрепил код, который реализовал после создания продукта, и плана, используя панель мониторинга Stripe. Мой клиент будет исходить из моего кода / базы данных, что это то, что я на самом деле не разработал.
views.py
@app.route('/checkout', methods=['GET', 'POST'])
def checkout():
session = stripe.checkout.Session.create(
payment_method_types=['card'],
subscription_data={
'items': [{
'plan': 'my_plan_id',
}],
},
success_url='https://mywebsite.com',
cancel_url='https://mywebsite.com',
)
print(session)
return render_template('/web/premium/checkout.html')
checkout.html is
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe('pk_test_jOuM3bOylIuDHhxMk19ut3CH');
stripe.redirectToCheckout({
items: [
{sku: 'my_product_id', quantity: 1}
],
successUrl: 'https://mywebsite.com',
cancelUrl: 'https://mywebsite.com',
submitType: 'donate',
}).then(function (result) {
});
</script>
Вот что я получаю, когда печатаю «сессию»:
{
"billing_address_collection": null,
"cancel_url": "https://mywebsite.com",
"client_reference_id": null,
"customer": null,
"customer_email": null,
"display_items": [
{
"amount": 299,
"currency": "eur",
"plan": {
"active": true,
"aggregate_usage": null,
"amount": 299,
"billing_scheme": "per_unit",
"created": 1562261496,
"currency": "eur",
"id": "my_plan_id",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"nickname": "Monthly",
"object": "plan",
"product": "my_product_id",
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"type": "plan"
}
],
"id": "cs_test_id",
"livemode": false,
"locale": null,
"object": "checkout.session",
"payment_intent": null,
"payment_method_types": [
"card"
],
"submit_type": null,
"subscription": null,
"success_url": "https://mywebsite.com"