>백엔드 개발 >파이썬 튜토리얼 >razorpay API를 사용하고 결제 게이트웨이를 통합하는 방법

razorpay API를 사용하고 결제 게이트웨이를 통합하는 방법

PHPz
PHPz원래의
2024-07-24 15:23:13874검색

소개

Razorpay는 기업과 개인을 위한 엔드투엔드 솔루션을 제공하는 인도 최고의 결제 처리업체입니다. Razorpay는 결제 게이트웨이 서비스부터 거래 처리 및 자금 정산에 이르기까지 포괄적인 결제 솔루션 제품군을 제공합니다.
이 기사에서는 그 중 일부에 대해 논의할 것입니다. 여기서는 Python 코드를 사용하지만 여기서는 SDK를 사용하지 않기 때문에 다른 언어로 쉽게 복제할 수 있습니다.
SDK 예제가 필요하시면 댓글로 알려주세요.

razorpay API의 예제 코드는 여기
API 문서는 여기에서 찾을 수 있습니다
테스트 카드 세부정보 - 여기

1단계: Razorpay 판매자 계정에 가입하세요

Razopay API 사용을 시작하려면 Razorpay 웹사이트에서 판매자 계정에 가입해야 합니다. 이를 통해 필요한 자격 증명과 API 문서에 대한 액세스 권한이 제공됩니다.
계정 등록 링크 - https://dashboard.razorpay.com/
API와 결제 흐름을 테스트하는 것이 우리의 목표이므로 여기에서 등록하고 테스트 모드에 도달하세요.

2단계: API 자격 증명 얻기

판매자 계정을 설정한 후에는 API 자격 증명을 얻어야 합니다. 이러한 자격 증명은 Razorpay API에 대한 요청을 인증하는 데 사용됩니다.

이렇게 자격 증명을 얻을 수 있습니다 -

  1. razorpay 대시보드로 이동하여 아래 이미지와 유사한 테스트 모드로 이동을 선택하세요.
    Razorpay test mode example

  2. 계정 설정으로 이동 -> 웹사이트 및 앱 설정 -> API 키 -> API 자격 증명을 생성합니다.
    직접 좋아요를 눌러도 됩니다.

3단계: 개발 환경 설정

진행하기 전에 개발 환경이 필요합니다. 2가지 환경이 필요합니다.
하나는 백엔드용이고 다른 하나는 프런트엔드용입니다.

여기서는 Python을 백엔드 언어로 사용하겠습니다.
프론트엔드에는 React나 Angular와 같은 특수 언어가 아닌 간단한 HTML을 사용할 것입니다.

4단계: Razorpay API 엔드포인트 이해

Razorpay API는 결제를 시작하고, 결제 상태를 확인하고, 통합의 다른 측면을 관리하는 데 사용할 수 있는 여러 엔드포인트를 제공합니다. 원활한 통합 프로세스를 보장하려면 다양한 엔드포인트와 해당 매개변수를 이해하는 것이 중요합니다.

  1. 여기서 집중적으로 주문을 생성하고 order_id를 가져오겠습니다.
  2. 프런트엔드의 Payment_gateway에서 해당 order_id를 사용합니다.
  3. Razorpay에는 postman에 대한 훌륭한 API 문서가 있습니다.

5단계: 결제 흐름 구현

Razorpay API를 사용하여 결제를 시작하려면 /v1/orders 엔드포인트에 POST 요청을 해야 합니다. 이 엔드포인트에는 결제 금액, 통화, 영수증, 메모 등 다양한 매개변수가 필요합니다.

여기에서 API의 다양한 예시를 보실 수 있습니다.

  • 이 예에서는 order_api만 찾고 order_id를 생성합니다.
  • 토큰은 base64(api_key:api_secret)로 생성할 수 있습니다.
def create_order_id(amount:int):
    url = "https://api.razorpay.com/v1/orders"
    token = ""  # token can be created by  base64(api_key:api_secret)
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Basic ' + token
    }

    data = {
        "amount": amount * 100,
        "currency": "INR",
        "receipt": "Receipt for amount "+str(amount),
        "notes": {
            "notes_key_1": "payment",
        }
    }

    response = requests.post(url, headers=headers, json=data)
    if response.status_code == 200:
        return response.json()
    else:
        return "Failed to create order_id"

6단계: 프런트엔드에 결제 게이트웨이 통합

