Рубрики
Без рубрики

Meses Sin находится на полосе Python y React parte 4

En nuestro post передний Al fin terminamos nuestro formulario de pago del lado de React js, en este p … Tagged с помощью питона, колбы, полосы, реагировать.

Python-stripe (4 серии деталей)

En nuestro post передний фон terminamos nuestro formulario de pago del lado de react js, en este post daremos inicio a la creación de nuestra pequeña para para exceptar los pagos utilizando кол.

Antes de Realizar Cualquier Instalación Vamos Activar Nuestro Entorno Virtual.

Source Env/Bin/Activate

Ahora Si Para Instalar Flask Solo debemos de Hacer:

PIP установить колбу

Y para instalar la librería de stripe hacemos:

PIP установить полосу

Esta será una api pequeña por lo que solo necesitaremos un archivo al que llamaremos api.py

Para validar que flask esta reforramente instalado vamos accribir lo siguiente

import flask

app = flask.Flask(__name__)
app.config["DEBUG"] = True


@app.route('/', methods=["GET"])
def home():
    return "

Flask API

" app.run()

Ahora Hacemos Python api.py Lo Cual Iniciara el Servidor de Debug de Flask Con el Que Podremos Acceder a Nuestro Localhost en el Puerto 5000 El Cual Es El Puerto Por Defecto Para Flask, Este Puede Ser Cambiado Dentro de los Parámetros de la función run () Анкет

Entonces Si Accedemos A 127.0.0.1:5000 Veremos el Mensaje Que Hemos colocado Dentro de la función Главная Анкет

Ahora, Recordando un poco nuestra aplicacion de React esta apuntando a la siguiente ruta API/ACEPT_PAYMENT , por lo Que Proceficemos Crearla.

@app.route('/api/acept_payment', methods=['POST'])
def acept_payment():
    pass

Ahora vamos iniciar nuestro proyecto de gain y reiniciar nuestro servidor de flask, al hacer la peticion tal cual la tenemos ahora en nuestra aplicación nos toparemos con or on orcionado a cors, sobre este tema vamos a wablar mas en on on or de de de de de de de de de de de de de de de de de de de de de de de de de de demonado a cors ore oomo soluroor oomoro solu Haremos la Siguiente Modificación.

Vamos a Instalar la libreria Flask-Cors Haciendo PIP установить Flask-Cors Y Escribimos Ло Сигюенте

from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)
app.config["DEBUG"] = True
CORS(app)

Vale en Proncio Pensaríamos Que Esto va Функциональный Pero Si Hacemos La Petición Al Backend nos Vamos a topar con el siguiente ошибка:

Y esto Que varmea? 😕 Bueno Pues Resulta que no podemos hacer peticiones un servidor sin https.

Vale Y Eso Como lo Solucionamos? Pues de inicio nos podemos crear un sertivado autofirmado y esto lo vamos hacer de la siguiente manera

openssl req -x509 -newkey RSA: 4096 -Nodes -out cert.pem -keyout key.pem -dayss 365

Полностью y Listo ya solo nos queda agregarlo a nuestro proyecto en python

app.run (ssl_context = (‘cert.pem’, ‘key.pem’))

Ahora Desde El Navegador Debemos Entrar A Nuestro Localhost en El Puesto 5000 O El Que Hayan configurado para el servidor de prueba de flask y darle promiso para que utilice nuestro autofirmado.

Esta solución no debe ir nunca en productción, para products o nos compramos los certiados o usamos letsencript o lo que sea pero jamás un autofirmado.

ОК, ahora si nuestra petición ha de funcionar como esperamos

MUY BIEN YA PODEMOS MODIFICAR NUESTRA API PARA ATERCER EL OBJETO JSON QUE ENVIAMOS DESDE React.

@app.route('/api/acept_payment', methods=['POST'])
def acept_payment():
    data = request.get_json()
    print(data)
    return {'ff':'ff'}

Con la función get_json () de obtenemos todo lo que se envié por método post en formato json y de momono Regresamos un diccionario de prueba.

Consto estamos listos ahora si para excepterar nuestro pago con stripe, así que vamos a modificar nuestra api

from flask import Flask, request, jsonify
from flask_cors import CORS

import stripe

stripe.api_key = 'secret'

app = Flask(__name__)
app.config["DEBUG"] = True
CORS(app)


@app.route('/', methods=['GET'])
def home():
    return "

Flask API

" @app.route('/api/acept_payment', methods=['POST']) def acept_payment(): data = request.get_json() payment = stripe.PaymentIntent.create( amount=2000, currency='mxn', payment_method=data['payment_method'], payment_method_types=["card"], off_session=True, confirm=True ) print(payment) return payment app.run(ssl_context=('cert.pem', 'key.pem'))

Conesto estamos haciendo uso de el api de stripe y mas en empifico de su api de Оплачивайтесь Entre Los Parámetros Que estamos enviando esta el monto a cobrar, el tipo de cambio, el tipo de método de pago.

MAS EN Offifico El Parámetro Off_session Значение Que no estamos inviando un id para Клиент y Подтвердить ЗНАЧЕНИЕ QUE Queremos Подтверждение El Pago, Ahora para Que Подтвердить море Истинный Off_session Тамбин дебют Сер правда.

Нет сена que olvidar poner nuestro propia clave secreta en esta linea.

stripe.api_key

de lo contrario nada de esto va фансионар.

Conso ya estamos ecepterdo pagos con stripe solo queda ver si Эль -Паго Реалмен Се Реализо y ESO LO Podemos Ver Desde El Dashboard de Stripe.

Aquí Vemos nuestro pago Подтверждение Pero … поступка El Monto Le Pusimos Que Queríamos Cobrar 2000 Y El Cargo Que Tenemos Es Solo Por 20. Bueno Esto Se Debe Que Stripe Toma El Monto Dos Ceros Antes, Pero la solución para eso que el valor que queremos cobrar los multipliquemos por 100 y listo.

@app.route('/api/acept_payment', methods=['POST'])
def acept_payment():
    data = request.get_json()
    amount = 2000
    payment = stripe.PaymentIntent.create(
        amount=amount*100,
        currency='mxn',
        payment_method=data['payment_method'],
        payment_method_types=["card"],
        off_session=True,
        confirm=True
    )
    print(payment)
    return payment

Ahora si todo esta bien y eso vamos Pueden Usar Los Comentarios y Tratare de Responder A Cada Uno de Ellos. Por Ultimo les dejo los Repositorios de cada proyecto y nos vemos en el siguiente post.

https://github.com/leonardoalonso/stripeform https://github.com/leonardoalonso/stripe-flask-api

Python-stripe (4 серии деталей)

Оригинал: “https://dev.to/leonardoalonso/meses-sin-intereses-en-stripe-con-python-y-react-parte-4-3dld”