Maison >développement back-end >Tutoriel Python >Comment utiliser l'API Razorpay et intégrer la passerelle de paiement

Comment utiliser l'API Razorpay et intégrer la passerelle de paiement

PHPz
PHPzoriginal
2024-07-24 15:23:13874parcourir

Introduction

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

Étape 1 : Créez un compte marchand Razorpay

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.

Étape 2 : Obtenir les informations d'identification de l'API

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 -

  1. Accédez au tableau de bord de Razorpay et choisissez Passer en mode test similaire à l'image ci-dessous.
    Razorpay test mode example

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

Étape 3 : Configurez votre environnement de développement

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

Étape 4 : Comprendre les points de terminaison de l'API Razorpay

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.

  1. Nous allons nous concentrer ici sur la création d'une commande et l'obtention du order_id.
  2. Nous utiliserons cet order_id dans payment_gateway sur le frontend.
  3. Razorpay a une bonne documentation API sur Postman.

Étape 5 : Mettre en œuvre le flux de paiement

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.

  • Dans cet exemple, nous recherchons uniquement order_api et générons le order_id.
  • Le jeton peut être généré par base64(api_key:api_secret).
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"

Étape 6 : Intégration de la passerelle de paiement sur le frontend

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.

  • RAZORPAY_ORDER_ID - order_id généré à partir de la clé API
  • YOUR_KEY_ID - Votre key_id API qui a été généré précédemment
  • CALLBACK_URL - URL de rappel si le paiement a réussi
  • CANCEL_URL - URL de rappel en cas d'échec du paiement
  • YOUR_ORG_NAME - Nom de l'organisation à afficher sur la passerelle de paiement
  • ORG_DESC - Description de l'organisation à afficher sur la passerelle de paiement
  • ORG_LOGO - URL de l'image du logo de l'organisation
  • NOM_CLIENT
  • CLIENT_MOBILE
  • CUSTOMER_EMAIL

Pour générer CALLBACK_URL et CANCEL_URL, vous utilisez ce simple site Web pour tester le rappel.
https://webhook.site/

1. Intégration hébergée Razorpay

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>

2. Intégration Web personnalisée

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>

3. Autres intégrations -

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.

Étape 7 : Gérer les rappels de paiement

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn