thinkphp整合系列之微信公众号支付

公众号支付是指在微信app中访问的页面通过js直接调起微信支付;

因此页面必须是在微信中打开的;

示例项目:https://github.com/baijunyao/thinkphp-bjyadmin

一:设置域名

登录微信公众平台;

微信支付中设置支付授权目录;把域名改为自己的;

注意最后是有一个斜线的 /

白俊遥博客

设置授权域名;

白俊遥博客

二:导入sdk

/ThinkPHP/Library/Vendor/Weixinpay

好吧;还是没忍住要吐槽;鹅厂的sdk那酸爽谁用谁知道;项目中的sdk是我根据官方文档重构精简打造而成的;

需要注意的是170行处的商品数据需要根据业务实际情况从数据库中获取;

$openid=$result['openid'];
// 订单数据  请根据订单号out_trade_no 从数据库中查出实际的body、total_fee、out_trade_no、product_id
$order=array(
    'body'=>'test',// 商品描述(需要根据自己的业务修改)
    'total_fee'=>1,// 订单金额  以(分)为单位(需要根据自己的业务修改)
    'out_trade_no'=>$out_trade_no,// 订单号(需要根据自己的业务修改)
    'product_id'=>'1',// 商品id(需要根据自己的业务修改)
    'trade_type'=>'JSAPI',// JSAPI公众号支付
    'openid'=>$openid// 获取到的openid
);

三:配置项

/Application/Common/Conf/config.php

    'WEIXINPAY_CONFIG'       => array(
        'APPID'              => '', // 微信支付APPID
        'MCHID'              => '', // 微信支付MCHID 商户收款账号
        'KEY'                => '', // 微信支付KEY
        'APPSECRET'          => '', // 公众帐号secert (公众号支付专用)
        'NOTIFY_URL'         => 'http://baijunyao.com/Api/Weixinpay/notify', // 接收支付状态的连接
        ),

在微信公众平台和微信支付平台凑齐上面这些参数;

四:支付方法

/Application/Api/Controller/WeixinpayController.class.php

/**
 * 公众号支付 必须以get形式传递 out_trade_no 参数
 * 示例请看 /Application/Home/Controller/IndexController.class.php
 * 中的wexinpay_js方法
 */
public function pay(){
    // 导入微信支付sdk
    Vendor('Weixinpay.Weixinpay');
    $wxpay=new \Weixinpay();
    // 获取jssdk需要用到的数据
    $data=$wxpay->getParameters();
    // 将数据分配到前台页面
    $assign=array(
        'data'=>json_encode($data)
        );
    $this->assign($assign);
    $this->display();
}

需要html的配合:/tpl/Api/Weixinpay/pay.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="text-align: center;">

<button onclick="getOrder()">购买</button>


<jquery />
<script>

function onBridgeReady(){
    var data={$data};
    WeixinJSBridge.invoke(
        'getBrandWCPayRequest', data, 
        function(res){
            if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。
            }else{
                alert(res.err_code+res.err_desc+res.err_msg); // 显示错误信息
            }
        }
    );
}

 if (typeof WeixinJSBridge == "undefined"){
     if( document.addEventListener ){
         document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
     }else if (document.attachEvent){
         document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
         document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
     }
 }else{
      onBridgeReady();
 }

</script>
</body>
</html>

调用示例:/Application/Home/Controller/IndexController.class.php 中的wexinpay_js方法

/**
 * 微信 公众号jssdk支付
 */
public function wexinpay_js(){
    // 此处根据实际业务情况生成订单 然后拿着订单去支付

    // 用时间戳虚拟一个订单号  (请根据实际业务更改)
    $out_trade_no=time();
    // 组合url
    $url=U('Api/Weixinpay/pay',array('out_trade_no'=>$out_trade_no));
    // 前往支付
    redirect($url);
}

五:异步接收通知

/Application/Api/Controller/WeixinpayController.class.php

/**
 * notify_url接收页面
 */
public function notify(){
    // 导入微信支付sdk
    Vendor('Weixinpay.Weixinpay');
    $wxpay=new \Weixinpay();
    $result=$wxpay->notify();
    if ($result) {
        // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id
        
    }
}

