Link user (1.0)

Introduction

PayPayユーザーのウォレットから決済を回収できるようにするには、ユーザーの認可を明示的に取得する必要があります。

ユーザー認可の取得は、OAuth/OpenID ConnectスタイルのWebView認可および認可フローと同様に、単純なWebリダイレクトフローを通じて行われます。

認可が成功すると、ユーザーごとにユーザー認可IDが発行されます。このIDをバックエンドに保存し、内部ユーザーにリンクする必要があります。このユーザー認可IDがクライアント側に保存されていないことを確認してください。このIDは、Payment、Cashback、およびTopupリクエストでユーザーIDとして使用されます。

加盟店を登録する

PayPay OPAの利用を開始するには、事前に定められたプロセスに従ってPayPay加盟店の登録を行なってください。 このプロセスは 情報収集、手動検証、契約確認、およびクレデンシャル情報の発行から構成されます。

PayPayの加盟店として登録された後、以下の項目が設定されます。

  • api key と apiKeySecret
  • webhookの通知先となるエンドポイント
  • クライアントIPのホワイトリスト

これらの設定を管理するには、マーチャントパネルを使用するか、弊社までご連絡ください。

ユーザーからのPayPayアプリ、PayPayWeb画面への日本国外からのアクセスは制限されています。詳細については個別にご相談ください。

ユーザー認可を取得する

ユーザーを認可ページに遷移させる

ユーザーの認可を取得するために、ホストアプリはユーザーにパラメーターapiKeyおよびrequestTokenを指定してPayPay認可ウェブページを表示する必要があります。 このページでは、ユーザーはPayPayにログインして、口座振替の許可を販売者に付与したり、PayPayアプリケーションでQRコードをスキャンして販売者にリンクできます。

認可ページURL:Production server

https://www.paypay.ne.jp/app/opa/user_authorization?apiKey={apiKey}&requestToken={jwtToken}'

認可ページURL:Sandbox server

https://stg-www.sandbox.paypay.ne.jp/app/opa/user_authorization?apiKey={apiKey}&requestToken={jwtToken}'

必須パラメーター

  • apiKeyは、登録プロセス中に発行されたapi keyです

  • requestToken は、対応するapi key secretで署名されたJWTトークンです

{
  "alg": "HS256",
}
.
{
  "aud" : "paypay.ne.jp",
  "iss" : "<merchant organization id>",
  "exp": 12456,
  "scope" : "direct_debit,get_balance",
  "nonce" : "<random case sensitive string>",
  "redirectUrl": "https://<merchant service auth redirect endpoint>",
  "referenceId": "<merchant user reference id>",
  "deviceId": ""
}
.
signature
cliam type description
aud string "paypay.ne.jp"
iss string 加盟店名
exp number 認可ページURLの有効期限。エポックタイムスタンプ(秒単位)で設定。
scope string direct_debit, cashback, get_balance, quick_pay, continuous_payments, merchant_topup, pending_payments, user_notification, user_topup, user_profile, preauth_capture_native, preauth_capture_transaction, push_notification, notification_center_ob, notification_center_ab, notification_center_tl, bank_registration
nonce string クライアント側での検証のため、レスポンスで返却されます。
redirectUrl url string クライアントから提供されたコールバックエンドポイント。HTTPSであること、またドメインは事前に許可されたコールバックドメイン内になければなりません。
referenceId string マーチャントシステムでユーザーを識別するためのID。再照合の目的でPayPayデータベースに格納されます。
deviceId string (オプション)ユーザーの携帯電話デバイスID。提供されている場合は、より快適なUXを提供するために、この携帯電話デバイスIDを使って、ユーザーの確認とSMSの確認を省略できます。

ユーザー認可の結果を受け取る

PayPyaの認可ページでのユーザーの操作に応じて、認可の取得は成功または失敗する可能性があります。 結果をJWTトークンにエンコードして、前述のrequestTokenに指定されているリダイレクトURLに渡します。 リダイレクトURLに渡す特定のパラメーターは以下のとおりです。

  • apiKey は、登録プロセス中に発行されたapi keyです。

  • responseTokenは、対応するapi keyとsecretで署名されたJWTトークンです。

  {
    "typ": "JWT",
    "alg": "HS256",
  }
  .
  {
    "aud" : "<merchant organization id>",
    "iss" : "paypay.ne.jp",
    "exp" : 23567,
    "result": "succeeded",
    "profileIdentifier": "*******5678",
    "nonce" : "<the same nonce in the request>",
    "userAuthorizationId" : "<PayPay user reference id>",
    "referenceId": "<merchant user reference id>"
  }
  .
  signature
claim type description
aud string 加盟店名
iss string "paypay.ne.jp"
exp number 認可ページURLの有効期限。エポックタイムスタンプ(秒単位)で設定。
result string succeeded, declined or bad_request
profileIdentifier string Masked phone number or email e.g. "*******5678", "abc*******@example.com"
nonce string レスポンスを検証するために必要な クライアント側のリクエスト内の同一のnonce。
userAuthorizationId string データベースに保持し、APIの呼び出しの際に使用するPayPayユーザー参照ID。最大長64文字。
referenceId string リクエスト内で同一の参照ID。

ユーザーが認可要求を承認または却下した後は、WebViewを以下のURLにリダイレクトします。

https://<redirect url>?apiKey={apiKey}&responseToken={jwtToken}