微信支付和支付寶支付一直回調問題
阿新 • • 發佈:2018-06-05
無需 OS osql ucc 流程 告訴 urn 解決 order
在做支付開發時,發現一個問題,就是說異步回調會一直不停的回調,這樣會導致有些業務邏輯的問題,比如說本人在做的一個項目,支付成功後,會有一系列的業務,比如會員升級,錢包判斷等功能,如果一直回調進行處理那出現問題的,那麽如何解決了,也挺簡單的,就是在處理完看,你給支付寶或微信進行一個輸出,告訴支付寶或微信,我已處理完成,那麽就不會一直在出現回調
支付寶很簡單,只要輸出 echo success;即可,而微信則需要return 一個xml 數據
<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>
//支付寶 $sql="select id,is_pay,mem_id from `order` where ordernum=‘{$out_trade_no}‘"; //更新訂單 $order = $dosql->GetOne($sql); //如果已支付過,就無需再進行遊戲規則 1代表你也走過這個流程 if($order[‘is_pay‘]===1){ echo "success"; }
$order = $dosql->GetOne("select id,is_pay,mem_id from `order` where ordernum={$data[‘out_trade_no‘]}"); //微信支付回復 if ($order[‘is_pay‘]==1) { return ‘<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>‘; }
主要思想就是先判斷下是否已支付過,如果已支付過,就直接告訴支付寶或微信,已支付。無需再進行異步回調。
微信支付和支付寶支付一直回調問題