首頁  >  文章  >  後端開發  >  如何在Python中使用Phonepe api並整合phonepe網關

如何在Python中使用Phonepe api並整合phonepe網關

WBOY
WBOY原創
2024-07-23 11:42:51644瀏覽

How to use Phonepe api in Python and Integrate phonepe gateway

介紹

PhonePe 是印度流行的數位支付平台,為個人和企業提供一系列支付解決方案。如果您希望將 PhonePe 付款整合到您的應用程式或網站中,本指南將引導您完成使用 PhonePe API 和整合 PhonePe 閘道的流程。
您可以在這裡查看完整的程式碼。

您可以在此處查看phonepe api 文件。

第 1 步:註冊 PhonePe 商家帳戶

要開始使用 PhonePe API,您需要在 PhonePe 網站上註冊商家帳戶。這將為您提供必要的憑證以及對 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
salt_key - 96434309-7796-489d-8924-ab56988a6076

第 4 步:了解 PhonePe API 端點

PhonePe API 提供了多個端點,您可以使用它們來啟動付款、檢查付款狀態以及管理整合的其他方面。了解不同的端點及其各自的參數對於確保整合過程順利進行非常重要。

第 5 步:實施支付流程

要使用 PhonePe API 發起付款,您需要向 /pg/v1/pay 端點發出 POST 請求。此介面需支付金額、商家ID、商家交易ID、回呼URL等各種參數。

以下是 Python 中的範例程式碼片段,示範如何使用 PhonePe API 發起付款:

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,可以使用此網站 - https://webhook.site/

以上是如何在Python中使用Phonepe api並整合phonepe網關的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn