PAY ID決済

PAY ID決済とは、PAY ID(PAY.JP アカウント)をもっている人であれば、メールアドレスとパスワードだけで支払いができるようになる決済機能のことです。 すでに BASE などの事業者で運用されており、数万の購入者に利用されています。

PAY ID決済の組み込みは、通常のAPIによるクレジットカード決済と同様の方法で行うことができます。 組み込みが簡単なチェックアウトを利用する方法と、より自由度の高い設計が可能になるOAuth APIを利用する方法の2種類があります。 どちらの方法についても、最初にOAuth Clientを作成する必要があります。

OAuth Clientの作成

PAY ID決済ではOAuthによる認証を利用するため、事業者様のアカウントでOAuth Clientを作成する必要があります。 PAY.JPにログインして OAuth設定画面 から作成してください。 作成の際に、ユーザの認証完了後に遷移するリダイレクトURLを入力してください。 チェックアウトを使ったPAY ID決済のみを利用予定の場合は、リダイレクトを受ける必要がないため、http://localhost/ と入力してください。 OAuth APIを利用する場合は、テスト用と本番サービス用のClientを別に作成する必要があります。作成時にTest Mode Clientのチェックを入れることでテスト用Clientを作成できます。

作成されたOAuth Clientの「詳細」から下記の情報を確認することができます。

  • Redirect URI: ユーザの認証完了後に遷移するリダイレクト先
  • Client ID: OAuthクライアントの識別ID、チェックアウトでdata-payjpに指定します
  • Client Secret: OAuthクライアントの正当性確認用の秘密値
  • Test Mode Client: テストモードかどうか

チェックアウトを使ってPAY ID決済を組み込む

チェックアウトとは、 <script> タグを1行記述するだけで、 デザインされた決済フォームを生成することができるライブラリです。

まず、購入者がPAY.JPアカウントの情報を入力する決済画面をチェックアウトで組み込みます。 チェックアウトでは、PAY.JPアカウント情報に紐付いたクレジットカード情報をトークン化し、サーバーサイドへトークン情報を引き渡します。 最後に、サーバーサイドで引き渡されたトークンを使って、PAY.JP API経由で支払いリクエストを行い、支払い完了です。

下記のように決済フォームにチェックアウトのタグを追加し、data-payjp="XXXXXXXXXXXXXXXXX" の部分に先ほど作成したOAuth Client IDを指定することで、 PAY ID決済を利用するためのフォームが設置されます。

<form action="/pay" method="post">
  <script
    src="https://checkout.pay.jp/"
    data-key="pk_test_0383a1b8f91e8a6e3ea0e2a9"
    data-payjp="827cde0e3dd648d6d83c08b091b2b10c3c266e36">
  </script>
</form>

顧客がチェックアウトに入力したカードの情報はトークン化され、<input type="hidden" name="payjp-token">としてフォームに入力されます。 このトークンは、通常のチェックアウトやPAY.JP APIで生成するトークンと同様に扱うことができ、PAY.JP APIでの支払い処理、顧客情報への紐付けなどに利用できます。

フォームから受け取ったトークンを使って、サーバーサイドでAPIを呼び出すことで支払い処理が完了します。 チェックアウトで生成されたトークンを使って、サーバーサイドで下記のような支払いリクエストを実行します。

$ curl https://api.pay.jp/v1/charges \
  -u sk_test_c62fade9d045b54cd76d7036 \
  -d "amount=500" \
  -d "currency=jpy" \
  -d "card=生成されたトークン"

実際の顧客の利用フロー

PAY ID決済対応のフォームを設置していただくことで、PAY IDをもっている顧客はフォーム上部の「PAY ID」タブから、メールアドレスとパスワードでPAY IDにログインし、登録済みのカードを選択して支払いを行うことができます。 アカウントをまだ持っていない顧客についても、カード情報の入力後フォーム下部の「PAY IDを登録する」にチェックを入れ、メールアドレスとパスワードを設定することで、 PAY IDの発行とカードの登録が自動的に行われ、次回以降の購入時に再度カードの情報を入力することなく支払いを行うことができます。

決済フローをお試しいただく方法については、 PAY ID決済 - テスト をご覧ください。 また、チェックアウトのより詳細なオプションなどについては リファレンス - チェックアウト をご覧ください。

OAuth APIを使ってPAY ID決済を組み込む

PAY.JPのOAuth APIは RFC6749のAuthorization Code Grantに沿ってご利用いただけます。

OAuth APIを使ってPAY ID決済をご利用いただくには、事業者様側で下記の実装が必要となります。

  • PAY.JPのAuthorization Endpointへリダイレクトさせる
  • PAY.JPからのリダイレクトを受けてAuthorization Codeを取得する
  • Authorization Codeを用いてaccess_tokenを取得する
  • OAuth APIを利用してカードのトークンを取得する
  • カードのトークンを使って、通常のAPIを呼び出す

PAY.JP OAuth APIのより詳しい情報については、 OAuth API をご覧ください。