Пример для подписки с использованием Stripe и Python-Flask? - PullRequest
0 голосов
/ 05 июля 2019

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