phpはアリペイ開発中return_urlとnotify_urlの区別分析

2433 ワード

本文の例はphpによる支付宝開発におけるreturn_を分析した.urlとnotify_urlの違い.皆さんの参考にしてください.具体的な分析は以下の通りである.
アリペイ処理業務でreturn_url,notify_urlはどのような状態を返しているのか、それに基づいていくつかの処理をするにはreturnを理解しなければなりません.url,notify_urlの違いを紹介します.
問題の説明:
私はアリペイ業務の処理中にこのような問題が発生したことがあります.支払いが完了した後、アリペイが業者の指定ページにジャンプしたとき、注文の状態が更新されました.デバッグを通じてアリペイが先にnotifyを通知していることがわかりました.url、注文ステータスが完了しました.
支付宝return_urlとnotify_url通知順序の問題:
順序が必ずしもそうではありません.前後の順序で判断しないでください.具体的にどのように判断するかは、現在のデータベースの状態と支付宝から取得したばかりの状態を比較して、処理したかどうかを判断します.
支付宝returnについてurlとnotify_urlの違い、同期通知ページのプロパティ(return_urlプロパティ):
(1)買手は支払いに成功した後、1つの支付宝が取引に成功したことを示すページを見ることができ、このページは数秒滞在し、その後、自動的に商戸が指定した同期通知ページ(パラメータreturn_url)に戻る.
(2)このページで取得するパラメータの方式は、requestのようなGET方式で取得する必要がある.QueryString("out_trade_no")、$_GET['out_trade_no'];
(3)この方式は買い手の支払いが完了した後にのみ自動ジャンプを行うため、一度しか行わない.
(4)この方式は支付宝が自ら商戸ページを呼び出すのではなく、支付宝のプログラムがページ自動ジャンプの関数を利用して、ユーザーの現在のページを自動的にジャンプさせる.
(5)(4)の理由に基づいて、サーバ上でしかデバッグできないのではなく、本機でデバッグすることができる.
(6)返却URLは1分の有効期間しかなく、1分を超えるとリンクアドレスが失効し、検証が失敗する.
(7)ページジャンプ同期通知ページ(return_url)のパスを設定する場合は、ページファイルの後ろにカスタムパラメータを付けないでください.例:
間違った書き方:

    
 

正しい書き方:

    
 

サーバ非同期通知ページのプロパティ(notify_urlプロパティ):
(1)サーバ非同期通知ページ(notify_url)にスペース、HTMLラベル、開発システムが投げ出した異常提示情報などの文字がないことを保証しなければならない.
(2)アリペイはPOST方式で通知情報を送信するため,このページでパラメータを取得する方式である.
request.Form("out_trade_no")、$_POST['out_trade_no'].
(3)支付宝が自発的に通知を開始してこそ、この方式が有効になる.
(4)アリペイの取引管理において当該取引が存在し、かつ取引状態の変化が発生した場合にのみ、アリペイはこの方式によってサーバー通知を開始する(即時入金中の取引状態が「買い手の支払い待ち」の状態である場合、デフォルトでは通知を送信しない).
(5)サーバ間のインタラクションは,ページジャンプ同期通知のようにページに表示されないが,このインタラクション方式は見えない.
(6)第1回目の取引状態が変更された場合(即時入金時に取引状態が取引完了である)、ページジャンプ同期通知ページが有効になるだけでなく、サーバ非同期通知ページもアリペイからの処理結果通知を受け取る.
(7)プログラムの実行が完了したら、「success」(引用符を含まない)を印刷出力する必要があります.業者から支付宝にフィードバックされた文字がsuccessの7文字でない場合、支付宝サーバーは24時間22分を超えるまで通知を再送し続けます.
一般的には、25時間以内に8回の通知(通知の間隔頻度は一般的に2 m、10 m、10 m、1 h、2 h、6 h、15 h)を完了する.
(8)プログラムの実行が完了すると,そのページはページジャンプを実行できない.ページジャンプを実行すると、支付宝はsuccess文字を受け取れず、支付宝サーバからページプログラムの実行に異常があると判定され、処理結果通知が再送される.
(9)cookies、sessionなどはこのページで失効し、これらのデータを取得できない.
(10)この方式のデバッグと実行は、サーバ上、すなわちインターネット上でアクセス可能である必要がある.
(11)この方式の役割は主に注文の紛失を防止する.すなわち、ページジャンプ同期通知が注文の更新を処理していない場合、それは処理する.
(12)通知ID(パラメータnotify_id)は有効期間が1分しかなく、1分を超えると検証に失敗する.検証が成功すると、次回の検証は無効になります.
本稿で述べたphpプログラム設計に役立つことを願っています.