Maison >développement back-end >Tutoriel Python >Comment utiliser l'API Razorpay et intégrer la passerelle de paiement
Razorpay est l'un des principaux processeurs de paiement en Inde qui fournit des solutions de bout en bout aux entreprises et aux particuliers. Razorpay propose une suite complète de solutions de paiement, des services de passerelle de paiement au traitement des transactions et au règlement des fonds.
Nous en discuterons certains ici dans cet article. Nous utiliserons du code python ici, mais il peut être facilement répliqué dans un autre langage car nous n'utilisons aucun SDK ici.
Si vous avez besoin d'exemples de SDK, faites-le-moi savoir dans le commentaire.
Exemple de code pour l'API razorpay ici
Les documents API peuvent être trouvés ici
Détails de la carte de test - ici
Pour commencer à utiliser l'API Razopay, vous devrez créer un compte marchand sur le site Web Razorpay. Cela vous fournira les informations d'identification nécessaires et l'accès à la documentation de l'API.
Lien d'enregistrement du compte - https://dashboard.razorpay.com/
Inscrivez-vous ici et accédez au mode test car notre objectif ici est de tester les API et le flux de paiement.
Une fois votre compte marchand configuré, vous devrez obtenir les informations d'identification de l'API. Ces informations d'identification seront utilisées pour authentifier vos demandes auprès de l'API Razorpay.
Vous pouvez obtenir les informations d'identification comme celle-ci -
Accédez au tableau de bord de Razorpay et choisissez Passer en mode test similaire à l'image ci-dessous.
Accédez aux paramètres du compte -> Paramètres du site Web et de l'application -> Clés API -> générer les informations d'identification de l'API.
Vous pouvez également utiliser le like direct.
Avant d'avancer, nous avons besoin de l'environnement de développement. Nous aurons besoin de 2 environnements.
Un pour le backend et l'autre pour le frontend.
Ici, nous utiliserons python comme langage backend.
Pour le frontend, nous utiliserons du HTML simple (pas un langage spécialisé comme React ou Angular).
L'API Razorpay fournit plusieurs points de terminaison que vous pouvez utiliser pour initier des paiements, vérifier l'état des paiements et gérer d'autres aspects de votre intégration. Il est important de comprendre les différents points de terminaison et leurs paramètres respectifs pour garantir un processus d'intégration fluide.
Pour lancer un paiement à l'aide de l'API Razorpay, vous devrez effectuer une requête POST au point de terminaison /v1/orders. Ce point de terminaison nécessite divers paramètres tels que le montant du paiement, la devise, le reçu, les notes.
Vous pouvez voir les différents exemples d'API ici.
def create_order_id(amount:int): url = "https://api.razorpay.com/v1/orders" token = "" # token can be created by base64(api_key:api_secret) headers = { 'Content-Type': 'application/json', 'Authorization': 'Basic ' + token } data = { "amount": amount * 100, "currency": "INR", "receipt": "Receipt for amount "+str(amount), "notes": { "notes_key_1": "payment", } } response = requests.post(url, headers=headers, json=data) if response.status_code == 200: return response.json() else: return "Failed to create order_id"
Nous avons principalement 2 options pour intégrer la passerelle de paiement sur le frontend.
Vous devez préparer quelques éléments avant d'intégrer cette passerelle de paiement sur le frontend.
Pour générer CALLBACK_URL et CANCEL_URL, vous utilisez ce simple site Web pour tester le rappel.
https://webhook.site/
Vous pouvez suivre ce code simple pour intégrer la passerelle de paiement afin que la requête POST puisse être envoyée depuis le frontend.
Vous pouvez également suivre cet exemple.
<form method="POST" action="https://api.razorpay.com/v1/checkout/embedded"> <input type="hidden" name="key_id" value="YOUR_KEY_ID"/> <input type="hidden" name="amount" value=1001/> <input type="hidden" name="order_id" value="RAZORPAY_ORDER_ID"/> <input type="hidden" name="name" value="YOUR_ORG_NAME"/> <input type="hidden" name="description" value="ORG_DESC"/> <input type="hidden" name="ORG_LOGO"/> <input type="hidden" name="prefill[name]" value="CUSTOMER_NAME"/> <input type="hidden" name="prefill[contact]" value="CUSTOMER_MOBILE"/> <input type="hidden" name="prefill[email]" value="CUSTOMER_EMAIL"/> <input type="hidden" name="callback_url" value="CALLBACK_URL"/> <input type="hidden" name="cancel_url" value="CANCEL_URL"/> <button>Submit</button> </form>
Vous pouvez également utiliser la bibliothèque Razorpay js et effectuer l'intégration du paiement sur votre site Web plutôt que de passer à un autre site Web hébergé par Razorpay.
<button id="rzp-button1">Pay</button> <script src="https://checkout.razorpay.com/v1/checkout.js"></script> <script> var options = { "key": "YOUR_KEY_ID", // Enter the Key ID generated from the Dashboard "amount": "50000", // Amount is in currency subunits. Default currency is INR. Hence, 50000 refers to 50000 paise "currency": "INR", "name": "ORG_NAME", //your business name "description": "ORG_DESC", "image": "ORG_LOGO", "order_id": "RAZORPAY_ORDER_ID", //This is a sample Order ID. Pass the `id` obtained in the response of Step 1 "callback_url": "CALLBACK_URL", "prefill": { //We recommend using the prefill parameter to auto-fill customer's contact information especially their phone number "name": "CUSTOMER_NAME", //your customer's name "email": "CUSTOMER_EMAIL", "contact": "CUSTOMER_MOBILE" //Provide the customer's phone number for better conversion rates }, "notes": { "note 1": "Some notes " }, "theme": { "color": "#3399cc" } }; var rzp1 = new Razorpay(options); document.getElementById('rzp-button1').onclick = function(e){ rzp1.open(); e.preventDefault(); } </script>
Il existe d'autres intégrations sur différentes plates-formes comme Android, iOS, Flutter, etc. qui peuvent être utilisées. Vous pouvez consulter la documentation ici.
Après avoir lancé un paiement, Razorpya enverra un rappel à l'URL de rappel spécifiée ou annulera l'URL. Il est important de gérer correctement ce rappel pour garantir une expérience de paiement transparente. Le rappel contiendra généralement des informations sur l'état du paiement, l'ID de la transaction et d'autres détails pertinents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!