この記事では、PHP を使用した Alipay 開発における return_url と Notice_url の違いを分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
Alipay の処理ビジネスで return_url と Notice_url によって返されるステータスは何ですか? それに基づいて何らかの処理を行うには、return_url と Notice_url の違いを理解する必要があります。
問題の説明:
Alipayの取引でこんな問題が発生しました。決済完了後、Alipayが加盟店の指定ページに飛んだ際、注文ステータスが更新されていたのですが、デバッグの結果、Alipayがnotify_urlを先に通知して注文ステータスを完了していることが分かりました。 .Alipay return_url と Notice_url 通知注文の問題:
注文は必ずしも確実ではありません。注文に基づいて判断しないでください。具体的に判断する方法は、現在のデータベースのステータスとAlipayから取得したばかりのステータスを比較して、処理されたかどうかを判断することに基づいています。
Alipay return_urlとnotify_url、同期通知ページ機能(return_url機能)の違いについて:
(1) 支払いが成功すると、購入者には取引が成功したことを示す Alipay ページが表示され、このページは数秒間表示され、販売者が指定した同期通知ページ (return_url パラメーター) に自動的に戻ります。 );(2) このページのパラメータを取得するには、request.QueryString("out_trade_no")、$_GET['out_trade_no']; などの GET メソッドを使用する必要があります。
(3) このメソッドは購入者が支払いを完了した後にのみ自動的にジャンプするため、一度だけ実行されます。(4) この方法は、Alipay が積極的に加盟店ページを呼び出すのではなく、Alipay のプログラムがページ自動ジャンプ機能を使用してユーザーの現在のページに自動的にジャンプします。
(5) (4)の理由に基づいて、デバッグはサーバー上だけでなくローカルでも実行できます。(6) 戻り URL は 1 分間のみ有効です。1 分を超えると、リンク アドレスは無効になり、検証は失敗します。
(7) ページジャンプ同期通知ページのパス(return_url)を設定する際、ページファイルの後にカスタムパラメータを追加しないでください。例:間違った書き方:
コードをコピーしてください
コードは次のとおりです:
サーバー非同期通知ページ機能 (notify_url 機能):
(1) サーバーの非同期通知ページ (notify_url) に、スペース、HTML タグ、開発システムによってスローされる例外プロンプトなどの文字が含まれていないことを確認する必要があります。
(2) Alipay は POST を使用して通知情報を送信するため、このページで次のようなパラメーターが取得されます。request.Form("out_trade_no")、$_POST['out_trade_no']。
(3) この方法は、Alipay が積極的に通知を開始した場合にのみ有効になります。
(4) 取引が Alipay の取引管理に存在し、取引ステータスが変化した場合にのみ、Alipay はこの方法を通じてサーバー通知を開始します (即時支払いの取引ステータスはデフォルトで「購入者の支払いを待っています」です。通知は送信されません) );(5) サーバー間の対話。ページに表示できるページジャンプ同期通知とは異なり、この対話方法は目に見えません。
(6) 初めて取引ステータスが変化したとき(即時決済の場合、取引ステータスは取引完了)、ページジャンプ同期通知ページが有効になるだけでなく、サーバー非同期通知ページも処理結果を受け取りますAlipayからの通知
(7) プログラムの実行後、「success」が出力されます (引用符なし)。販売者から Alipay にフィードバックされた文字が成功の 7 文字ではない場合、Alipay サーバーは 24 時間 22 分を超えるまで通知を再送信し続けます。
通常の状況では、8 件の通知は 25 時間以内に完了します (通知の間隔頻度は通常: 2 分、10 分、10 分、1 時間、2 時間、6 時間、15 時間です)。
(8) プログラム実行完了後はページジャンプができません。ページジャンプが実行されると、Alipay は成功文字を受信せず、Alipay サーバーはページプログラムが異常に実行されていると判断し、処理結果通知を再送信します。(9) このページでは Cookie やセッションなどが無効になります。つまり、これらのデータは取得できません。
(10) このメソッドのデバッグと操作はサーバー上にある必要があります。つまり、インターネット上でアクセスできる必要があります。(11) このメソッドの主な機能は、順序の損失を防ぐことです。つまり、ページ ジャンプ同期通知は順序の更新を処理しませんが、それを処理します。
(12) 通知ID(パラメータnotify_id)は1分間のみ有効であり、1分を超えると通知の検証に失敗します。一度認証に成功すると、次回の認証は無効となります。この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/931544.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/931544.html