//*********************************增加curl_get_contents函数的分割线****************************

如果是整合到自己的项目中;则需要在自己的公共函数中增加curl_get_contents;

/Application/Common/Common/function.php

/**
 * 使用curl获取远程数据
 * @param  string $url url连接
 * @return string      获取到的数据
 */
function curl_get_contents($url){
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);                //设置访问的url地址
    // curl_setopt($ch,CURLOPT_HEADER,1);               //是否显示头部信息
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);               //设置超时
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);   //用户访问代理 User-Agent
    curl_setopt($ch, CURLOPT_REFERER,$_SERVER['HTTP_HOST']);        //设置 referer
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);          //跟踪301
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        //返回结果
    $r=curl_exec($ch);
    curl_close($ch);
    return $r;
}

//*************************关于签名错误的补充*********************************

如果出现签名错误;

可以使用官方的 微信公众平台支付接口调试工具

跟自己生产的签名对比;

然后对比配置;查找不一致的地方;

//*****************关于不知道怎么查看异步发过来的数据的补充*****************

2016.10.28:

好多童鞋在问支付后;不知道怎么查看接收到的支付状态通知;

这里做个补充;首先;我们的服务器必须是外网可以正常访问到的;

必须注意不能有 登录或者权限之类的拦截;

另外补充一个简单的查看收到的内容的方法用于测试;

五:异步接收通知

/Application/Api/Controller/WeixinpayController.class.php

/**
 * notify_url接收页面
 */
public function notify(){
    // 下面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;
    file_put_contents('./notify.text', json_encode($_POST));
    // 导入微信支付sdk
    Vendor('Weixinpay.Weixinpay');
    $wxpay=new \Weixinpay();
    $result=$wxpay->notify();
    if ($result) {
        // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id
        
    }
}


白俊遥博客
请先登陆后发表评论
  • 最新评论
  • 总共35条评论
白俊遥博客

就这样“ i”了:'NOTIFY_URL'         => 'http://milejia.wz-kj.cn/Api/Weixinpay/notify', // 接收支付状态的连接我的接收支付链接是这个,但是支付完成没有任何反应,我是按照你这个支付来做的,是不是只用改这个链接,然后在public function notify(){    // 下面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;//  file_put_contents('./notify.text', json_encode($_POST));    // 导入微信支付sdk    Vendor('Weixinpay.Weixinpay');    $wxpay=new \Weixinpay();    $result=$wxpay->notify();    if ($result) {            // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id             }}这个方法这修改订单状态,还需要填什么东西吗?

2016-12-05 13:10:03 回复

白俊遥博客
  • 云淡风晴 回复 就这样“ i”了:接收到通知;改订单状态就行了;
  • 2016-12-05 23:04:06 回复
白俊遥博客

张一丁:加个qq呗

2016-11-28 16:49:19 回复

白俊遥博客

Mr.Insight:我是osc上的吾字天河哦......过来看看你的blog  学习  学习

2016-11-19 18:55:45 回复

白俊遥博客
  • 云淡风晴 回复 Mr.Insight:多谢捧场;
  • 2016-12-05 23:02:38 回复
白俊遥博客

杨小刚白俊遥博客看你博客都半年了 以前一个账号丢了 

2016-11-14 10:59:15 回复

白俊遥博客
  • 云淡风晴 回复 杨小刚:多谢捧场;
  • 2016-11-15 23:43:35 回复
白俊遥博客

(͡·̮̃·̃) :在notify方法判断返回是否成功吗 为什么在那下面写插入数据库的业务逻辑的时候有几个人会有插入两条的情况呢,两条订单号是一个 所以只是支付一次 为什么插入数据库两次呢

2016-11-10 17:56:49 回复

白俊遥博客
  • 如日中天丶 回复 (͡·̮̃·̃) :你不加个判断?先从数据库查出订单状态 再根据这个状态去处理
  • 2016-11-10 18:56:33 回复
白俊遥博客
  • 云淡风晴 回复 (͡·̮̃·̃) :可能是微信那边没有正确接收到成功的返回值;
  • 2016-11-10 22:53:59 回复
白俊遥博客

