Comment utiliser l'API Phonepe en Python et intégrer la passerelle Phonepe

WBOY
Libérer: 2024-07-23 11:42:51
original
476 人浏览过

How to use Phonepe api in Python and Integrate phonepe gateway

Introduction

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 vérifier le code complet ici.

Vous pouvez consulter la documentation de l'API Phonepe ici.

Étape 1 : Inscrivez-vous à un compte marchand PhonePe

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/

Étape 2 : Configurez votre environnement de développement

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.

Étape 3 : 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 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 tester -
Merchant_id - PGTESTPAYUAT86
salt_index - 1
salt_key - 96434309-7796-489d-8924-ab56988a6076

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

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.

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

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


Copier après la connexion

Dans cet exemple, nous générons un identifiant de commande, un identifiant d'utilisateur et un identifiant de transaction marchand uniques. 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 effectuons une requête POST au point de terminaison de l'API PhonePe avec les en-têtes et la charge utile appropriés.

Ouvrez l'url de paiement 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

Étape 6 : Gérer les rappels de paiement

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

Pour tester le webhook, ce site Web peut être utilisé - https://webhook.site/

以上是Comment utiliser l'API Phonepe en Python et intégrer la passerelle Phonepe的详细内容。更多信息请关注PHP中文网其他相关文章!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!