프론트엔드에 payemnt-gateway를 통합하는 데는 주로 2가지 옵션이 있습니다.

프런트엔드에 결제 게이트웨이를 통합하기 전에 몇 가지 준비가 필요합니다.

  • RAZORPAY_ORDER_ID - API 키에서 생성된 order_id
  • YOUR_KEY_ID - 이전에 생성된 API key_id
  • CALLBACK_URL - 결제 성공 시 콜백 URL
  • CANCEL_URL - 결제 실패 시 콜백 URL
  • YOUR_ORG_NAME - 결제 게이트웨이에 표시될 조직 이름
  • ORG_DESC - 결제 게이트웨이에 표시되는 조직 설명
  • ORG_LOGO - 조직 로고 이미지 URL
  • CUSTOMER_NAME
  • CUSTOMER_MOBILE
  • CUSTOMER_EMAIL

CALLBACK_URL 및 CANCEL_URL을 생성하려면 이 간단한 웹사이트를 사용하여 콜백을 테스트하세요.
https://webhook.site/

1. Razorpay 호스팅 통합

이 간단한 코드를 따라 결제 게이트웨이를 통합하면 POST 요청이 프런트엔드에서 전송될 수 있습니다.

이 예를 따를 수도 있습니다.

<form method="POST" action="https://api.razorpay.com/v1/checkout/embedded">
  <input type="hidden" name="key_id" value="YOUR_KEY_ID"/>
  <input type="hidden" name="amount" value=1001/>
  <input type="hidden" name="order_id" value="RAZORPAY_ORDER_ID"/>
  <input type="hidden" name="name" value="YOUR_ORG_NAME"/>
  <input type="hidden" name="description" value="ORG_DESC"/>
  <input type="hidden" name="ORG_LOGO"/>
  <input type="hidden" name="prefill[name]" value="CUSTOMER_NAME"/>
  <input type="hidden" name="prefill[contact]" value="CUSTOMER_MOBILE"/>
  <input type="hidden" name="prefill[email]" value="CUSTOMER_EMAIL"/>
  <input type="hidden" name="callback_url" value="CALLBACK_URL"/>
  <input type="hidden" name="cancel_url" value="CANCEL_URL"/>
  <button>Submit</button>
</form>

2. 맞춤형 웹 통합

다른 razorpay 호스팅 웹사이트로 이동하는 대신 Razorpay js 라이브러리를 사용하여 웹사이트에서 결제 통합을 수행할 수도 있습니다.

<button id="rzp-button1">Pay</button>
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
<script>
var options = {
    "key": "YOUR_KEY_ID", // Enter the Key ID generated from the Dashboard
    "amount": "50000", // Amount is in currency subunits. Default currency is INR. Hence, 50000 refers to 50000 paise
    "currency": "INR",
    "name": "ORG_NAME", //your business name
    "description": "ORG_DESC",
    "image": "ORG_LOGO",
    "order_id": "RAZORPAY_ORDER_ID", //This is a sample Order ID. Pass the `id` obtained in the response of Step 1
    "callback_url": "CALLBACK_URL",
    "prefill": { //We recommend using the prefill parameter to auto-fill customer's contact information especially their phone number
        "name": "CUSTOMER_NAME", //your customer's name
        "email": "CUSTOMER_EMAIL",
        "contact": "CUSTOMER_MOBILE" //Provide the customer's phone number for better conversion rates 
    },
    "notes": {
        "note 1": "Some notes "
    },
    "theme": {
        "color": "#3399cc"
    }
};
var rzp1 = new Razorpay(options);
document.getElementById('rzp-button1').onclick = function(e){
    rzp1.open();
    e.preventDefault();
}
</script>

3. 기타 통합 -

Android, iOS, Flutter 등과 같은 다양한 플랫폼에서 사용할 수 있는 다른 통합이 있습니다. 여기에서 문서를 확인할 수 있습니다.

7단계: 결제 콜백 처리

결제가 시작된 후 Razorpya는 지정된 콜백 URL 또는 취소 URL로 콜백을 보냅니다. 원활한 결제 경험을 보장하려면 이 콜백을 적절하게 처리하는 것이 중요합니다. 콜백에는 일반적으로 결제 상태, 거래 ID 및 기타 관련 세부정보에 대한 정보가 포함됩니다.

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

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