メインコンテンツへスキップ
このページで

DEUNAの認証情報は、以下の2つの質問に答えます。 どの商取引アプリケーションが呼び出しているか、および、該当する場合、 どの登録済み顧客が使用しているか。 まず、リクエストが実行される場所と、必要な権限を確認し、その後、正確な要件を エンドポイント: カタログ.

どの認証情報を利用するかを決定する#

以下の順序で質問してください。

  1. リクエストはブラウザまたはモバイルアプリケーションで実行されますか? 公開APIキーまたはSDKまたはエンドポイントでドキュメントされているアプリケーションコンテキストを使用します。クライアントにはプライベートキーを配置しないでください。
  2. バックエンドで商取引操作を実行しますか? プライベートAPIキーを X-Api-Key サーバー間での呼び出し(注文の作成、取得、決済、払い戻し、キャンセルなど)に使用します。
  3. DEUNAは、登録済み顧客を認識する必要がありますか? エンドポイントがサポートする場合、顧客の短い有効期限のアクセストークンを Authorization: Bearer … のみ追加します。これにより、リクエストは、プロファイルデータ、住所、保存された支払い手段、または顧客が承認したウォレットフローなどのリソースに対して、顧客固有のコンテキストを提供します。
リクエストのシナリオ認証情報理由
DEUNA SDKまたはウィジェットがブラウザまたはモバイルアプリで実行されている場合APIキーを通じて、Athiaにリアルタイムで伝達されます。商人のアプリケーションと環境を特定し、商人のバックエンド権限を公開しません。
商人のバックエンドが商人のエンドポイントを呼び出すプライベートAPIキー商人の信頼できるサーバー間通信を認証します。
ログインした顧客が顧客のエンドポイントを呼び出すエンドポイントで文書化されている、公開されたアプリケーションコンテキストと顧客のBearerトークンアプリケーションと、操作でアクセスできる顧客を特定します。
顧客コンテキストも必要な商人のバックエンド操作プライベートAPIキーと顧客のBearerトークン、ただしエンドポイントが両方をサポートする場合のみ商人の認証と顧客のIDを分離します。
ゲスト顧客フロー公開されたクライアントコンテキスト。Bearerトークンは、エンドポイントが必要な場合にのみ使用DEUNAのログインした顧客のIDを関連付けることはできません。

適切な認証情報を選択してください#

認証情報どこに属するか機能概要
APIキーを通じて、Athiaにリアルタイムで伝達されます。ブラウザ、モバイルSDK、またはその他の文書化された顧客アプリケーションサポートされているウィジェット、UI、トークン化フローを初期化し、商人のアプリケーションと環境を特定します。商人のプライベートなバックエンド操作を認証しません。
プライベートAPIキー信頼できる商人のバックエンドのみ商社サーバー間での操作を認証します X-Api-Key.
顧客用アクセス トークンログインした顧客フロー顧客のIDを、 Authorization: Bearer … サポートされているエンドポイントで追加します。これは、エンドポイントで必要なAPIキーの代替ではありません。
管理者のセッション使用する APM の評価用の不正検知プロバイダーを選択および設定します (例: Cybersource または Riskified)。承認されたオペレーター向けのロールベースのアクセス権を提供します。これは、統合APIの資格情報ではありません。

公開されたAPIキー: クライアントサイド統合#

DEUNAのコードが、ブラウザやモバイルアプリケーションなどの信頼できないクライアントで実行される場合、公開APIキーを使用します。一般的な用途としては、DEUNAのウィジェットやSDKを初期化し、クライアント側のトークン化および決済体験をサポートするための、商社と環境を特定することが挙げられます。

公開キーは、クライアント設定に含めることを意図していますが、秘密キーではなく、決済、払い戻し、キャンセルなどの商社側のバックエンド操作を実行するための権限を与えるものではありません。公開キーは、正しいサンドボックスまたは本番環境と関連付けてください。

プライベートAPIキー:サーバー間認証#

プライベートAPIキーは、信頼できるバックエンドから商社エンドポイントを呼び出す場合に使用します。APIキーによる認証を使用する商社側の操作では、プライベートキーを以下に指定する必要があります。 X-Api-Key(例:APIキーではなく、トークンを使用) Authorization: Bearer ….

curl --request GET \
  --url https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN \
  --header "X-Api-Key: YOUR_PRIVATE_API_KEY"

顧客 Bearer トークン:ログイン済みユーザーのコンテキスト#

顧客アクセストークンは、操作がログイン済みのDEUNA顧客のコンテキストで実行され、エンドポイントがBearer認証をサポートする場合に使用します。ヘッダーの Authorization に送信してください:

オプションの顧客コンテキストHTTP
Authorization: Bearer USER_ACCESS_TOKEN

ベアラートークンは、 どの顧客が 操作しているかを示します。APIキーは、 どの商社アプリケーションまたはバックエンドが 呼び出しているかを示します。したがって、特定のエンドポイントでは、顧客のベアラートークンとアプリケーションのAPIキーの両方が必要となる場合があります。

