クレジットカード決済セッション作成リクエストにMail Order/Telephone Order決済用フラグが追加されました

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

これまでShopifyのクレジットカード決済アプリエクステンションにおいて、決済情報の入力元がマーチャントであるかどうかを示す明確な手段がありませんでした。これにより、電話注文やメールオーダーなど、マーチャントが顧客代わりにクレジットカード情報を入力する場合、その情報がシステム内で適切に取り扱われる保証がありませんでした。

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

しかし、2024-07のAPIバージョンより、Shopifyからクレジットカード決済アプリエクステンションに送信されるHTTP Postリクエストに新たなフラグが追加されました。この新たなフィールドmotoを使用することで、クレジットカード情報がマーチャントによって入力された場合にそれを示すことが可能となります。

3. 実装手順とコード例

具体的には、決済セッションを開始するためのリクエストにおいて、payment_method.dataハッシュに新たなブーリアンフィールドmotoを追加します。その値がtrueであれば、該当のクレジットカード情報がマーチャントによって入力されたことを示します。

{
  "payment_method": {
    "data": {
      "moto": true,
      ...
    },
    ...
  }
}

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

この改善により、マーチャントが顧客代わりにクレジットカード情報を入力した場合でも、その情報が適切に取り扱われることが保証されます。開発者はこのフラグを利用して、そのようなケースに対する特別な処理を追加することが可能となります。これによりシステム全体の信頼性が向上し、結果的には顧客満足度の向上にも寄与することでしょう。

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

ただし、このmotoフラグを使用する際には、その値がtrueである場合には、顧客のプライバシー保護やセキュリティ対策に特別な注意を払う必要があります。マーチャントが顧客のクレジットカード情報を扱うことは、その情報の漏洩リスクを増加させる可能性があるためです。

6. 次のステップ・発展案

今後は、この新たなフラグを使用して、顧客のクレジットカード情報の取り扱いに関する新たなポリシーやガイドラインを開発し、それをアプリケーションに適用することが期待されます。

参考記事: Payment session creation request now includes a flag for Mail Order/Telephone Order payments