Где написать код сервера для оплаты через stripe?
Я работаю над React JS для реализации платежного шлюза stripe. В качестве бэкенд-сервера я использую Django. В документации по stripe. https://stripe.com/docs/checkout/integration-builder?server=python
для реализации приведен следующий код
код для react App.js
import React, { useState, useEffect } from "react";
import "./App.css";
const ProductDisplay = () => (
<section>
<div className="product">
<img
src="https://i.imgur.com/EHyR2nP.png"
alt="The cover of Stubborn Attachments"
/>
<div className="description">
<h3>Stubborn Attachments</h3>
<h5>$20.00</h5>
</div>
</div>
<form action="/create-checkout-session" method="POST">
<button type="submit">
Checkout
</button>
</form>
</section>
);
const Message = ({ message }) => (
<section>
<p>{message}</p>
</section>
);
export default function App() {
const [message, setMessage] = useState("");
useEffect(() => {
// Check to see if this is a redirect back from Checkout
const query = new URLSearchParams(window.location.search);
if (query.get("success")) {
setMessage("Order placed! You will receive an email confirmation.");
}
if (query.get("canceled")) {
setMessage(
"Order canceled -- continue to shop around and checkout when you're ready."
);
}
}, []);
return message ? (
<Message message={message} />
) : (
<ProductDisplay />
);
}
код для python server.py
#! /usr/bin/env python3.6
"""
server.py
Stripe Sample.
Python 3.6 or newer required.
"""
import os
from flask import Flask, redirect, request
import stripe
# This is your real test secret API key.
stripe.api_key = 'my key'
app = Flask(__name__,
static_url_path='',
static_folder='public')
YOUR_DOMAIN = 'http://localhost:3000/checkout'
@app.route('/create-checkout-session', methods=['POST'])
def create_checkout_session():
try:
checkout_session = stripe.checkout.Session.create(
line_items=[
{
# TODO: replace this with the `price` of the product you want to sell
'price': '{{PRICE_ID}}',
'quantity': 1,
},
],
payment_method_types=[
'card',
],
mode='payment',
success_url=YOUR_DOMAIN + '?success=true',
cancel_url=YOUR_DOMAIN + '?canceled=true',
)
except Exception as e:
return str(e)
return redirect(checkout_session.url, code=303)
if __name__ == '__main__':
app.run(port=4242)
Я не могу понять, где написать этот код server.py в моем проекте django. любая помощь будет оценена по достоинству.
иерархия проекта django
Для Stripe вы, вероятно, захотите использовать webhooks. Поэтому вы можете создать модуль webhooks.py в одном из ваших приложений django.
На стороне клиента вы используете API Stripe для сбора платежей и т.д. Затем через webhooks вы ждете уведомления от Stripe. Пример предоставлен Stripe - https://stripe.com/docs/webhooks#webhook-endpoint-code
Очевидно, что вам нужно подключить представление webhook к urls.py.