如日中天丶:'NOTIFY_URL'         => 'http://www.xxx.com/index.php/Api/WeixPay/notify', // 接收支付状态的连接~~~~~为什么接不到通知呢?

2016-11-10 08:03:40 回复

白俊遥博客
  • 云淡风晴 回复 如日中天丶:生成notify.text文件了么?
  • 2016-11-10 22:52:36 回复
白俊遥博客
  • 如日中天丶 回复 云淡风晴白俊遥博客是WeixinPay 不是WeixPay
  • 2016-11-11 14:00:35 回复
白俊遥博客

如日中天丶:请问楼主,,,,为什么/ThinkPHP/Library/Vendor/Weixinpay/Weixinpay.php 的getParameters方法里 将订单信息写入数据库写入不了呢??????????M('Orders')->add(array( 'order_no' => $out_trade_no, 'subject' => $order['body'], 'total_fee' => $order['total_fee'], 'ctime' => time(), ));

2016-11-09 18:19:55 回复

白俊遥博客
  • 如日中天丶 回复 如日中天丶:是我配置错数据库了(我安装的时候老是提示数据库链接错误,只好自己导入sql了,然后建了个db.php文件自己配置)
  • 2016-11-09 19:10:38 回复
白俊遥博客

-_-#:请问支付二维码,怎么弄呢

2016-11-07 10:19:34 回复

白俊遥博客
  • 云淡风晴 回复 -_-#:http://baijunyao.com/article/77
  • 2016-11-07 22:46:37 回复
白俊遥博客

憧憬白俊遥博客 if(res.err_msg == "get_brand_wcpay_request:ok" ) {   这里有问题的!! 复制官方的代码那个冒号:是中文的冒号!要改为英文的冒号才行~坑了我也好久!!

2016-10-22 14:58:58 回复

白俊遥博客
  • 云淡风晴 回复 憧憬:多谢提醒;已更改;
  • 2016-10-23 09:48:55 回复
白俊遥博客

极致feng行新:请先登陆后发表评论你好,非常感谢,,,整合了TP后发现异步接收通知不起作用,,,支付成功后根本没有调用notify_url接收页面

2016-10-05 02:11:50 回复

白俊遥博客
  • 云淡风晴 回复 极致feng行新:NOTIFY_URL填写对;是会走的;不过这个过程是看不见的;
  • 2016-10-09 07:20:11 回复
白俊遥博客

蜗牛:我们公司微信支付总有客户反映支付失败,我们测试没问题,后来问的微信那边的人看日志说是prepayid为空,好像签名什么的有问题,但是我们测试一切都正常,很急,这是怎么回事

2016-09-21 22:24:29 回复

白俊遥博客
  • 云淡风晴 回复 蜗牛:是否是重复支付一个订单号?
  • 2016-10-09 07:20:44 回复
白俊遥博客

4暮:请问下你这有没有wap站H5支付集成的微信支付呢

2016-09-19 16:26:58 回复

白俊遥博客
  • 云淡风晴 回复 4暮:没有wap站的支付的;
  • 2016-09-19 21:57:45 回复
白俊遥博客

壞壞、、:建议在完善一下,源码很好用,写的也很清晰,就是功能太少了 ,查询订单  红包  退款等等加上就好了  

2016-09-18 04:02:55 回复

白俊遥博客
  • 云淡风晴 回复 壞壞、、:恩恩;过后慢慢完善了;
  • 2016-09-18 22:43:43 回复
白俊遥博客

快乐的刘扬:get_brand_wcpay_request:ok  群主你这里写错了.5555555害我弄好久

2016-09-14 17:14:36 回复

白俊遥博客
  • 云淡风晴 回复 快乐的刘扬:木有写错吧;我都是非常懒的复制的微信官方文档的代码;https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
  • 2016-09-15 08:13:47 回复
白俊遥博客
  • 壞壞、、 回复 快乐的刘扬:支付结果 ok  没错呀
  • 2016-09-18 04:03:52 回复
白俊遥博客

快乐的刘扬:请问,支付成功后,为什么前端的js回调没有成功

2016-09-14 16:39:20 回复

白俊遥博客

守护幸福:已经解决了。是curl_get_contents这个函数的问题,在网上又找了一个,可以用了。

2016-09-12 20:53:27 回复

白俊遥博客
  • 云淡风晴 回复 守护幸福:麻烦分享下代码?我处理下看是哪的错误;
  • 2016-09-12 21:49:16 回复
白俊遥博客
  • 守护幸福 回复 云淡风晴:function httpGet($url) {    $curl = curl_init();    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);    curl_setopt($curl, CURLOPT_TIMEOUT, 500);    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);    curl_setopt($curl, CURLOPT_URL, $url);     $res = curl_exec($curl);    curl_close($curl);    return $res;}这代码我的可以用。 
  • 2016-09-12 21:54:24 回复
白俊遥博客
  • 守护幸福 回复 云淡风晴:另外就是,只要一修改价格的地方就会提示:调用支付JSAPI缺少参数:$Key0$.
  • 2016-09-12 21:55:48 回复
白俊遥博客
  • 守护幸福 回复 守护幸福:找到问题了。确实是重复支付造成的。 
  • 2016-09-12 22:06:21 回复
白俊遥博客

守护幸福:使用了你的整合教程,我也遇到了个很奇怪的问题,虽然把curl_get_contents代码复制进公共函数中了,但是在获取OPENID的时候,一直获取不到。不知道是什么问题引起的。总是返回NULL。生成的URL参数直接访问,可以得出JSON的数据,但是就是curl_get_contents($res)这行代码一直返回NULL。

2016-09-12 12:53:57 回复

白俊遥博客

Fighting Man:你好,谢谢你的分享,但是我也遇到了一个问题就是,只要把totalfee修改为不是1的数就不能支付,提示调用jsapi缺少参数$key0$

2016-09-11 23:34:46 回复

白俊遥博客
  • 云淡风晴 回复 Fighting Man:查看下是否是订单重复支付?
  • 2016-09-12 21:56:30 回复
白俊遥博客
  • 厦门_xu2026 回复 Fighting Man:totalfee不为1的时候,prepay_id为空,就不能支付了,到现在都没解决吗?
  • 2016-10-06 11:11:19 回复
白俊遥博客
  • 云淡风晴 回复 厦门_xu2026:那是重复支付了一个订单号的症状;订单号要保证唯一;切不能重复支付;
  • 2016-10-09 07:22:18 回复
白俊遥博客

Player I:你好 读了你的文章受益匪浅 但是在实际使用中有几个问题希望能得到你的解答$order数组我修改body和total_fee为test和1 以外的值就无法完成支付,打开页面微信支付的窗口一闪而过

2016-09-07 16:51:09 回复

白俊遥博客
  • Player I 回复 Player I:2.还有一个疑问 $out_trade_no = I('get.state', 0, 'intval'); 这个$_GET['state']参数是什么?
  • 2016-09-07 16:57:58 回复
白俊遥博客
  • 云淡风晴 回复 Player I:换一个订单号;再支付试试?
  • 2016-09-07 23:48:22 回复
白俊遥博客
  • 云淡风晴 回复 Player I:$_GET['state'] 就是订单号;
  • 2016-09-07 23:49:31 回复
白俊遥博客

香蕉你个banana白俊遥博客大神,跪求一篇关于微信开发的帖子

2016-09-06 14:30:33 回复

白俊遥博客
  • 云淡风晴 回复 香蕉你个banana:后期有空可以整理;
  • 2016-09-06 23:35:37 回复
白俊遥博客

白。:白老师,新手这里求助,我这里C方法获取不到WEIXINPAY_CONFIG的配置参数,同时getparameters方法中的$config会报未定义变量的错误

2016-09-06 11:26:59 回复

白俊遥博客
  • 云淡风晴 回复 白。:在别的地方C函数可以使用吗?
  • 2016-09-06 23:35:13 回复
白俊遥博客

switch多了些break:没有看到cert文件夹的文件在哪有调用啊 

2016-09-05 22:33:01 回复

白俊遥博客
  • 云淡风晴 回复 switch多了些break:恩恩;支付没有用到;后续补充的其他操作会用到;
  • 2016-09-05 22:44:38 回复
白俊遥博客
  • switch多了些break 回复 云淡风晴:跳转至pay界面的时候微信支付的提示一闪而过,提示支付失败  没有找到原因
  • 2016-09-06 17:13:09 回复
白俊遥博客
  • switch多了些break 回复 云淡风晴:真如“博美云-胡工”所说的 最好加上 alert(res.err_code+res.err_desc+res.err_msg); 这样才好排错,不过问题又来了,think的普通模式支付授权目录应该怎么填呢
  • 2016-09-06 19:14:57 回复
白俊遥博客
  • switch多了些break 回复 switch多了些break:搞定了 分享下,如果大家是普通模式的话 域名后面只跟一个“/”就可以了
  • 2016-09-06 20:04:40 回复
白俊遥博客

4暮:wexinpay_js 能否在这个方法下直接调用起支付。而不是跳转到pay页面

2016-09-01 19:08:05 回复

白俊遥博客
  • 云淡风晴 回复 4暮:可以的;把js封装成一个函数;然后调用函数就可以了;
  • 2016-09-01 22:14:59 回复
白俊遥博客

メ Syd`zero_波:你好,请问一下你的pay.html中的getOrder()方法是在哪里实现的?求指导

2016-08-28 10:55:41 回复

白俊遥博客
  • 云淡风晴 回复 メ Syd`zero_波:恩恩;谢谢提醒;我在文中注明下;现在是默认进入页面后直接就弹出支付;如果想点击按钮支付;那写一个getOrder的函数;把pay.html中的js整个放在getOrder函数中即可;
  • 2016-08-28 18:11:38 回复
白俊遥博客

韩小明:非常感谢分享代码,以后会有帮助。

2016-08-25 18:48:13 回复

白俊遥博客

頖亂灬:你好,我按照你的教程整合到tp里面去,但支付成功之后,不会回调回来,找了很久找不到原因的

2016-08-25 17:08:19 回复

白俊遥博客
  • 云淡风晴 回复 頖亂灬:html中的js部分是有接受支付成功后的方法的;
  • 2016-08-25 23:48:19 回复
白俊遥博客

黑白蓝:这个必须过来赞一个,你的开源项目给了大家很大的参考帮助,让人少踩很多坑,非常感谢!望继续集成更多实用的东西,加油!!

2016-08-17 23:47:31 回复

白俊遥博客
  • 云淡风晴 回复 黑白蓝:谢谢支持;
  • 2016-08-18 00:04:14 回复
白俊遥博客
  • 卡兰多 回复 云淡风晴:真的非常实用,分享的技术文章明朗清晰,感谢你所带来的付出和帮助,非常感谢
  • 2016-08-20 17:24:06 回复
白俊遥博客

博美云-胡工:我跟踪调试,发现是getParameters()函数的$result=curl_get_contents($url)返回值是false,但是$url我输出的结果是对的,然后下一句$result=json_decode($result,true); 这句的返回值是null,我怀疑问题出在这里。。

2016-08-14 08:33:24 回复

白俊遥博客
  • 云淡风晴 回复 博美云-胡工:你是直接用bjyadmin填写配置项?还是整合到自己已有的项目中呢?如果是整合到自己的项目中;需要增加curl_get_contents函数;我更新到文章的后边了;
  • 2016-08-14 10:42:54 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:嗯,注意到了那个函数,已经加入。。。
  • 2016-08-14 12:44:43 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:关键是这个$url,里面的参数,appid,密匙,openid,里面都对了,所以我想问问你的话,这个$result正确的话,是返回一个怎样的值...
  • 2016-08-14 12:46:46 回复
白俊遥博客
  • 云淡风晴 回复 博美云-胡工:$url 里面有APPID、APPSECRET、code 三个参数;$result返回正确的话有openid、expires_in等;需要用的就是这个openid;
  • 2016-08-14 14:14:32 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:参数我都输出了,是对的,我$result=curl_get_contents($url)的返回值直接输出结果是false,在看是哪里问题..
  • 2016-08-14 14:36:04 回复
