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;
}
时间: 2024-11-05 20:25:45

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

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

[C#]C# 微信扫码支付 回调页面 C# 微信扫码支付 回调页面 .NET版 微信扫码支付,官方推荐使用[模式二]一.微信扫码支付模式一:1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx是在公众账号平台里面设置的,如下图 二.微信扫码支付模式二:1.回调页面:官方demo中example文件下的ResultNotifyPage.aspx2.微信回调地址:http:/

JAVA微信扫码支付模式二功能实现以及回调

一.准备工作 首先吐槽一下微信关于支付这块,本身支持的支付模式就好几种,但是官方文档特别零散,连像样的JAVA相关的demo也没几个.本人之前没有搞过微信支付,一开始真是被它搞晕,折腾两天终于调通了,特此写下来,以享后人吧! 关于准备工作,就"微信扫码支付模式二"官方文档地址在这 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 可以先看看,实际上需要准备的东西有以下几个: 其中APP_ID和APP_SECRET

ThinkPHP微信扫码支付接口

最近折腾微信扫码支付,看了微信官方文档,找了很多网页,发现和文档/demo不匹配,现在自己算是弄出来了(文件名称有所更改),贴出来分享一下 一.将有用的官方lib文件和使用的相关文件放置到vendor当中 二.调用同一支付接口 WechatController //调用同一支付接口public function native($v_oid='',$v_amount=''){ ini_set('date.timezone','Asia/Shanghai'); error_reporting(E_E

微信扫码支付官方配置

微信扫码支付官方API: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 .net C# SDK: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1 介绍扫码支付模式一: 首先要配置:微信公众平台>微信支付>开发配置 支付授权目录:就是项目中存放官方SDK的运行路径.例如:http://www.xxxx.com/Wx/或者http://www.

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

一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码支付模式二) 1. 公众账号ID,公众账号secert ,地址:https://mp.weixin.qq.com/ 2. 商户号,商户支付密钥KEY,商户平台地址:https://pay.weixin.qq.com/ 5. 部署的服务器终端ip及回调页面 (1)部署的服务器终端ip:即程序部署所在的

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

.NET版 微信扫码支付,官方推荐使用[模式二] 一.微信扫码支付模式一: 1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx 2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx 是在公众账号平台里面设置的,如下图 二.微信扫码支付模式二: 1.回调页面:官方demo中example文件下的ResultNotifyPage.aspx 2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx

Net MVC微信扫码支付

微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的参数是‘公众账号ID(appid)’,‘商户号(mch_id)’和’商户支付密钥(KEY)‘,所以首先要有一个审核过的公众号,并开通支付功能,然后申请商户,通过审核后得到商户号,也就是商户平台的登录名.商户支付密钥是用来签名的,确保url不被篡改.进入商户平台后在API安全中设置,是一个32位的字符

微信开发笔记:微信扫码支付详解

作为一个PC端的在线购物类网站,具备微信支付的功能自然是必须要有的,那么我们就来详细的看一下微信支付平台提供的微信扫码支付的使用流程: 首先你必须要有一个完成认证的服务号,申请开通微信支付功能,我们可以获得appid 和mch_id (也称为partnerid),之后就会是一个向微信支付平台提交一个支付请求来换取一个支付链接的过程: class wxpay{ function __construct(){ $this->wxpay(); } function wxpay(){ } /** * 生

微信扫码支付(模式一)

项目开源地址:http://git.oschina.net/javen205/weixin_guide 微信扫码支付(模式一)你有测试成功吗?如果你看到了这篇文章,我想你是在测试中遇到问题了.OK 那现在我们来看看微信扫码支付中的坑. 原生支付URL参数错误 回调接口URL有回调,但是接收不到参数 商户后台返回的数据字段结构不合法 获取商户订单信息超时或者商户返回的httpcode非200 官方文档地址:https://pay.weixin.qq.com/wiki/doc/api/native.