PAY.JP Platform チェックアウト・モバイルSDK(Marketplace)

Marketplace型では、テナントによって審査通過済ブランドが異なる場合があります。

チェックアウトやモバイルSDKで顧客のカード情報をトークン化する際、テナントIDを指定することで、そのテナントの審査通過済ブランドのみ利用可能にすることができます。

テナントIDを指定しない場合、トークン化と決済時で異なる主体による取引と判定されるため、カード会社より不正利用懸念などの理由によって、トークン作成(クレジットカード認証)やその後の決済処理に失敗しやすくなる可能性がございます
βバージョンの当初ではテナントIDはトークン作成時の任意パラメーターとしておりましたが、テナントIDは、トークン作成の際に都度指定いただくことを強く推奨いたします(テナントID未指定のリクエストは当面非推奨といたします)

テナントIDはテナント作成時に指定可能な任意の値です(未指定時はten_で始まる値が発行されます)。

チェックアウト

パラメーター data-tenant を指定します。

パラメーター

パラメータ名 説明 デフォルト
data-tenant テナントID なし

HTML内に下記のコードを埋め込むとフォームが生成されます:

<script
  type="text/javascript"
  src="https://checkout.pay.jp/"
  class="payjp-button"
  data-key="pk_test_0383a1b8f91e8a6e3ea0e2a9"
  data-tenant="ten_121673955bd7aa144de5a8f6c262"
  data-on-created="onCreated"
  data-text="支払う"
  data-submit-text="支払う"
  data-partial="true">
</script>

なおdata-tenantは公開鍵と同じくエンドユーザー側に公開される情報なため、当該パラメーターに入れる値にはご注意ください。

iOS SDK

カードフォームを利用の場合

CardFormViewController#createCardFormViewController の引数に tenantId を指定します。

let cardFormVc = CardFormViewController.createCardFormViewController(tenantId: "ten_121673955bd7aa144de5a8f6c262",
																	 delegate: self)
self.navigationController?.pushViewController(cardFormVc, animated: true)

CardFormTableStyledView を利用している場合は、各メソッドの引数に tenantId を指定します。

cardFormView.createToken(tenantId: "ten_121673955bd7aa144de5a8f6c262") { result in
    switch result {
    case .success(let token):
        print("[token] => \(token)")
    case .failure(let error):
        print("[failure creating token] \(error)")
    }

直接トークンを生成する場合

トークンを生成する際に tenantId パラメータを追加します。

payjpClient.createToken(
    with: number,
    cvc: cvc,
    expirationMonth: month,
    expirationYear: year,
    name: name,
    tenantId: "ten_121673955bd7aa144de5a8f6c262") { result in
    switch result {
    case .success(let token):
        print("[token] => \(token)")
    case .failure(let error):
        print("[failure creating token] \(error)")
    }
} 

Android SDK

カードフォームを利用の場合

Payjp.cardForm().start() の引数に tenantId を指定します。

Payjp.cardForm().start(
    activity = this@SampleActivity,
    tenantId = TenantId("ten_121673955bd7aa144de5a8f6c262")
)

Fragmentを利用している場合は、 Payjp.cardForm().newCardFormFragment() の引数に tenantId を指定します。

Payjp.cardForm().newCardFormFragment(
    tenantId = TenantId("ten_121673955bd7aa144de5a8f6c262")
)

直接トークンを生成する場合

トークンを生成する際に tenantId パラメータを追加します。

Payjp.getInstance().createToken(
    number = number, 
    cvc = cvc, 
    expMonth = expMonth, 
    expYear = expYear, 
    name = name,
    tenantId = TenantId("ten_121673955bd7aa144de5a8f6c262")
)

Flutter プラグイン

Payjp.startCardForm() の引数に tenantId を指定します。

Payjp.startCardForm(tenantId: "ten_121673955bd7aa144de5a8f6c262");

React Native プラグイン

PayjpCardForm.startCardForm() の引数に tenantId を指定します。

PayjpCardForm.startCardForm({ tenantId : "ten_121673955bd7aa144de5a8f6c262" });