分享

微信公众账号开发模式2

 quasiceo 2016-07-07
2014-04-20 08:50 1219人阅读 评论(4) 收藏 举报
分类:

原文链接:http://hetuo./98/6/p13951590057aed

晚饭的时候发现微博不认识的人分享我快站的文章了,居然有自然流量了,O(∩_∩)O~~好吧,不说废话了,直接上正题吧:

1.在上一篇文章说到可以curl模拟登录请求获取用户微信公众平台的个人信息(微信号,原始ID,appId,Secret,账号类型等),后来在测试的过程中发现了一个问题,可能是测试频繁登录的原因,突然登录不上了,我发现返回msg是验证码不合法,之前输入的时候都没有要输入验证码,怎么突然就要输入了呢?尝试用微盟绑定的时候,直接弹出了提示框,然后就显示验证码输入框了,用户浏览器登陆微信公众账号页面也出现了,看来是微信公众平台发现账号异常后加入了验证码校验。研究了一下这个也好破,当发现返回的json信息提示验证码非法时,在form中加入一个image标签,src写如下链接即可:$img_code_src = "https://mp.weixin.qq.com/cgi-bin/verifycode?username=".$post_data['username']."&r=".mt_rand(1000000000, 9999999999); $post_data['username']是登录用户名,r参数是任意字符串,我这里取了一个随机数,这样让用户在form表单中输入验证码,post请求中加入img_code即可登录成功。

2.看到微盟智能绑定可以做到直接关闭微信公众账号的编辑模式,开启开发模式,研究了一下,直接调用接口"https://mp.weixin.qq.com/misc/skeyform?form=advancedswitchform&lang=zh_CN",需要注意的是post参数,flag设置为0表示关闭,type为1表示是编辑模式,还需要带上token,最后是referer参数得带上,不然会返回错误信息。开启开发模式只是post参数不同而已,flag设置为1表示开启,type为2表示为开发模式,然后就是token参数了,记得带referer参数。

3.这个还不够,发现微盟绑定的时候服务端URL和token都帮你改好,并且进行了服务器有效性验证,不得不佩服了,用户啥都不需要操心了,但是我得好好操心一下了。调研的结果是调用接口"https://mp.weixin.qq.com/advanced/callbackprofile?t=ajax-response&token=".$token."&lang=zh_CN",这个token是登陆后redirect链接中的token值,post请求中带上url参数(服务器URL),callback_token参数(token),这样就可以修改成功了。

tips:

a.上面的接口都记得带上登录后返回的cookie

b.在微信公众账号开发的时候是先关闭编辑模式,再开启开发模式,这个顺序不能错,不然接口会调用失败。

今天挺累的,就写这么多吧,有问题留言。


0
0

我的同类文章

猜你在找
查看评论
3楼 qq_17223213 2014-07-04 01:40发表 [回复]
哦~还有,我的QQ是442449091,要是博主不嫌弃可以QQ联系我,太感谢了!太感谢了!
Re: 强风 2014-07-06 18:40发表 [回复]
回复qq_17223213:微信公众账号的后台html结构调整了,所以无法绑定成功了,不过这个问题我已经解决了。
2楼 qq_17223213 2014-07-04 01:36发表 [回复]
博主你好,我自己的微信开发平台最近一直没法绑定微信账号,不知道是怎么回事。开发平台的代码是从别人那买的,刚装好的时候一切正常,而且原来绑定好的现在也能正常使用,就是新用户无法绑定账号了。

我在想是不是接口的问题,上边是修改开发接口的代码,跟你写的好像不太一样,楼主能不能帮我看看是不是接口的问题呀~感激不尽啊,最近着急死了。。。。。

补充:上边代码关闭编辑模式和开启开发者模式都能成功,就是没法修改微信里的url和token。
1楼 qq_17223213 2014-07-04 01:27发表 [回复]
  1. //关闭普通接口  
  2.   
  3. $http->post('/cgi-bin/skeyform?form=advancedswitchform&lang=zh_CN'array('flag'=>'0','type'=>'1','token'=>$token));  
  4.   
  5. $http->getContent(true);  
  6.   
  7. //修改开发路径  
  8.   
  9. $http->post('/cgi-bin/callbackprofile?t=ajax-response&lang=zh_CN&token='.$tokenarray('url'=>Conf::$http_path.'mpapi.html?appid='.$p->id,'callback_token'=>md5($p->id.Conf::$management_center_target)));  
  10.   
  11. $http->getContent(true);  
  12.   
  13. sleep(1);  
  14.   
  15. //开启开发接口  
  16.   
  17. $http->post('/cgi-bin/skeyform?form=advancedswitchform&lang=zh_CN'array('flag'=>'1','type'=>'2','token'=>$token));  
  18.   
  19. $http-

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多