`verificationSessionReject`ミューテーションに新たな拒否理由コードとマーチャント向けメッセージが追加されました

ShopifyのPayments Apps APIの一部であるverificationSessionRejectミューテーションが、新たな拒否理由コードとオプションのマーチャント向けメッセージをサポートするようになりました。これにより、支払いアプリは検証拒否の報告についてより詳細な制御が可能となります。

技術的課題の定義と現状分析

従来、Shopify Payments Apps APIで検証が拒否された際の理由を詳細に報告する機能が限定的でした。これにより、開発者は問題の特定や解決に時間がかかることがありました。また、マーチャントに対して具体的なメッセージを提供する機能がなかったため、ユーザーエクスペリエンスの向上に制約がありました。

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

この問題を解決するため、ShopifyはverificationSessionRejectミューテーションに新たな拒否理由コードとマーチャント向けメッセージの提供機能を追加しました。新たに追加された拒否理由コードは以下の2つです。

  • RESOURCE_NOT_FOUND: 支払い方法が支払いプロバイダーのシステム内で見つからない。
  • RESOURCE_INVALID: 支払いトークンがこの使用ケースに対して有効ではない(例えば、顧客と支払い方法の不一致など)。

また、マーチャント向けメッセージを提供するための新たな入力フィールドmerchantMessageも追加されました。これにより、検証が拒否された際にマーチャントに対してカスタムのローカライズメッセージを提供することが可能となりました。

実装手順とコード例

verificationSessionRejectミューテーションの呼び出し時に、新たに追加された理由コードとマーチャント向けメッセージを指定することで使用できます。


mutation {
  verificationSessionReject(input: {
    id: "gid://shopify/VerificationSession/1"
    reason: {
      code: RESOURCE_NOT_FOUND
    }
    merchantMessage: "指定の支払い方法が見つかりませんでした。"
  }) {
    verificationSession {
      id
      state
      stateReason {
        code
      }
    }
    userErrors {
      field
      message
    }
  }
}

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

この更新によって、開発者は特定の問題をより迅速に特定し、解決することが可能となります。また、マーチャント向けメッセージを提供することで、ユーザーエクスペリエンスの向上を図ることができます。

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

新たな理由コードとマーチャント向けメッセージはオプションですが、可能な限り詳細な情報を提供することで、エラーの解析と解決が容易になります。特にマーチャント向けメッセージはユーザー体験の向上に直接貢献するため、親切かつ具体的なメッセージを提供することをお勧めします。

次のステップ・発展案

今回の更新は1つのステップに過ぎません。今後もShopifyのAPIは進化し続けます。新しい機能や改善に常に注目し、それらを活用して開発の質と効率を向上させましょう。

参考記事: New rejection reason codes and merchant message added to `verificationSessionReject` mutation