Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Phonepe-API in Python und integrieren das Phonepe-Gateway

So verwenden Sie die Phonepe-API in Python und integrieren das Phonepe-Gateway

WBOY
WBOYOriginal
2024-07-23 11:42:51678Durchsuche

How to use Phonepe api in Python and Integrate phonepe gateway

Einführung

PhonePe ist eine beliebte digitale Zahlungsplattform in Indien und bietet eine Reihe von Zahlungslösungen für Privatpersonen und Unternehmen. Wenn Sie PhonePe-Zahlungen in Ihre Anwendung oder Website integrieren möchten, führt Sie dieser Leitfaden durch den Prozess der Verwendung der PhonePe-API und der Integration des PhonePe-Gateways.
Den vollständigen Code können Sie hier einsehen.

Sie können die Phonepe-API-Dokumente hier ansehen.

Schritt 1: Registrieren Sie sich für ein PhonePe-Händlerkonto

Um die PhonePe-API nutzen zu können, müssen Sie sich auf der PhonePe-Website für ein Händlerkonto anmelden. Dadurch erhalten Sie die erforderlichen Anmeldeinformationen und Zugriff auf die API-Dokumentation.
Gewerbeanmeldung – https://www.phonepe.com/business-solutions/zahlungsgateway/

Schritt 2: Richten Sie Ihre Entwicklungsumgebung ein

Bevor Sie mit der Integration der PhonePe-API beginnen können, müssen Sie Ihre Entwicklungsumgebung einrichten. Dies umfasst in der Regel die Installation aller erforderlichen Abhängigkeiten und die Einrichtung einer Projektstruktur.
Hier schauen wir uns das Python-Beispiel an. Sie können jedoch jede andere Sprache verwenden, da wir hier kein SDK verwenden.

Schritt 3: Erhalten Sie API-Anmeldeinformationen

Sobald Sie Ihr Händlerkonto eingerichtet haben, müssen Sie die API-Anmeldeinformationen erhalten. Diese Anmeldeinformationen werden zur Authentifizierung Ihrer Anfragen an die PhonePe-API verwendet.

Zum Testen können Sie den Beispielen folgen – https://developer.phonepe.com/v1/docs/uat-testing/

Die hier angegebenen Beispiele beziehen sich auf Merchant_ID und Salt_key und könnten jetzt funktionieren.

Probieren Sie diese Anmeldeinformationen also zum Testen aus -
Merchant_id – PGTESTPAYUAT86
salt_index - 1
salt_key – 96434309-7796-489d-8924-ab56988a6076

Schritt 4: Verstehen Sie die PhonePe-API-Endpunkte

Die PhonePe-API bietet mehrere Endpunkte, mit denen Sie Zahlungen initiieren, den Zahlungsstatus überprüfen und andere Aspekte Ihrer Integration verwalten können. Es ist wichtig, die verschiedenen Endpunkte und ihre jeweiligen Parameter zu verstehen, um einen reibungslosen Integrationsprozess zu gewährleisten.

Schritt 5: Implementieren Sie den Zahlungsfluss

Um eine Zahlung über die PhonePe-API zu initiieren, müssen Sie eine POST-Anfrage an den /pg/v1/pay-Endpunkt stellen. Dieser Endpunkt erfordert verschiedene Parameter wie den Zahlungsbetrag, die Händler-ID, die Händlertransaktions-ID und die Rückruf-URL.

Hier ist ein Beispielcode-Snippet in Python, das zeigt, wie eine Zahlung mithilfe der PhonePe-API initiiert wird:

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


In diesem Beispiel generieren wir eine eindeutige Bestell-ID, Benutzer-ID und Händlertransaktions-ID. Anschließend erstellen wir eine Nutzlast mit den erforderlichen Parametern und kodieren sie in base64.
Wir generieren außerdem einen X-VERIFY-Header unter Verwendung der Nutzlast, des Endpunkts und des Salt-Schlüssels. Abschließend stellen wir eine POST-Anfrage an den PhonePe-API-Endpunkt mit den entsprechenden Headern und Nutzdaten.

Öffnen Sie die payment_url im Browser und verwenden Sie diese Testkartendetails für Zahlungen – https://developer.phonepe.com/v1/docs/uat-testing/#Debit-Card

Schritt 6: Zahlungsrückrufe bearbeiten

Nachdem eine Zahlung eingeleitet wurde, sendet PhonePe einen Rückruf an die angegebene Rückruf-URL. Es ist wichtig, diesen Rückruf ordnungsgemäß zu bearbeiten, um ein reibungsloses Zahlungserlebnis zu gewährleisten. Der Rückruf enthält normalerweise Informationen über den Zahlungsstatus, die Transaktions-ID und andere relevante Details.

Zum Testen von Webhook kann diese Website verwendet werden – https://webhook.site/

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Phonepe-API in Python und integrieren das Phonepe-Gateway. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn