ECShop微信扫码支付成功跳转解决方案

4星 · 超过85%的资源 需积分: 15 148 下载量 2 浏览量 更新于2024-09-11 5 收藏 1KB TXT 举报
Ecshop微信扫码支付成功跳转解决方案 Ecshop微信扫码支付成功跳转问题是一个常见的问题,许多开发者在使用Ecshop进行微信扫码支付时,遇到支付成功但是页面不跳转的问题。今天我们将介绍一个使用Ajax的处理方法来解决这个问题。 Ecshop微信扫码支付成功跳转的原理 在Ecshop中,微信扫码支付是通过redirect方式来实现的。 Redirect方式是指在用户支付成功后,微信服务器将跳转到Ecshop的指定页面,并带上订单号等信息。然而,在某些情况下,支付成功后页面不跳转的问题就会出现。 Ecshop微信扫码支付成功跳转的解决方案 我们可以使用Ajax来解决这个问题。我们可以在支付成功后,使用Ajax来查询订单状态,并在订单状态为“支付成功”时,跳转到指定页面。 下面是相关的代码: 首先,我们需要在flow.php文件中添加一个Ajax处理方法: ```php if(!empty($_REQUEST['act'])&&$_REQUEST['act']=='GetOrder') { include('includes/cls_json.php'); $json=new JSON; if($_GET['OrderId']){ $OrderId=$_GET['OrderId']; $sql="select pay_status from ".$ecs->table('order_info')." where order_sn='$OrderId'"; $status=$db->getOne($sql); die($json->encode($status)); } } ``` 这个方法将根据订单号查询订单状态,并将结果返回给Ajax请求。 然后,我们需要在flow.dwt文件中添加一个Ajax请求: ```html <script type="text/javascript"> $(document).ready(function(){ setInterval("ajaxstatus()",3000); }); function ajaxstatus(){ var order_sn=document.getElementById("HidOrderid").innerText; if(order_sn!=0){ $.ajax({ url:"flow.php?act=GetOrder&OrderId="+escape(order_sn), type:"GET", dataType:"json", data:"", success:function(data){ if(data==2){ window.location.href="wx_respond.php"; } }, error:function(){ alert("ONo~~~"); } }); } } </script> ``` 这个Ajax请求将每3秒钟查询一次订单状态,如果订单状态为“支付成功”,则跳转到wx_respond.php页面。 Ecshop微信扫码支付成功跳转的实现细节 在上面的代码中,我们使用了Ajax来查询订单状态,并在订单状态为“支付成功”时,跳转到指定页面。这样可以解决微信扫码支付成功但是页面不跳转的问题。 需要注意的是,在实现这个解决方案时,需要确保Ecshop的配置正确,并且微信扫码支付的设置正确。否则,可能会出现一些问题。 使用Ajax来解决Ecshop微信扫码支付成功但是页面不跳转的问题是一个简单而有效的方法。通过这个解决方案,开发者可以轻松地解决这个问题,并提供更好的用户体验。