参考的网站

(转)http://www.ecshop119.com/ecshopjc-937.html
(转)http://www.6gdown.com/softedupage/58929.html  下面有源码的下载地址

记录下遇到的问题,上面两个url里面有配置和源码了

1.支付成功后的怎么接收微信服务器给发的信息和怎么回复微信服务器,开始弄的时候不知道微信返回的什么,然后我微信返回的都写到了一个log文件查看的, 还有给微信返回的,开返回的SUCCESS不行,返回那段xml就行了。

// 获取微信通知接口postData信息
$resp = $GLOBALS['HTTP_RAW_POST_DATA']; //接收到的是一个xml
$obj = simplexml_load_string($resp, 'SimpleXMLElement', LIBXML_NOCDATA); //把xml转成对象
if($obj instanceof SimpleXMLElement) {
$packet['return_code']=strval($obj->return_code);
$packet['openid']=strval($obj->openid);
$packet['result_code']=strval($obj->result_code);
$packet['attach']=strval($obj->attach);
$packet['out_trade_no']=strval($obj->out_trade_no);
$packet['total_fee']=strval($obj->total_fee); $xml='<xml><return_code>SUCCESS</return_code><return_msg>OK</return_msg></xml>'; }else{ // $xml='<xml><return_code>FAIL</return_code><return_msg>is error</return_msg></xml>';
}
$content = ""; if($packet['return_code']=='SUCCESS' && $packet['result_code']=='SUCCESS')
{
echo $xml;
$content .="xml".$xml;
$order_sn = str_replace($packet['attach'], '', $packet['out_trade_no']); //获取到订单id
$order_sn = trim($order_sn);//此$order_sn有可能为log_id或pay_pici_no,合并付款时,order_sn=$pay_pici_no
$content .= "order_sn".$order_sn;
/* 改变订单状态 */
order_paid($order_sn, 2); } $content .= "obj=".var_export($packet,TRUE);
$file = "log/".date('Y-m-d')."log.txt";//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个
$f = file_put_contents($file, $content,FILE_APPEND); exit;

2.扫码后页面怎么自动跳转,因为威信支付是异步的,支付完不会返回商家的页面,我这里用了一个笨的方法,让那个扫码页面不停访问后台查询订单的状态,订单状态变成支付成功了,就跳转

{literal}
<script>
//设置每隔1000毫秒执行一次load() 方法
var myIntval=setInterval(function(){load()},1000);
function load(){
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
trade_state=xmlhttp.responseText; if(trade_state == 'SUCCESS'){ //支付成功
location.href='./wxpay_success.php';
}else if(trade_state=='PAYERROR'){
// document.getElementById("myDiv").innerHTML='支付失败';
clearInterval(myIntval);
} }
}
//orderquery.php 文件返回订单状态,通过订单状态确定支付状态
xmlhttp.open("POST","native_notify.php",true);
//下面这句话必须有
//把标签/值对添加到要发送的头文件。
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("order_sn="+{$order.order_sn}); //order_sn订单号 }
</script>
{literal}

后台

//获取订单号
$ordersn = $_POST['order_sn']; $pay_status=get_goods_pay_status($ordersn); //查询订单状态
if($pay_status == '2'){
echo "SUCCESS";
exit;
}

echshop 微信扫码支付 遇到的问题的更多相关文章

  1. MVC 微信扫码支付

    微信扫码支付有两种模式, 模式一和模式二, 两者具体的区别可参考官网文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 微 ...

  2. C# 微信扫码支付 回调页面

    .NET版 微信扫码支付,官方推荐使用[模式二] 一.微信扫码支付模式一: 1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx 2.微信回调地址:http:/ ...

  3. C# 微信扫码支付API (微信扫码支付模式二)

    一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码 ...

  4. Net MVC微信扫码支付

    微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的 ...

  5. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...

  6. php微信扫码支付

    一 概述 扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信"扫一扫"完成支付的模式.该模式适用于PC网站支付.实体店单品或订单支付.媒体广告支付等场景.前几天公司需要做 ...

  7. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  8. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...

  9. Thinkphp5整合微信扫码支付开发实例

    ThinkPHP框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习 打开首页生成订单,并显示支付二维码 public function index() ...

随机推荐

  1. Gitbook安装

    Gitbook安装 Gitbook是从NMP安装的,命令行: $ npm install gitbook -g 安装完之后,你可以检验下是否安装成功: $ gitbook -V 0.4.2 如果你看到 ...

  2. 关于【cocos2dx-3.0beta-制作flappybird】教程在3.2project中出现找不到CCMenuItem.h的解决方法

    文章原文:http://blog.csdn.net/kantian_/article/details/36187141 作者升级源码.能够在3.1平台下执行. 我的是vs2013+cocos2dx-3 ...

  3. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  4. C# Firefox Session Manager 文件的导出与管理

    长时间使用Firefox会产生很多的session文件(使用了插件:Session Manager).这些文件保存了你浏览过的所有的网址.虽然我们可以使用firefox的书签功能.但有时候打开的网址过 ...

  5. 六、Socket之UDP异步传输文件-实现稳定的文件传输

    上一篇文章五.Socket之UDP异步传输文件-实现传输中取消传送中,还遗留了一个传输文件最大的问题,就是传输过程中丢包,这样在文件传输过程中就会卡住了,这篇文章就来解决文件传输中的丢包问题,实现稳定 ...

  6. 深入研究Block捕获外部变量和__block实现原理

    Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这个新功能“Blocks”.从那开始,Block就出现在iOS和Mac系统各个API中,并被大 ...

  7. iOS 8创建交互式通知

    iOS 8提供了一个令人兴奋的新API来创建交互式通知(interactive notifications),它能让你在你的应用之外为用户提供额外的功能.我发现网上还没有关于如何实现它的比较好的示例教 ...

  8. 关于Spring的IOC和DI

    原始调用模型 Spring的演化过程 Spring的调用过程 ======================================= IoC[理解][应用][重点] 1.IoC(Inversi ...

  9. CentOS 7 gedit编辑器中文乱码解决方法

    无需root登陆 打开终端输入如下命令: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB180 ...

  10. php处理字符串常用函数

    1查找字符位置函数: strpos($str,search,[int]):查找search在$str中的第一次位置从int开始: stripos($str,search,[int]):函数返回字符串在 ...