ホームページ >バックエンド開発 >Python チュートリアル >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 Web サイトで販売アカウントにサインアップする必要があります。これにより、必要な認証情報が得られ、API ドキュメントにアクセスできるようになります。
アカウント登録リンク - https://dashboard.razorpay.com/
ここで登録してテストモードまで進みます。ここでの目標は API と支払いフローをテストすることです。

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

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

次のように認証情報を取得できます -

  1. razorpay ダッシュボードに移動し、以下の画像のような [テスト モードに移動] を選択します。
    Razorpay test mode example

  2. アカウント設定に移動 ->ウェブサイトとアプリの設定 -> API キー -> API 認証情報を生成します。
    直接いいねもできます。

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

先に進む前に、開発環境が必要です。 2 つの環境が必要です。
1 つはバックエンド用、もう 1 つはフロントエンド用です。

ここでは、バックエンド言語として 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 を生成するには、この簡単な Web サイトを使用してコールバックをテストします。
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. カスタム Web 統合

Razorpay js ライブラリを使用して、razorpay がホストする他の Web サイトに移動するのではなく、Web サイト上で支払い統合を行うこともできます。

<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 中国語 Web サイトの他の関連記事を参照してください。

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