Поиск…


замечания

В этом разделе представлен обзор того, какие платежи за полосу, и почему разработчик может захотеть ее использовать.

Следует также упомянуть любые крупные субъекты в рамках полосовых платежей и ссылки на связанные темы. Поскольку документация для платных платежей является новой, вам может потребоваться создать начальные версии этих связанных тем.

Установка или настройка

Подробные инструкции по настройке или установке платных платежей.

Платформа встраиваемых полос

Зарегистрируйте учетную запись производства / песочницы на странице https://dashboard.stripe.com/register

Вставьте ниже код на свою веб-страницу, где вы хотите иметь кнопку выписки.

<form action="/charge" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
    data-amount="2000"
    data-name="Stripe.com"
    data-description="2 widgets"
    data-image="/img/documentation/checkout/marketplace.png"
    data-locale="auto">
  </script>
</form>

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

Hello World в Python

Пример того, как запустить строку из окна с помощью wsgi из одного файла.

Сначала, пожалуйста, установите API-интерфейс python, то есть с помощью pip:

pip install --user stripe

Создайте payment.py который создает веб-сервер WSGI на порту 8000 из коробки

html = """
<html>
<body>
     <p>%(output)s</p>
</body>
</html>
"""

form = """
<form action="" method="POST">
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
        data-amount="999"
        data-name="Stripe.com"
        data-description="Hello World"
        data-locale="auto">
    </script>
</form>
"""

def application(environ, start_response):
        try:
                request_body_size = int(environ.get('CONTENT_LENGTH', 0))
        except (ValueError):
                request_body_size = 0
        request_body = environ['wsgi.input'].read(request_body_size)
        post = parse_qs(request_body)
        out = ''
        if post:
                print post
                token = post.get('stripeToken', [''])[0]
                token = escape(token)
                if token:
                        import stripe
                        stripe.api_key = "sk_test_BQokikJOvBiI2HlWgH4olfQ2"
                        try:
                                charge = stripe.Charge.create(
                                        amount="999",
                                        currency="usd",
                                        source=token,
                                        description="Hello World",
                                        )
                                out = '<pre>charge: %s</pre>' % (charge,)
                        except Exception as e:
                                print 'Exception %s' % (str(e),)
                else:
                        out = 'missing in post: token'
        else:
                out = form
        response_body = html % {
                'output': out,
        }
        status = '200 OK'
        response_headers = [('content-type', 'text/html;charset=utf-8')]
        start_response(status, response_headers)        
        return [response_body]

from wsgiref.simple_server import make_server
from cgi import parse_qs, escape
httpd = make_server('', 8000, application)
httpd.serve_forever()

Пожалуйста, обратите внимание:

  • форма внешнего интерфейса содержит открытый ключ
  • часть бэкэнд-заряда содержит секретный ключ .

Запустить скрипт

python payment.py

Перейдите со своим браузером в

http://localhost:8000/

После нажатия кнопки «Оплатить» и ввода номера кредитной карты (4242424242424242) форма отправляется с помощью токена. Таким образом, платеж может быть обработан, и, наконец, объект charge будет напечатан в браузере, который содержит:

...
"paid": true, 
"description": "Hello World", 
"status": "succeeded"

Ресурсы и дальнейшее чтение:

Введение в API Stripe

Типичный поток платежей с помощью Stripe можно разделить на два этапа:

  1. На стороне клиента, в вашем коде интерфейса (HTML + Javascript), вы собираете информацию о платежах клиента, используя предварительно подготовленную форму заказа Stripe или формуляр ( Elements ). Это вернет маркер, который вы затем отправите на свой сервер.

  2. На стороне сервера, в вашем базовом коде (в PHP, Python, Ruby или любом другом языке на стороне сервера, который вы предпочитаете), вы используете токен в запросе на создание платы для фактической зарядки карты.

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

Документация Stripe довольно обширна и включает в себя множество примеров и руководств - обязательно проверьте это!



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow