要件を少し違った方法で見てみましょう。現在、次のようになっています。
Web サイト X の製品所有者として、システムに顧客の CC の詳細を一時的に保存して、CC 会社によって拒否された販売を回復できるようにしたい
Ppl はそのように考え、そのように機能を要求する傾向があります。今、私はあなたの要件がより便利に次のように説明されていると思います:
ユーザーとして、私はウェブサイト X が購入の支払いを再試行できるようにしたいので、チェックアウトプロセスを再度行う必要がありません.
それで、何かを保存するための明示的な要件はありません(あなたの側に)ありますか?その唯一の暗示
支払いプロバイダーは、マーチャント アカウントにプログラム API を提供し、拒否された場合に再認証を試みる機能を提供できます。@bashmohandesはこれを以前に回避したと思います
すべての支払いプロバイダーがこれを実行できるわけではありませんが、関連する銀行との関係に依存していると思います. それはあなたが避けたいものです。銀行との関係が深い。
シナリオ 1: 私が言ったことはすべて真実であると仮定する
認証試行への参照以外は何も保存する必要はありません。一部の支払いプロバイダーは、再認証を行うために独自のツールを作成する必要がないように、優れたバックオフィス ツールを提供しています。ペイゲートはこれを行うと思います
私が信じている最善の策は、多くの支払いプロバイダーにインタビューすることです. 彼らは手の甲のようにこのことを知っているべきです。これは潜在的にゼロコード ソリューションです
シナリオ 2: 私が完全に間違っていると仮定しますが、法的にはこの CC の保存は問題ありません
そのため、そのデータを一時的にどこかに保存する必要があります。私はアドバイスします:
- ベンダー固有ではない双方向の暗号化方式を (自然に) 使用するため、任意の言語/プラットフォームを使用して暗号化/復号化できます
- 暗号化/復号化サービスをアプリから分離し、ブラック ボックスのように扱います
- このサービスへの認証に公開/秘密鍵を使用する
- このマシンを、独自の高度なファイアウォール ルールを使用してプライベート ネットワークに配置します (ハードウェア ファイアウォールである必要はありませんが、ハードウェアの方が優れています)。
- アプリサーバーがSSL経由でこのマシンと通信するようにします(プライベートLAN上にあるため、自己署名証明書を使用できます)
シナリオ 2 で提案したのはハードルだけですが、最終的には永続性がデータを取得するための競争に勝ちます。データを完全に保護する唯一の方法は、サーバーをイーサから切り離すことですが、そのオプションは少し急進的です:-)
シナリオ1はいいだろう。そうじゃない?