Unipaas
基礎
Unipaasは、デジタルプラットフォームやマーケットプレイス(SaaS、ギグエコノミー、B2B/B2Cマーケットプレイス)向けにエンドツーエンドの埋め込み決済を提供します。ベンダー(サブマーチャント)のオンボーディング、支払い受取、アカウント(残高)管理、資金 payout を実施しながら、資金フローを制御しPSD2/PCIに準拠します。
サンドボックスキーを取得する。 https://portal.unipaas.com/signup で無料のテストアカウントを作成してください。テストアカウントは無制限で常に利用可能です。ポータルの開発者/キーセクションで秘密鍵を見つけてください。サンドボックスとライブの認証情報は完全に分離されており、データを共有しません。
ベースURL。
- サンドボックス:
https://sandbox.unipaas.com/platform - 本番(ライブ):
https://api.unipaas.com/platform
2つの認証モード(詳細は references/auth.md を参照)。
- サーバー間認証: API呼び出し時に秘密鍵を
Authorization: Bearer {{PRIVATE_KEY}}として直接送信します(チェックアウト作成、ペイイン、アカウント、ペイアウト、オンボーディング)。秘密鍵はサーバー側に保持する必要があります。 - 2段階
/authorizeフロー(クライアント側のプラットフォーム埋め込み用): サーバーが秘密鍵をscopesと(通常は)vendorIdとともに/authorizeにPOSTし、一時的なaccessTokenを受け取ります。クライアントはそのアクセストークンを使用します。秘密鍵は使用しません。
冪等性。 リトライ時の重複実行を避けるため、POST リクエストに requestId: <id> ヘッダーを追加してください。同じ requestId を複数回適用しても、単一の結果が得られます。リクエストIDの有効期間は24時間です。
決定マップ
4つのプロダクト、3つの統合レベル。開発能力とPCIの態勢に合わせてレベルを選択してください。
| プロダクト | ノーコード | 低労力 | 中労力 |
|---|---|---|---|
| オンボーディング | ホステッドオンボーディングリンク | 埋め込みUI(unipaas.components) | オンボーディングAPI |
| 支払い受取 | ペイメントリンク(ポータル) | チェックアウトページ / Web SDK | ペイインAPI(サーバー間) |
| アカウント管理 | ポータルビュー | アカウント/残高コンポーネント | アカウントAPI |
| 資金 payout | ポータル経由の手動/定期 payout | Payoutフォーム / アカウントコンポーネント | Payouts API |
ガイダンス:
- コードを書かずに済ませたい場合: ペイメントリンク、ホステッドオンボーディングリンク、ポータルpayoutsを使用します。
- 低労力で独自のUIを持ち、PCI負荷を減らしたい場合: チェックアウトページ(リダイレクト)、Web SDKのセキュアフィールド、またはバイヤーWeb埋め込みを使用し、オンボーディング/残高/ポータルにはプラットフォーム埋め込みを使用します。
- 完全な制御 / ホワイトラベル / ネイティブアプリを求める場合: APIを使用します。ペイインAPI(生のカードデータ)にはPCI SAQ Dが必要です。
注: vendorId なしで送信されたトランザクションは、プラットフォームアカウントに対して記録されます。
クライアント側のチェックアウトパス
完全な手順は references/web-sdk.md を参照してください。サーバー側の POST /pay-ins/checkout によって返される sessionToken で認証される2つのバイヤー支払いパスがあります。/authorize アクセストークンではありません。
- セキュアフィールドSDK —
https://cdn.unipaas.com/unipaas.sdk.jsを読み込みます(Unipaasグローバルが公開されます)。独自のカードフォームを作成し、new Unipaas().initTokenize(sessionToken, fields, options)を実行します。セキュアフィールドはこのバンドルの機能であり、別のパッケージではありません。 - バイヤーWeb埋め込み —
https://cdn.unipaas.com/embedded-ui.jsを読み込み、次にunipaas.buyerComponents(sessionToken, config)と.create("checkout"|"card"|"digitalWallet").mount("#id")を実行します。
認証の境界(重要):
- バイヤー支払い(セキュアフィールドおよびバイヤーWeb埋め込み) →
POST /pay-ins/checkoutからのsessionToken。 - プラットフォーム埋め込み(
unipaas.components: 残高、請求書、オンボーディング、payPortal、通知) → スコープとvendorIdを持つ/authorizeアクセストークン。バイヤーチェックアウトは、/authorizeアクセストークンを使用しません。
クライアント側の認証後は、GET /pay-ins/{authorizationId} でサーバー側で検証してください。ステータスが CAPTURED でなければ成功ではありません。
参考文献
- references/auth.md —
/authorizeフロー、スコープ、トークンのライフサイクル、冪等性。 - references/accept-payments.md — 支払い受取プロダクト、3つのレベル、チェックアウトページ、ペイイン作成、トークン化、Webhook。
- references/web-sdk.md —
sessionTokenによって供給される2つのクライアント側バイヤー支払いパス。 - references/security.md — 鍵の取り扱い、サーバー側に残すべきもの、PCIの範囲。