Требовать номер телефона в Stripe Checkout

#python #stripe-payments

#python #python-3.x #stripe-платежи #номер телефона

Вопрос:

Я хотел бы потребовать от пользователя ввести свой номер телефона в Stripe checkout. Кажется, я не могу найти никакой информации о том, как это сделать.

Пример настройки:

 # This example sets up an endpoint using the Flask framework.
# Watch this video to get started: https://youtu.be/7Ul1vfmsDck.

import os
import stripe

from flask import Flask, jsonify

app = Flask(__name__)

# Set your secret key. Remember to switch to your live secret key in production!
# See your keys here: https://dashboard.stripe.com/account/apikeys
stripe.api_key = 'sk_test_dQV7WggUdL2wzG5zU8fcJ81O'

@app.route('/create-checkout-session', methods=['POST'])
def create_checkout_session():
  session = stripe.checkout.Session.create(
    payment_method_types=['card'],
    line_items=[{
      'price_data': {
        'currency': 'usd',
        'product_data': {
          'name': 'T-shirt',
        },
        'unit_amount': 2000,
      },
      'quantity': 1,
    }],
    mode='payment',
    success_url= "https://yoursite.com/success.html",
    cancel_url='https://example.com/cancel',
  )

  return jsonify(id=session.id)

if __name__== '__main__':
    app.run(port=4242)
  

Ответ №1:

Сам объект сеанса проверки не содержит номера телефона. Лучшим подходом было бы создать клиента, используя ваши собственные формы, прежде чем перенаправлять на checkout, чтобы получить номер телефона клиента [1]. Затем вы указываете идентификатор клиента при создании сеанса [2].

[1] https://stripe.com/docs/api/customers/create#create_customer-phone

[2] https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-customer

Ответ №2:

Добавьте параметр «phone_number_collection», как показано ниже:

 session = stripe.checkout.Session.create(
    phone_number_collection={ # Here
        'enabled': True,      # Here
    },                        # Here
    payment_method_types=['card'],
    line_items=[{
        'price_data': {
            'currency': 'usd',
            'product_data': {
                'name': 'T-shirt',
            },
            'unit_amount': 2000,
        },
        'quantity': 1,
    }],
    mode='payment',
    success_url= "https://example.com/success.html",
    cancel_url='https://example.com/cancel',
)
  

Затем вы можете ввести номер телефона, как показано ниже:

введите описание изображения здесь