>  기사  >  백엔드 개발  >  Python에서 Phonepe API를 사용하고 Phonepe 게이트웨이를 통합하는 방법

Python에서 Phonepe API를 사용하고 Phonepe 게이트웨이를 통합하는 방법

WBOY
WBOY원래의
2024-07-23 11:42:51679검색

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/pay-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 등 다양한 매개변수가 필요합니다.

다음은 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 및 기타 관련 세부정보에 대한 정보가 포함됩니다.

웹훅을 테스트하려면 이 웹사이트(https://webhook.site/)를 사용할 수 있습니다.

위 내용은 Python에서 Phonepe API를 사용하고 Phonepe 게이트웨이를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.