私はクライアントがサービスの料金を支払うウェブサイトを持っていますが、エスクローを介して前払いする必要があります。私はPHPに非常に精通しています(これはウェブサイトがコード化されているものです)自動的に機能するエスクローシステムを実装するにはどうすればよいですか? ?
3 に答える
デザインをコンポーネントに分解し、プロセスについて考える必要があります。
エスクローは次のように機能します。
- エンティティAは、エンティティBのエスクロー口座にお金を預け入れます。
- エンティティAとエンティティBが合意に達する
- エスクロー口座はエンティティBに預け入れられます。
実装に関しては、他のトランザクションと同じようにエスクローデポジットを追跡し、エスクロー支払いも同じ方法で追跡します。
「作業指示書」をデータベースに保存する方法を考え出す必要があります。これらには、「AcceptedByA」と「AcceptedByB」の2つの列と、金額が含まれます。
プロセスは次のようになります。
- エンティティAは作業指示書を開き、エスクローアカウントに$Xを支払います
- エンティティBは、作業指示書に必要なことをすべて実行します(AcceptedByBをtrueに設定)
- エンティティAは「AcceptedByA」をtrueに設定します。
- エスクローアカウントからEntityBに支払うトランザクションが実行されます。
これは非常に高いレベルですが、かなり単純なアイデアです。
私見質問はあまりにも一般的です。PHP-MySQL レベルの設計をお探しですか? どのようなテーブルなどですか?または、使用できるサービスをお探しですか?
簡単にするために、お金の受け取りと支払いに Paypal を使用していると仮定しましょう。
買い手 A は、売り手 B の設定とエスクローを行う必要があります。
- $x を請求し、その金額を Paypal アカウントに保存します。
- $x が受信され、B 宛であることを示す論理レコードを作成します。
上記の両方の手順が確実に実行されるようにするには、トランザクション (MySQL または PHP で階層化) を実装する必要があります。何らかの理由で論理レコードの作成に失敗した場合 - 2 番目のステップを n 回再試行し、それでも失敗する場合は、最初のステップを失敗 (返金) します。
ユーザーがエスクローを解放するときは、同様のアプローチを採用する必要があります。