カード情報のトークン化

このページでは、クライアントに入力フォームを組み込み、カード情報のトークン化を行う方法について説明します。PAY.JP では、トークン化を行うフォームライブラリとして、以下のライブラリを提供しています。 それぞれの主な特徴は次のとおりです。

  • チェックアウト
    • デザイン済みの Web 決済フォーム
    • カード情報のバリデーション機能
    • <script> タグ一行で実装可能
  • payjp.js
    • Web 向け
    • カード情報のトークン化のみに特化
    • デザインや挙動をカスタマイズ可能
  • iOS SDK
    • iOS 向け
    • カード情報のトークン化
    • Apple Pay をつかった支払い
  • Android SDK
    • Android 向け
    • カード情報のトークン化

自分のサービスに合わせて最適なライブラリを選んでください。

以下では、チェックアウトと payjp.js について詳しく説明します。他のライブラリについては、それぞれのドキュメントをご覧ください。

基本的な流れ

カード情報をトークン化する処理は、次のステップで行われます。

  1. チェックアウトや payjp.js で生成されたフォームにカード情報を入力し送信
  2. 入力されたカード情報は直接 PAY.JP サーバーへ送られ、PAY.JP は一意のトークンを返す
  3. サーバーサイドでトークンを受け取り、トークンを使った各種処理を行う(支払い処理、顧客へカードを紐付けるなど)

認証は、pk_ から始まる公開鍵を <script> タグ内にセットして行います。sk_ から始まる秘密鍵は、サーバーサイドで使用するためのものなので、公開しないよう取り扱いに注意してください。

チェックアウト

チェックアウトでは、<script> タグを1行記述するだけで、デザインされた決済フォーム、カード情報のバリデーション、カード情報のトークン化を行うフォームを生成できます。

チェックアウトを試してみたい方は、下記の「カード情報を入力する」をクリックし、次の情報を入力して「トークンを作成する」を押してください。

  • カード番号: 4242424242424242
  • 有効期限: 12/30
  • CVC: 123
  • カード名義: PAY TARO
作成されたトークン:

チェックアウトは、HTML で下記のようなコードを書くだけでフォームが生成されます。

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

data-key には、各ユーザーの公開鍵を入力します。この例では、/paypayjp-token パラメーターの値としてトークンを送信しています。 サーバーサイドでは、PAY.JP で作成されたトークンを受け取り、支払い処理や顧客にカード情報を紐付けるなど、必要な処理を行います。

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

トークンを使ってカードを所有する顧客を作成したり、用途に合わせてさまざまな使い方ができます。

$ curl "https://api.pay.jp/v1/customers" \
  -u "sk_test_c62fade9d045b54cd76d7036": \
  -d "card=作成したトークン"

Checkoutリファレンスを見る

カスタムフォーム

チェックアウトのようにデザインされたフォームが必要ない場合は、payjp.js を使うことで、好きなデザインや挙動でトークン化を行うフォームを組み込むことができます。

詳しくはpayjp.js ガイドをご覧ください。

これでトークンを作成するカスタムフォームができました。 取得したトークンを使って、支払い処理などを行いましょう。