ゲストフローでベアラートークンを送信することは、ヘッダーが存在するだけでは正しくありません。商社のプライベートキーをベアラートークンとして使用したり、顧客トークンを商社のみの操作の認証として使用したりしないでください。バックエンドで顧客のコンテキストを転送する場合は、そのコンテキストをサポートするエンドポイントにのみ転送してください。

環境#

サンドボックスと本番環境は分離されています。各環境には、独自のベースURL、APIキー、商人の設定、接続、データ、および支払い状態があります。

Sandbox
https://api.sandbox.deuna.io

サンドボックスの認証情報とプロバイダのテスト設定を使用して、完全な統合をテストしてください。

Production
https://api.deuna.io

本番環境の商社認証情報と本番環境の認証情報を使用して、実際の決済処理を行います。

キーの保存とローテーション#

  • プライベートキーは、秘密管理ツールまたは保護された実行時設定に保存してください。
  • サービスおよび必要な環境へのアクセス範囲を制限してください。
  • リクエストログおよびサポート添付ファイルから認証情報を削除してください。
  • 古いキーを削除する前に、代替キーをデプロイして、本番環境でのトラフィックを安全に継続します。
  • キーの発行とローテーションは、承認された管理者オペレーターまたはDEUNAのTAMと連携して実施してください。

認証エラー#

認証エラーは通常、以下のような結果を返します。 401 Unauthorized または 403 Forbidden再試行する前に、以下の点を確認してください。

  1. 認証情報は、ドキュメントで指定されたヘッダーに存在します。
  2. キーは、要求された環境と商社に属していること。
  3. このエンドポイントは、送信した認証方法をサポートしています。
  4. 顧客トークンまたはキーは有効期限切れになっていません。
  5. 必要な商社、店舗、または顧客に関する情報はすべて含まれています。

永続的に認証エラーを再試行しないでください。 応答を保持してください。 request_id 利用可能な場合は、お問い合わせの際に必ず記載してください。

レート制限#

DEUNAは、すべての統合に対して一貫したリクエスト/秒の制限を適用していません。API Gatewayは、指定された時間枠内で構成された制限を最大リクエスト数として評価します。有効な制限は、商人、環境、HTTPメソッド、およびエンドポイントによって異なる場合があります。

ゲートウェイの動作それがあなたの統合にどのように影響するか
範囲制限は、1つのエンドポイント、同じバックエンドサービスを使用するエンドポイント、またはゲートウェイ全体に適用できます。
トラフィックバケットリクエストは、商人のID、APIキー、顧客のBearerトークン、ソースIPアドレス、またはその他の構成されたリクエストヘッダーでグループ化できます。期待されるIDが存在しない場合、一部のルールはソースIPアドレスにフォールバックします。
時間枠各ルールは、許可されるリクエスト数とカウント期間の両方を定義します。すべてのエンドポイントが同じ時間枠を使用することを前提にしないでください。
ルーティング特定のルートに対する制限は、そのメソッドとエンドポイントに対してルールが設定されている場合にのみ適用されます。プラットフォーム全体で、過負荷時にトラフィックを拒否するための保護機能も利用できます。

リクエストが設定された制限を超えた場合、ゲートウェイは 429 Too Many Requests 以下の Retry-After ヘッダーを返します。ルートレベルでのレスポンスは以下の形式になります。

レート制限レスポンスHTTP
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 1

{
  "error": "rate_limit_exceeded",
  "message": "maximum requests",
  "code": 429,
  "endpoint": "/merchants/orders",
  "total_requests": 101,
  "retry_after": "1s"
}

ゲートウェイ全体で制限が適用された場合、レスポンスフィールドは異なる場合があります。HTTPステータスと Retry-After ヘッダーを信頼してください。

処理 429 安全にレスポンスを処理してください

  1. 少なくとも、 Retry-After.
  2. 秒間、リクエストを送信するのを停止します。指数関数的なバックオフとジャイターを使用して、別のパルスとして、すぐにキューからトラフィックを解放するのではなく、再試行してください。
  3. 同じ決済操作に対しては、元のアイデンティティキーと、正確なリクエストボディを再利用してください。
  4. 複数のワーカーとアプリケーションインスタンスでのリクエスト制限の調整。個別のプロセスでの再試行ループが、共有の商社またはエンドポイントの制限を超過する可能性があります。
  5. もし 429 トラフィックが削減された後も、レスポンスは継続します。レスポンスボディとリクエストIDを保持し、その後、DEUNAサポートまたはテクニカルアカウントマネージャー(TAM)にご連絡ください。

制限の増加をリクエスト

計画的なトラフィック増加の前に、DEUNAサポートまたはTAMに制限を確認を依頼してください。以下の情報を含めてください:

  • 環境と商社ID。
  • 影響を受けているHTTPメソッドとエンドポイント。
  • 予想される持続的なおよびピーク時のリクエストレート、バースト期間、および計画された展開日。
  • 商社システムがDEUNAに呼び出す際に使用する、アウトバウンド(エグレス)のパブリックIPアドレスまたはCIDR。

サポートリクエストには、APIキー、ベアラートークン、その他の機密情報を含めないでください。

続き#