NAV
JavaScript HTML

PayRoad API 利用ガイド

ここでは、PayRoadを利用してどのように支払いシステムを組み込むか、さまざまなチュートリアルを用意しています。 はじめに、PayRoadの重要な機能であるAPIアクセス認証のトークン化、支払い処理について簡単に紹介します。具体的な詳細は各ページに記載してあるのでご覧ください。

alt iamPort

ここでは、PayRoadを利用してどのように支払いシステムを組み込むか、さまざまなチュートリアルを用意しています。 はじめに、PayRoadの重要な機能であるAPIアクセス認証のトークン化、支払い処理について簡単に紹介します。具体的な詳細は各ページに記載してあるのでご覧ください。

認証処理方法

認証

To authorize, use this code:

const token = require('merchant_api_key');

let api = token.authorize('token');

merchant_api_keyは管理ツールにて確認可能な認証キーになります。

PayRoadのAPIを利用するには、ユーザー登録を行い、APIページからAPIキーを取得してください。 テスト用のキーでは、本番の支払い処理を行うサーバーへは接続されず、実際の支払い情報として計上されることもありません。 本番用のキーは、本番申請を行うことで利用できるようになります。

種類 用途
merchant api key HTML内に埋め込むトークン生成用のパブリックキー

通常の認証は、シークレットキーをユーザーネームとして扱い、Basic認証経由で行われます。 パブリックキーは、あなたの決済画面のHTML内に組み込む公開用のAPIキーで、クレジットカードのトークンを生成する際に使用します。 シークレットキーは、全てのAPIリクエスト操作が可能となる重要なキーなので、くれぐれ も取扱いにご注意ください。

プロトコル

セキュリティのため、PAY.JPに対する全てのAPI通信は必ずHTTPSで行うようにしてください。

リクエスト

PayRoad APIへのリクエストでは、GET、POSTの2種類のHTTPメソッドを利用できます。

引数は、GETの場合はクエリーパラメータで、POSTではContent-Type: application/x-www-form-urlencodedのボディで送信ください。

レスポンス

APIからのレスポンスデータは正常・異常とも全てUTF-8のJSON形式(Content-Type: application/json; charset=utf-8)で返されます。

タイムスタンプ

日次に関するデータはUNIXタイムスタンプで表示されます。 ただし一部のパラメータはDate型(e.g. 入金予定日 transfer.scheduled_date が 2021-07-07 など)で表示されます。

支払い処理

STEP1. ライブラリー追加

//対応しておりません。
<!-- jQuery -->
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js" ></script>
<!-- payroad.payment.js -->
<script type="text/javascript" src="https://cdn.payroad.com/js/payroad.payment-1.0.0.js"></script>

ウェブサイトの決済ページのHTML中に<script>.....</script>を組み込めます。PayRoadのライブラリーはjQueryで実行されるためjQeury1.0以上が必ず必要になります。

STEP2. 加盟店識別の設定

var payRoad = window.PAYROAD;
payRoad.init("merchant_Id");
//対応しておりません。

PAYROADオブジェクトにinit(加盟店識別ID)を設定します。

merchant_Idは管理ツールにて確認可能な認証キーになります。

STEP3. 決済画面呼び出すコードの設定

checkoutButton.addEventListener("click", function () {
        payroad.request({
          "pgCode" : "sbps",
          "paymentMethod" : "credit",
          "transactionId" : "PR1234567890",
          "serviceId" : "merchantId",
          "merchantOrderId" : "merchant_order_id",
          "totalAmount" : "1000",
          "totoalTax" : "0",
          "productInfo" : {
            "items" : [
              {
                "name" : "itemName1",
                "id" : "itemId1",
                "qty" : "1",
                "amount" : "300",
                "tax" : "0"
              }
            ]
          },
          "paymentInfo" : {
            "custCode" : "uniqueUserId"
          }
          //......以下省略
  }).completed(function (result) {
    //決済成功時に呼び出し
  }).incompleted(function (result) {
    //決済未完了時に呼び出し
    //ユーザから決済止め
    //決済画面閉じる
  }).failed(function (result) {
    //決済失敗時に呼び出し
  });

このサンプルコードはSBPSのクレジットカード決済要求時に指定するパラメータになります。

<button onclick="requestPay()">支払い</button>

<script>
  checkoutButton.addEventListener("click", function () {
    payroad.request({
      "pgCode" : "sbps",
      "paymentMethod" : "credit",
      "transactionId" : "PR1234567890",
      "serviceId" : "merchantId",
      "merchantOrderId" : "merchant_order_id",
      "totalAmount" : "1000",
      "totoalTax" : "0",
      "productInfo" : {
        "items" : [
          {
            "name" : "itemName1",
            "id" : "itemId1",
            "qty" : "1",
            "amount" : "300",
            "tax" : "0"
          }
        ]
      },
      "paymentInfo" : {
        "custCode" : "uniqueUserId"
      }
      //......以下省略
    }).completed(function (result) {
      //決済成功時に呼び出し
    }).incompleted(function (result) {
      //決済未完了時に呼び出し
      //ユーザから決済止め
      //決済画面閉じる
    }).failed(function (result) {
      //決済失敗時に呼び出し
    });
</script>

payroad.request({....})中に決済に必要なパラメータを指定して実行すれば、決済画面が呼び出されます。 もっと詳しいパラメータ情報は「パラメータ詳細」から確認出来ます。

処理完了後にはresult結果値を見て成功、失敗、エラーなどの判別が出来ます。各function中に加盟店様が様々な処理を実装して作成してください。

STEP4. 取引検証処理

app.use(bodyParser.json());
  app.post("/payments/complete", async (req, res) => {
    try {
      const { transactionId, merchantOrderId } = req.body;
    } catch (e) {
      res.status(400).send(e);
    }
  });

上記のコードは/payment/completeにPOST要求するサンプルコードになります。req.bodyからPayRoadと加盟店様の取引IDを取得しました。

取得した取引IDを指定して決済詳細情報APIから決済情報を取得してください。

STEP.5 決済連動完了

加盟店様のウェブサイド決済連動テストが実装可能になりました。 管理ツールにて設定情報をもう一度確認した上、決済テストを行ってください。

処理結果コード一覧

Result Code 詳細
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The kitten requested is hidden for administrators only.
404 Not Found -- The specified kitten could not be found.
405 Method Not Allowed -- You tried to access a kitten with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The kitten requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many kittens! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.