白俊遥博客
  • 云淡风晴 回复 博美云-胡工:返回false一般是url有问题;打印$url看看是什么?
  • 2016-08-14 15:17:30 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:"https://api.weixin.qq.com/sns/oauth2/access_token?appid=**********&secret=**********&code=**********&grant_type=authorization_code"
  • 2016-08-14 15:35:45 回复
白俊遥博客
  • 博美云-胡工 回复 博美云-胡工:参数值确定是没问题的,是不是少传了什么参数?
  • 2016-08-14 15:37:18 回复
白俊遥博客
  • 云淡风晴 回复 博美云-胡工:跟参数没有关系的;不应该返回false;你直接调用curl_get_contents('http://baijunyao.com');看是否也是返回false;再或者把我的这个示例项目下载下来;然后补充配置项;看可以正常支付不?
  • 2016-08-14 15:59:06 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:PC端的扫码支付,我调试成功了,就卡在公众号支付这里,我再仔细对比看看……搞好了,再告知原因
  • 2016-08-14 19:09:56 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:找到原因了,生成的支付参数,我通过微信的在线接口调试程序生成的签名,和我程序里生成的签名比对,发现不一样,参数我都统一输出逐一比对了,大小写都是一样,但是生成签名结果不一致。。怪了。。。
  • 2016-08-14 23:23:10 回复
白俊遥博客
  • 博美云-胡工 回复 博美云-胡工:调试完成了,现在就只提示我当前页面的URL未注册...估计是我们这个服务地址的问题了,
  • 2016-08-15 11:23:02 回复
白俊遥博客
  • 博美云-胡工 回复 云淡风晴:感谢白老师!调好了!你的代码没有问题,页面部分文件建议大家加上WeixinJSBridge.log(res.err_msg); alert(res.err_code+res.err_desc+res.err_msg);参考下官网的demo才醒悟。真的需要耐心,需要大家沉下来多琢磨……
  • 2016-08-15 15:12:55 回复
白俊遥博客
  • 云淡风晴 回复 博美云-胡工:客气了;调试好了就好;
  • 2016-08-15 21:44:42 回复
白俊遥博客

博美云-胡工:你好,俊哥,我调试出pay界面了,出pay界面的时候的有个微信支付的提示一闪而过,然后在pay界面点击购买无任何反应了,找不出哪里的问题了..

2016-08-14 08:28:29 回复

白俊遥博客

二哥有点潮:还是没怎么明白怎么弄?

2016-08-09 16:58:09 回复

白俊遥博客

盘古网络_张书伟:file_get_contents('php://input', 'r') 这个php://input 是什么意思啊

2016-08-08 14:43:21 回复

白俊遥博客
  • 云淡风晴 回复 盘古网络_张书伟:http://php.net/manual/zh/wrappers.php.php
  • 2016-08-08 18:23:50 回复
白俊遥博客

☀☀☀☀☀☀:bjyadmin.bjy_users' doesn't exist 而且index.php界面很简陋,好像没CSS的样子

2016-08-08 11:53:14 回复

白俊遥博客
  • 云淡风晴 回复 ☀☀☀☀☀☀:在哪个地方报的这个错?额;事实上却是没有css;
  • 2016-08-08 18:23:04 回复
白俊遥博客

~:你好,请问公众号支付是否支持子域名,我按照你的设置老是提示 “AppID 参数错误”config里面的参数都是按照实际设置的,支付授权目录和域名都设置了,只不过我的是子域名 demo.xxx.com,不知道是不是这原因

2016-08-06 09:24:16 回复

白俊遥博客
  • 云淡风晴 回复 ~:你微信后台中设置的域名是子域名还是顶级域名?
  • 2016-08-07 21:14:52 回复
白俊遥博客

Pmd:最近项目中用到的很多东西都是从你这里找到了方向!谢谢 嘿嘿

2016-07-28 11:03:46 回复

白俊遥博客

Frances:代码和方法都特别有帮助,跪等APP接微信支付白俊遥博客

2016-07-19 16:01:10 回复

白俊遥博客
  • 云淡风晴 回复 Frances:谢谢;有的;第五步的这个异步接收通知就可以对接app的微信支付;
  • 2016-07-19 21:31:04 回复