Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan api Phonepe dalam Python dan Integrasikan gateway phonepe

Cara menggunakan api Phonepe dalam Python dan Integrasikan gateway phonepe

WBOY
WBOYasal
2024-07-23 11:42:51644semak imbas

How to use Phonepe api in Python and Integrate phonepe gateway

pengenalan

PhonePe ialah platform pembayaran digital yang popular di India, menawarkan pelbagai penyelesaian pembayaran untuk individu dan perniagaan. Jika anda ingin menyepadukan pembayaran PhonePe ke dalam aplikasi atau tapak web anda, panduan ini akan membimbing anda melalui proses menggunakan API PhonePe dan menyepadukan get laluan PhonePe.
Anda boleh menyemak kod lengkap di sini.

Anda boleh melihat dokumen api phonepe di sini.

Langkah 1: Daftar untuk Akaun Pedagang PhonePe

Untuk mula menggunakan API PhonePe, anda perlu mendaftar untuk akaun pedagang di tapak web PhonePe. Ini akan memberikan anda bukti kelayakan yang diperlukan dan akses kepada dokumentasi API.
Pendaftaran Perniagaan - https://www.phonepe.com/business-solutions/payment-gateway/

Langkah 2: Sediakan Persekitaran Pembangunan Anda

Sebelum anda boleh mula menyepadukan API PhonePe, anda perlu menyediakan persekitaran pembangunan anda. Ini biasanya melibatkan pemasangan sebarang kebergantungan yang diperlukan dan menyediakan struktur projek.
Di sini kita akan melihat contoh python Tetapi anda boleh menggunakan bahasa lain kerana kami tidak menggunakan SDK di sini.

Langkah 3: Dapatkan Bukti Kelayakan API

Setelah anda menyediakan akaun pedagang anda, anda perlu mendapatkan bukti kelayakan API. Bukti kelayakan ini akan digunakan untuk mengesahkan permintaan anda kepada API PhonePe.

Untuk ujian, anda boleh mengikuti contoh -https://developer.phonepe.com/v1/docs/uat-testing/

Contoh yang diberikan di sini adalah untuk merchant_id dan salt_key kini mungkin berfungsi.

Jadi, cuba kelayakan ini untuk ujian -
merchant_id - PGTESTPAYUAT86
indeks_garam - 1
salt_key - 96434309-7796-489d-8924-ab56988a6076

Langkah 4: Fahami Titik Akhir API PhonePe

API PhonePe menyediakan beberapa titik akhir yang boleh anda gunakan untuk memulakan pembayaran, menyemak status pembayaran dan mengurus aspek penyepaduan anda yang lain. Adalah penting untuk memahami titik akhir yang berbeza dan parameter masing-masing untuk memastikan proses penyepaduan yang lancar.

Langkah 5: Laksanakan Aliran Pembayaran

Untuk memulakan pembayaran menggunakan API PhonePe, anda perlu membuat permintaan POST ke titik akhir /pg/v1/pay. Titik akhir ini memerlukan pelbagai parameter seperti jumlah pembayaran, ID pedagang, ID transaksi pedagang dan URL panggil balik.

Berikut ialah coretan kod contoh dalam Python yang menunjukkan cara untuk memulakan pembayaran menggunakan 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()


Dalam contoh ini, kami menjana ID pesanan unik, ID pengguna dan ID transaksi pedagang. Kami kemudian membina muatan dengan parameter yang diperlukan dan mengekodnya dalam base64.
Kami juga menjana pengepala X-VERIFY menggunakan muatan, titik akhir dan kunci garam. Akhir sekali, kami membuat permintaan POST ke titik akhir API PhonePe dengan pengepala dan muatan yang sesuai.

Buka payment_url dalam penyemak imbas dan gunakan butiran kad ujian ini untuk pembayaran - https://developer.phonepe.com/v1/docs/uat-testing/#Debit-Card

Langkah 6: Mengendalikan Panggilan Balik Pembayaran

Selepas memulakan pembayaran, PhonePe akan menghantar panggilan balik ke URL panggil balik yang ditentukan. Adalah penting untuk mengendalikan panggilan balik ini dengan betul untuk memastikan pengalaman pembayaran yang lancar. Panggilan balik biasanya akan mengandungi maklumat tentang status pembayaran, ID transaksi dan butiran lain yang berkaitan.

Untuk menguji webhook, laman web ini boleh digunakan - https://webhook.site/

Atas ialah kandungan terperinci Cara menggunakan api Phonepe dalam Python dan Integrasikan gateway phonepe. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn