Maison > Article > développement back-end > Comment utiliser l'API Phonepe en Python et intégrer la passerelle Phonepe
PhonePe est une plateforme de paiement numérique populaire en Inde, offrant une gamme de solutions de paiement pour les particuliers et les entreprises. Si vous souhaitez intégrer les paiements PhonePe dans votre application ou votre site Web, ce guide vous guidera tout au long du processus d'utilisation de l'API PhonePe et d'intégration de la passerelle PhonePe.
Vous pouvez consulter le code complet ici.
Vous pouvez consulter la documentation de l'API Phonepe ici.
Pour commencer à utiliser l'API PhonePe, vous devrez créer un compte marchand sur le site Web PhonePe. Cela vous fournira les informations d'identification nécessaires et l'accès à la documentation de l'API.
Inscription des entreprises - https://www.phonepe.com/business-solutions/payment-gateway/
Avant de pouvoir commencer à intégrer l'API PhonePe, vous devrez configurer votre environnement de développement. Cela implique généralement l'installation de toutes les dépendances requises et la mise en place d'une structure de projet.
Ici, nous allons regarder l'exemple python. Mais vous pouvez utiliser n'importe quel autre langage car nous n'utilisons pas de SDK ici.
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 PhonePe.
Pour les tests, vous pouvez suivre les exemples -https://developer.phonepe.com/v1/docs/uat-testing/
Les exemples donnés ici concernent Merchant_id et salt_key pourraient maintenant fonctionner.
Alors, essayez ces informations d'identification pour les tests -
Merchant_id - PGTESTPAYUAT86
salt_index - 1
salt_key - 96434309-7796-489d-8924-ab56988a6076
L'API PhonePe 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 PhonePe, vous devrez effectuer une requête POST au point de terminaison /pg/v1/pay. Ce point de terminaison nécessite divers paramètres tels que le montant du paiement, l'ID du commerçant, l'ID de transaction du commerçant et l'URL de rappel.
Voici un exemple d'extrait de code en Python qui montre comment lancer un paiement à l'aide de l'API PhonePe :
import hashlib import requests import base64 import uuid import json import constants def create_sha256_string(input_string): sha256_hash = hashlib.sha256(input_string.encode()) encoded_string = sha256_hash.hexdigest() return encoded_string def string_to_base64(input_string): encoded_string = base64.b64encode(input_string.encode()) return encoded_string.decode() def phonepePaymentURL(amount: int): orderID = "pp-"+str(uuid.uuid4()) userID = "user-"+str(uuid.uuid4()) merchantTransactionID = "MT"+str(uuid.uuid4()) mobileNumber = "9999999998" # test mobile number email = "test@gmai.com" payload = { "amount": amount*100, "merchantId": constants.merchant_id, "merchantTransactionId": merchantTransactionID, "merchantUserId": userID, "redirectUrl": constants.webhook_url, "redirectMode": "POST", "callbackUrl": constants.webhook_url, "merchantOrderId": orderID, "mobileNumber": mobileNumber, "email": email, "message": "Payment for " + orderID, "paymentInstrument": { "type": "PAY_PAGE" } } json_data = json.dumps(payload) base64_request = string_to_base64(json_data) # X-VERIFY header -- SHA256(Base64 encoded payload + “/pg/v1/pay” + salt key) + ### + salt index finalXHeader = create_sha256_string(base64_request + "/pg/v1/pay" + constants.salt_key)+"###"+constants.salt_index req = { "request": base64_request } finalHeader = { "Content-Type": "application/json", "X-VERIFY": finalXHeader } response = requests.post(constants.payment_url, headers=finalHeader, json=req) if response.status_code == 200: return response.json() else: return "Something went wrong - " + response.text res = phonepePaymentURL(100) data = res.json() print(json.dumps(data)) print() paymentURL = data["data"]["instrumentResponse"]["redirectInfo"]["url"] transactionID = data["data"]["merchantTransactionId"] print("transaction_id - ",transactionID) print("payment_url - ",paymentURL) print()
Dans cet exemple, nous générons un identifiant de commande unique, un identifiant d'utilisateur et un identifiant de transaction marchand. Nous construisons ensuite une charge utile avec les paramètres nécessaires et la codons en base64.
Nous générons également un en-tête X-VERIFY à l'aide de la charge utile, du point de terminaison et de la clé salt. Enfin, nous envoyons une requête POST au point de terminaison de l'API PhonePe avec les en-têtes et la charge utile appropriés.
Ouvrez payment_url dans le navigateur et utilisez ces détails de carte de test pour les paiements - https://developer.phonepe.com/v1/docs/uat-testing/#Debit-Card
Après avoir lancé un paiement, PhonePe enverra un rappel à l'URL de rappel spécifiée. Il est important de gérer correctement ce rappel pour garantir une expérience de paiement fluide. Le rappel contiendra généralement des informations sur l'état du paiement, l'ID de la transaction et d'autres détails pertinents.
Pour tester le webhook, ce site Web peut être utilisé - https://webhook.site/
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!