支付宝支払非同期コールバック成功、ページジャンプ問題
1279 ワード
質問:
アリペイスキャンコードの支払いに成功した非同期コールバック処理関数は、アリペイに情報を返す必要があります.これにより、支払いに成功したページのジャンプを処理することができません.1つの方法はajaxポーリングだと思いますが、ユーザーがコードをスキャンしたり、支払いをしたりしないと、ポーリングは絶えず要求され、あまりよくないと思います.すみません、少し良い処理方法はありませんか?
ネットユーザーの募集:
1、
ajaxロングポーリング、websocket
2、
私の提案はajaxポーリングです!実はアリペイもajaxポーリングです.肝心な問題は性能を考慮すれば.redisに頼ることができます.支払い開始後、
3、
このような问题に対して、支付宝のコールバックを自分の业务ロジックと分けるだけでいいです.まず、ユーザーのページのジャンプは支付宝とは関系ありません.だから、支付宝のコールバックはページのジャンプと混同すべきではありません.支付宝のコールバックはユーザーにお金を払っていないことを知らせるだけです.だから、コールバックコードの中ではユーザーが支払った后のロジックだけを担当しています.ページのジャンプについては、通常のスキームはポーリングであり、ブラウザは絶えず要求を開始して支払い状態を尋ねるが、このQRコードを弾枠の形で現れるように、ユーザーがコードをスキャンしてもスキャンしても構わない.支払い後の論理は支付宝のコールバックがあるため、ユーザーがスキャンした後にQRコードを閉じると、要求を開始して支払い状態を検索する.この时、どのようにジャンプしたいのか、もし本当にユーザーがコードの现在のページをスキャンして状态を知る必要があるならば、それはポーリングあるいはwebsocketを使うしかありません.コードをスキャンして支払いまでの一連の操作はすべてユーザーが支付宝サーバーと通信しているので、支付宝サーバーだけがあなたのサーバーに通知して、ユーザーが具体的にどのステップに着いたかを知ることができます.だから、全二重通信以外にリアルタイムでユーザーの操作の進度を得るにはポーリングしかできない.これはやはり支付宝がユーザーの操作の進度をプッシュしているかどうかにかかっている.支付宝が支払いコールバックしかない場合、ユーザーにスキャンしていないコードをプッシュしなければ、ポーリングしてユーザーのスキャンの進度を取得することはあまり役に立たない.
転載先:https://www.cnblogs.com/kenshinobiy/p/8882722.html
アリペイスキャンコードの支払いに成功した非同期コールバック処理関数は、アリペイに情報を返す必要があります.これにより、支払いに成功したページのジャンプを処理することができません.1つの方法はajaxポーリングだと思いますが、ユーザーがコードをスキャンしたり、支払いをしたりしないと、ポーリングは絶えず要求され、あまりよくないと思います.すみません、少し良い処理方法はありませんか?
ネットユーザーの募集:
1、
ajaxロングポーリング、websocket
2、
私の提案はajaxポーリングです!実はアリペイもajaxポーリングです.肝心な問題は性能を考慮すれば.redisに頼ることができます.支払い開始後、
key_
の値は0
であり、未支払いを表す.非同期処理に成功した後、redisの値は1
に変更された.フロントエンドajaxポーリングの場合、このkeyを調べるだけです.1になるだけで、対応する操作をします!3、
このような问题に対して、支付宝のコールバックを自分の业务ロジックと分けるだけでいいです.まず、ユーザーのページのジャンプは支付宝とは関系ありません.だから、支付宝のコールバックはページのジャンプと混同すべきではありません.支付宝のコールバックはユーザーにお金を払っていないことを知らせるだけです.だから、コールバックコードの中ではユーザーが支払った后のロジックだけを担当しています.ページのジャンプについては、通常のスキームはポーリングであり、ブラウザは絶えず要求を開始して支払い状態を尋ねるが、このQRコードを弾枠の形で現れるように、ユーザーがコードをスキャンしてもスキャンしても構わない.支払い後の論理は支付宝のコールバックがあるため、ユーザーがスキャンした後にQRコードを閉じると、要求を開始して支払い状態を検索する.この时、どのようにジャンプしたいのか、もし本当にユーザーがコードの现在のページをスキャンして状态を知る必要があるならば、それはポーリングあるいはwebsocketを使うしかありません.コードをスキャンして支払いまでの一連の操作はすべてユーザーが支付宝サーバーと通信しているので、支付宝サーバーだけがあなたのサーバーに通知して、ユーザーが具体的にどのステップに着いたかを知ることができます.だから、全二重通信以外にリアルタイムでユーザーの操作の進度を得るにはポーリングしかできない.これはやはり支付宝がユーザーの操作の進度をプッシュしているかどうかにかかっている.支付宝が支払いコールバックしかない場合、ユーザーにスキャンしていないコードをプッシュしなければ、ポーリングしてユーザーのスキャンの進度を取得することはあまり役に立たない.
転載先:https://www.cnblogs.com/kenshinobiy/p/8882722.html