5

顧客のクレジットカード番号をオンラインで取得し、端末のPOSで店舗で支払いを処理したいというクライアントからの多くの要求がありました. これを行うための最良の方法は何だろうと思っています。

クレジット カード番号をプレーン テキストでサーバーに保存したくありません。また、プレーン テキストで番号を記載した電子メールを送信したくありません。

クライアントは、オンライン決済処理業者のコストが高く、追加のコストがかかるため、オンライン決済アカウントにサインアップしたくありません。また、商品の在庫切れや顧客の要求に問題があるために合計が変わる可能性があるため、両方の顧客がオンラインで請求することはできません。

他にどのようなオプションがありますか?

私はPHPを使用します。ルールが使用する方法に影響を与える場合、私もカナダにいます.

4

7 に答える 7

4

Authorize.net を使用することをお勧めします (それは私が使用したものだからです)。クレジット カード情報を Authorize.net に投稿して、課金対象のクレジット カード情報をキャプチャ (AUTH_CAPTURE だと思います) することができます。次に、クライアントは Authorize.net 仮想端末にログインし、利用可能な在庫に応じて各支払いを請求または無効にすることができます。

暗号化されている場合でも、インターネット経由でアクセスできるデータベースにクレジット カード情報を保存しないでください。PCI コンプライアンスがどこで始まりどこで終わるかはわかりませんが、クライアントがクレジット カード情報を保存している場合、受け入れるクレジット プロバイダーによって PCI に準拠する必要があることはわかっています。PCI への準拠は苦痛であり、私が推奨するアプローチは、私が見つけた最も簡単な方法です。クライアントの負担を最小限に抑えます。

于 2009-07-18T12:37:21.793 に答える
4

GPG のフロントエンドを構築し、Web サイトの所有者が独自の GPG キーを生成できるようにすることで、この問題を解決しました。次に、すべてのクレジット カード データは GPG 暗号化され、必要に応じてセキュリティを強化するために、ウェブサイト所有者の秘密鍵でのみ復号化できます。

于 2009-07-18T12:30:56.020 に答える
3

POSマシンを使用するよりもお勧めする利用可能な支払い処理業者が多数あります. ほとんどのコメントは、PayPal、Authorize.net、Cyber​​Source です...すべて、サイトとのインターフェースを可能にするプログラミング API を備えています。

次に、Rijndael 暗号化を使用します。これは、カード データを保存する最も安全な方法であると信じているからです。私は、暗号化キーを Web 構成の外部 (別のファイル、登録キーなど) に隠すために多大な努力を払っています。

最後に、おそらく最も重要なことは、PCI (Payment Card Industry) コンプライアンス認証 ( https://www.pcisecuritystandards.org/ ) をよく確認する必要があるということです。これは、カード データをオンラインで受け入れるための必須要件になりつつあると思います (まだ要件が満たされていなければ)。将来、規則に従わない者には罰金が科される可能性があります。

于 2009-07-18T12:42:16.553 に答える
1

MySql AES_ENCRYPT関数を使用してカード番号を暗号化し、取得時にAES_DECRYPTを使用して、クレジットカードデータをMySqlデータベースに保存できます(他の機能は動作する可能性がありますが、私はよくわかりません)。強力なキーを使用し、処理されたらデータベース内のエントリを削除します。

PHPでAES暗号化/復号化を行う方法があるかもしれませんが、私はネイティブな方法を知りません。

于 2009-07-18T06:19:29.613 に答える
1

最善の策は、非対称暗号化を使用することです。RSA 公開鍵と秘密鍵のペアを生成します。秘密鍵を安全な場所に置きます。公開鍵を Web サーバーに配置します。クライアントがクレジット カードの詳細を提出したい場合は、公開鍵をクライアントにプッシュします。このクライアント側で、公開鍵を使用してデータを暗号化します。OpenSSL では、Envelope ルーチン (EVP_**) を見てください。

このように、平文のクレジット カード データを復元する唯一の方法は、非常に安全で、オンラインに配置されたり、インターネットに接続されたコンピューターの秘密鍵を見たりすることのないものを使用して復号化することです。

再び OpenSSL を使用して、これを行う非常に単純なスタンドアロン アプリを作成できます。

暗号化したいデータの量が少ないことを考えると、これはかなり実用的なソリューションだと思います。

より効率的ですが、より複雑なソリューションは、クライアント側で生成されたキーを使用してデータを AES 暗号化することです。次に、この AES キーを上記のように暗号化します (上記のソリューションでは、クレジット カードを AES キーに置き換えます)。

于 2009-07-20T23:43:30.247 に答える
1

クレジットカードを保管することは、PCI コンプライアンスに該当します。PCI の規則と規制は、煩雑で詳細です。これは単純な問題ではありません。やり直さなければならない場合は、PCI 準拠のカートを購入し、それを取り付けて完了させることを検討します。

于 2009-08-14T16:41:44.323 に答える
0

支払い処理業者が関与しないソリューションを求めていたのは知っていますが、カナダには CurePay というクレジット カード処理業者があり、私が聞いた限りでは比較的安価です (私自身は使用していません)。www.curepay.com。少なくとも価格設定について知るために、彼らに声をかける価値があるかもしれません.

また、クレジット カード番号の取得に関するある種のコンプライアンスについても覚えているようです。クレジットカードを「誤って」保管したり処理したりすると、法的な問題が発生する可能性があります. あなたを怖がらせようとしているのではなく、どのような解決策を進めるにしても、このようなことを確実に検討していることを確認してください.

于 2009-07-20T23:54:02.953 に答える