Primeros pasos con los pagos en bandas

Introducción a la API de Stripe

Un flujo de pago típico con Stripe se puede dividir en dos pasos:

  1. Del lado del cliente, en su código frontend (HTML + Javascript), usted recopila la información de pago del cliente utilizando el formulario Pago prediseñado de Stripe o los campos de formulario Elementos. Esto devolverá un token que luego enviará a su servidor.

  2. Del lado del servidor, en su código backend (en PHP, Python, Ruby o cualquier lenguaje de programación del lado del servidor que prefiera), usa el token en una solicitud de creación de cargo para cargar realmente la tarjeta.

El objetivo de este flujo de 2 pasos es que su servidor solo funciona con fichas de tarjeta y nunca con información de tarjeta sin procesar. Esto significa que nunca tendrá acceso a los números de tarjeta, lo que alivia en gran medida la carga del cumplimiento de PCI.

La documentación de Stripe es bastante extensa e incluye muchos ejemplos y tutoriales. ¡Asegúrate de echarle un vistazo!

Hola Mundo en Python

Un ejemplo de cómo ejecutar stripe listo para usar con wsgi desde un solo archivo.

Al principio, instale la API de python stripe, es decir, con pip:

pip install --user stripe

Cree payment.py que crea un servidor web WSGI en el puerto 8000 listo para usar

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()

Tenga en cuenta:

  • el formulario frontend contiene la clave pública
  • la parte de cargo del backend contiene la clave secreta.

Ejecutar el script

python payment.py

Navega con tu navegador a

http://localhost:8000/

Después de hacer clic en el botón Pagar e ingresar el número de tarjeta de crédito (4242424242424242), el formulario se publica con el token. Entonces, el pago podría procesarse y, finalmente, el objeto “cargo” se imprimirá en el navegador, que contiene:

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

Recursos y lecturas adicionales:

  • Publicación de WSGI: http://wsgi.tutorial.codepoint.net/parsing-the-request-post
  • Formulario de interfaz: https://stripe.com/docs/checkout/tutorial
  • Cargo backend: https://stripe.com/docs/charges

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar los pagos de banda.

Modalidad de pago de banda integrada

Registre una cuenta de producción/sandbox en https://dashboard.stripe.com/register

Inserte el código a continuación en su página web donde desea tener un botón de pago.

<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>

Resultado:ingrese la descripción de la imagen aquí