场景: 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']; }
基础功能就这些,如果想效果好看一点,可以再加一些样式,比如:支付成功,加一个对号的动画!