場景: PC端 微信掃碼支付
結果: 支付成功 自動跳轉
實現思路:
支付二維碼頁面,寫ajax請求支付狀態,請求到結果,無論成功還是失敗,都跳轉到相應的結果頁面
具體實現方法:
html部分:
支付結果狀態設定: 0 未支付 1 支付成功 2 支付失敗
<input type="hidden" id="order_id" value="<?php echo $order_id;?>"> <script type="text/javascript">
function pay_status(){ var order_id = $("#order_id").val(); $.ajax({ url:'http://' + window.location.host+ '/home/cart/pay_status_check', dataType:'json', type:'post', data:{'order_id':order_id}, success:function(data){ if(data == '1' ){ window.clearInterval(int); //銷毀定時器 setTimeout(function(){ //跳轉到結果頁面,並傳遞狀態 window.location.href="http://"+window.location.host+"/home/cart/pay_result?pay_status=success"; },1000) }else if(data =='2'){ window.clearInterval(int); //銷毀定時器 setTimeout(function(){ //跳轉到結果頁面,並傳遞狀態 window.location.href="http://"+window.location.host+"/home/cart/pay_result?pay_status=fail"; },1000) } }, error:function(){ alert("error"); }, }); } //啟動定時器 var int=self.setInterval(function(){pay_status()},1000); </script>
PHP 部分:
//支付狀態檢測 public function pay_status_check(){ $order_id = I("order_id"); $result = M('table')->where("order_id = $order_id")->find(); echo $result['pay_status']; }
基礎功能就這些,如果想效果好看一點,可以再加一些樣式,比如:支付成功,加一個對號的動畫!