echshop 微信扫码支付 遇到的问题
参考的网站
(转)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 微信扫码支付 遇到的问题的更多相关文章
- MVC 微信扫码支付
微信扫码支付有两种模式, 模式一和模式二, 两者具体的区别可参考官网文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 微 ...
- C# 微信扫码支付 回调页面
.NET版 微信扫码支付,官方推荐使用[模式二] 一.微信扫码支付模式一: 1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx 2.微信回调地址:http:/ ...
- C# 微信扫码支付API (微信扫码支付模式二)
一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码 ...
- Net MVC微信扫码支付
微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的 ...
- 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...
- php微信扫码支付
一 概述 扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信"扫一扫"完成支付的模式.该模式适用于PC网站支付.实体店单品或订单支付.媒体广告支付等场景.前几天公司需要做 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
- Thinkphp5整合微信扫码支付开发实例
ThinkPHP框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习 打开首页生成订单,并显示支付二维码 public function index() ...
随机推荐
- [Open Projects Series] ViewPagerTransforms
https://github.com/jfeinstein10/JazzyViewPager https://github.com/ToxicBakery/ViewPagerTransforms
- 在iOS中怎样创建可展开的Table View?(上)
原文地址 本文作者:gabriel theodoropoulos 原文:How To Create an Expandable Table View in iOS 原文链接 几乎所有的app都有一个共 ...
- percona监控模板图形解释
http://blog.itpub.net/28916011/viewspace-1971933/ percona监控mysql的几张图形解释 最近,我仔细研究了一下percona监控mysq ...
- PHP 环境塔建与数据类型转换
手动塔建PHP开发环境 安装php c:\apps\php 安装apache c:\apps\apache 1.配制apache 配制c:\apps\apache\conf\httpd.conf Do ...
- cocos2d 小游戏
今天写了一个小游戏,发现看过的代码自己来写还是会经常出错,还是要多自己动手写写哈. 先上几张游戏界面图 void HelloWorld::addTarget() { //首先初始化精灵 CCSprit ...
- android的项目文件介绍
1.res目录存放Android的各种资源文件,比如layout存放布局文件main.xml,values存放各种xml格式的资源文件,字符串资源strings.xml,颜色资源文件:colors.x ...
- Migration from Zend Framework v2 to v3
Migration from Zend Framework v2 to v3 Zend Framework v2 to v3 has been intended as an incremental u ...
- Android(java)学习笔记137:Android中SimpleAdapter,ArrayAdapter和BaseAdapter常见的适配器
1.SimpleAdapter(BaseAdapter子类扩展类): simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片)等.可以显示比较复杂的列表, ...
- fstat - 读取文件相关信息
#fstat读取到的信息 ["dev"]=> int(16777220) ["ino"]=> int(66880002) ["mode&q ...
- C++的三大特性之一继承
一.继承的相关基本概念 1.继承的定义 在C++中,可以使用继承来使新类得到已定义的一些类中的特性,这就好比与孩子从父亲母亲得到遗传类似,所以我们称原有的类为基类或父类,用原有类来生成新的类的 ...