CodeIgniterフレームワークを使用してクラウドファンディングサイト(Kickstarterと同様)を開発しています。
このライブラリを使用して、PayPalのアダプティブペイメントを「正常に」実装しました。
しかし、支払いの成功/失敗を正しく安全にチェックする方法がわかりません。データベースに保存するには、魔女のデータが重要です。
注:これは連鎖的な遅延支払いであり、私がプライマリレシーバーであり、セカンダリレシーバーがクラウドファンディングプロジェクトの作成者です。所定の期間が経過すると、お金はセカンダリレシーバーに送金されます。
私が今持っている流れは次のようになります:
- ユーザーがクリックして報酬を購入します。
- 'Pay' API操作を使用して支払いを要求し(一意のTrackingIDを含む)、その要求をデータベースに保存します。
- リクエストが成功した場合、セッションにいくつかの応答データ(TrackingID、PayKey、amountなど)を保存し、PayPalにリダイレクトします。
- このステップでは、ユーザーは次のことができます:支払いを受け入れる、キャンセルする、またはブラウザーを閉じるだけなので、ここで何が起こるのか本当にわかりません...(推奨事項?)
- ユーザーが支払いを受け入れると、彼は私のサイトにリダイレクトされ、セッションで保存したデータを使用して、支払いに関する情報を取得するための「PaymentDetails」API操作を要求します。
- 結果をデータベースに保存し、応答'amount'が要求'amount'と等しいかどうかを確認します(セキュリティのため)。
- すべてがうまくいったら、データベースを更新し、支払いTrackingIDをユーザーと彼が購入した報酬に接続します。
- 後で(数か月後になる可能性があります)、管理者から「ExecutePayment」API操作が要求され、そのお金がプロジェクトクリエーターに送金され、少額の手数料がかかります(クラウドファンディングの仕組み...)
今、私は多くのことを見逃していると確信していますが、私には何がわかりません:
- IPN APIはどうですか?それが必要?フローとチェックの中で遊ぶことになるのはどこですか?
- ユーザーがPayPay(私のサイトの外)にいるときにブラウザーウィンドウを閉じた場合の対処方法。
- PayKeyは3時間有効だと聞きましたが、数か月後に「ExecutePayment」を実行するにはどうすればよいですか?
- PayPal APIで膨大な量のエラータイプを処理するにはどうすればよいですか?
- 私が世話をする必要がある他のもののヒントや例はありますか?安全?エラー?その他?
どうもありがとうございました、私は本当にあなたの答えが必要です!