検証のための3DSサポート導入

Shopifyの技術者や開発者の皆様に、重要なアップデート情報をお伝えします。2025-01バージョン以降、バルティングをサポートする決済拡張機能は、3DSチャレンジを検証のために処理できるようになりました。そのための新たな突破口となるのは以下の2つです。

  • 新しいミューテーション、VerificationSessionRedirect
  • 既存のVerificationSessionResolveVerificationSessionRejectミューテーションへの新しい引数

技術的課題と現状分析

これまでのShopifyでは、3DSチャレンジを処理するための専用のミューテーションや引数が存在しませんでした。そのため、3DSが必要な検証を行うためには、既存のミューテーションや引数を使って間接的に対応するしかありませんでした。

技術的ソリューションの提案

このアップデートでは、3DSが必要な検証を行うための新しいミューテーションVerificationSessionRedirectが導入されました。このミューテーションを使用することで、3DSが必要な検証を直接的に、より効率的に行うことが可能になります。

実装手順とコード例


// 3DSが必要な検証の場合、以下のようにVerificationSessionRedirectミューテーションを使用します。
mutation {
  verificationSessionRedirect(input: $input) {
    verificationSession {
      id
      state
      stateReason
    }
    userErrors {
      field
      message
    }
  }
}

パフォーマンス・コスト分析

この新機能の導入により、3DSチャレンジを直接的に、より効率的に処理することが可能になります。これにより、検証の処理時間が大幅に短縮され、それに伴いコストも削減できます。

実装時の注意点・ベストプラクティス

新しいミューテーションVerificationSessionRedirectを使用する際には、3DSが必要な検証を行う際にだけ使用するように注意してください。また、3DSが必要な検証を解決または却下する際には、認証引数をVerificationSessionResolveまたはVerificationSessionRejectミューテーションに渡すようにしてください。

次のステップ・発展案

バルティングをサポートする決済拡張機能を使用している場合、最新バージョンの2025-01にできるだけ早く更新することを強く推奨します。また、VerificationSessionStateReasonREQUIRED_3DS_CHALLENGEは非推奨となりましたので、新しいミューテーションVerificationSessionRedirectを使用するように切り替えてください。

参考記事: Introduce 3DS support for verifications