ホームページ  >  記事  >  バックエンド開発  >  Python で Phonepe API を使用し、phonepe ゲートウェイを統合する方法

Python で Phonepe API を使用し、phonepe ゲートウェイを統合する方法

WBOY
WBOYオリジナル
2024-07-23 11:42:51640ブラウズ

How to use Phonepe api in Python and Integrate phonepe gateway

導入

PhonePe はインドで人気のあるデジタル決済プラットフォームで、個人と企業の両方に幅広い決済ソリューションを提供しています。 PhonePe 支払いをアプリケーションまたは Web サイトに統合することを検討している場合、このガイドでは、PhonePe API の使用と PhonePe ゲートウェイの統合のプロセスについて説明します。
完全なコードはここで確認できます。

ここでphonepe API ドキュメントを表示できます。

ステップ 1: PhonePe マーチャント アカウントにサインアップする

PhonePe API の使用を開始するには、PhonePe Web サイトで販売アカウントにサインアップする必要があります。これにより、必要な認証情報が得られ、API ドキュメントにアクセスできるようになります。
ビジネス登録 - https://www.phonepe.com/business-solutions/payment-gateway/

ステップ 2: 開発環境をセットアップする

PhonePe API の統合を開始する前に、開発環境をセットアップする必要があります。これには通常、必要な依存関係のインストールとプロジェクト構造のセットアップが含まれます。
ここでは Python の例を見ていきます。ただし、ここでは SDK を使用していないため、他の言語を使用することもできます。

ステップ 3: API 認証情報を取得する

販売アカウントを設定したら、API 認証情報を取得する必要があります。これらの認証情報は、PhonePe API へのリクエストを認証するために使用されます。

テストについては、https://developer.phonepe.com/v1/docs/uat-testing/

の例に従うことができます。

ここで示した例は、merchant_id と Salt_key のものであり、現在は機能する可能性があります。

それでは、テストのためにこれらの資格情報を試してください -
マーチャントID - PGTESTPAYUAT86
Salt_index - 1
塩キー - 96434309-7796-489d-8924-ab56988a6076

ステップ 4: PhonePe API エンドポイントを理解する

PhonePe API は、支払いの開始、支払いステータスの確認、統合のその他の側面の管理に使用できるいくつかのエンドポイントを提供します。スムーズな統合プロセスを確保するには、さまざまなエンドポイントとそれぞれのパラメーターを理解することが重要です。

ステップ 5: 支払いフローの実装

PhonePe API を使用して支払いを開始するには、/pg/v1/pay エンドポイントに対して POST リクエストを行う必要があります。このエンドポイントには、支払い金額、販売者 ID、販売者トランザクション ID、コールバック URL などのさまざまなパラメータが必要です。

これは、PhonePe API を使用して支払いを開始する方法を示す Python のコード スニペットの例です。

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


この例では、一意の注文 ID、ユーザー ID、および販売者トランザクション ID を生成します。次に、必要なパラメータを含むペイロードを構築し、base64 でエンコードします。
また、ペイロード、エンドポイント、ソルト キーを使用して X-VERIFY ヘッダーも生成します。最後に、適切なヘッダーとペイロードを使用して PhonePe API エンドポイントに POST リクエストを作成します。

ブラウザでpayment_urlを開き、支払いにこれらのテストカードの詳細を使用します - https://developer.phonepe.com/v1/docs/uat-testing/#Debit-Card

ステップ 6: 支払いコールバックを処理する

支払いを開始すると、PhonePe は指定されたコールバック URL にコールバックを送信します。シームレスな支払いエクスペリエンスを確保するには、このコールバックを適切に処理することが重要です。通常、コールバックには、支払いステータス、トランザクション ID、その他の関連詳細に関する情報が含まれます。

Webhook をテストするには、この Web サイトを使用できます - https://webhook.site/

以上がPython で Phonepe API を使用し、phonepe ゲートウェイを統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。