原文链接:http://hetuo.kuaizhan.com/70/28/p1382371171f506

最近调研微信公众平台,因为要接入,踩了一些坑,记录一下。

1.账号类型:未认证的微信公众平台订阅号能够在开发者模式下做的事情很少,只能回复消息啥的,回复带图片的消息,需要通过先上传图片资源,上传图片是需要access_token,而获取access_token是需要appId和secret的,而未认证的微信公众平台订阅号没有这个。目前知道的服务号有appId和secret,可以做的事情很多,没有认证的订阅号账号,但是估计应该也有appId和secret,因为认证的订阅号是可以自定义菜单的(自定义菜单需要access_token)。

2.账号密码一键搞定:产品同学发现微盟可以让用户直接输入微信公众账号和密码进行第三方的接入,我第一反应觉得这是极不安全的,因为账号和密码暴露给了第三方,但是这样极大的方便了用户,用户接入成本降低,他不需要知道appId和secret是什么,微盟目前这样做说明得到了用户的认可,用户在安全和方便之间做了选择。这样获取用户appId和secret就需要模拟微信公众账号登录,抓取网页html数据来获取用户的appId和secret,用户工作减少了,工作都交给后台服务器了。这里主要是通过chrome 的console查看微信公众账号请求数据的,需要注意的是请求要设置referer参数,php代码:curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/"); 不然会返回错误信息,之后需要保存cookie到一个文件中。php代码:$cookie_jar = tempnam('./tmp','cookie'); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); 之后redirect请求的时候带上这个cookie进行页面跳转 php代码:curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar); 抓取html中数据用的是simplehtmldom,可以在sourceforge上找到源码,通过像css选择器一样的方式查找html标签,非常方便。

3.区分服务:服务器端提供一个接口需要进行最初的有效性认证,也要满足之后的消息回复功能,这里需要区分微信那边来的请求是哪一种,这里判断_GET["echostr"]是否为空即可,不为空即为有效性认证,为空即为接收消息或者事件。

4.之前一直以为必须得有一个服务号才能测试,后来发现还是可以申请测试账号的,链接如下 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 不过要抓取html来获取appId和secret的话,还是需要服务号和认证的订阅号账号密码的,因为需要知道html的结构。

未完待续,写的比较仓促,错误之处欢迎批评指正。

如有疑问可以在论坛中发帖提问或者直接评论提问,我会尽量一一回复。

微信公众账号开发模式1相关推荐

  1. 微信公众账号开发模式2

    原文链接:http://hetuo.kuaizhan.com/98/6/p13951590057aed 晚饭的时候发现微博不认识的人分享我快站的文章了,居然有自然流量了,O(∩_∩)O~~好吧,不说废 ...

  2. 微信公众账号开发模式接入

    昨天把一个微信公众号从"编辑模式"转入了"开发模式",捣鼓了一天,算是完成了该公众号的个人开发计划的第一步.这里简单记录一下如何在公众平台上"成为开发 ...

  3. 微信公众平台开发模式背后的原理?

    微信公众平台开发模式背后的原理? 想利用微信提供的网络通道实现自己的业务要求,想了解其背后的技术原理.给出建议或信息来源都好. 添加评论分享 查看全部 2 个回答 吴星,你好,很喜欢这个能学到许多知识 ...

  4. 编程语言PHP实现微信公众账号开发

    编程语言PHP实现微信公众账号开发 1.首先需要一个可以外网访问的接口url. 我这里是申请的新浪免费云服务器,http://xxxxx.applinzi.com/wx.php,具体自己可以去新浪云中 ...

  5. ICCMO微信公众账号开发系列(2)打造微信聊天机器人

    昨天我们已经成功的接入了微信公众账号.今天咱们来做一个微信聊天机器人.这个就需要一点点PHP的知识了.如果你不懂PHP呢,没关系,跟着一步一步做也 可以做出来. 这是在昨天的基础上做的,如果你还不会接 ...

  6. 微信公众账号开发利器 - jQuery WeUI V0.6.0 发布

    jQuery WeUI 是一个专门为对微信公众账号开发的一套UI库,它包含了 WEUI 的全部组件,另外还拓展了大量的常用组件,包括下拉刷新.滚动加载.日历.select 等. jQuery WeUI ...

  7. php判断微信内核,JavaScript_如何判断微信内置浏览器(通过User Agent实现),在进行微信公众账号开发的时 - phpStudy...

    如何判断微信内置浏览器(通过User Agent实现) 在进行微信公众账号开发的时候,其中很大一块是微站点的开发,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢? 微信内置浏览器的 Use ...

  8. 微信公众账号开发接口实现 - java servlet

    原文:微信公众账号开发接口实现 - java servlet 源代码下载地址:http://www.zuidaima.com/share/1550463697898496.htm 微信公众平台开发接口 ...

  9. 微信公众账号开发入门

    此文记录了微信公众号开发的整个流程,想要调用微信 JS API 并非直接引入一个 jweixin-1.0.0.js 到页面里那么简单.需要获取 access_token, jsapi_ticken 和 ...

最新文章

  1. 任正非最新署名文章:不要因为美国打压而放弃全球化战略
  2. linux内核网络协议栈--发送流程及函数(十)
  3. spring处理方法返回值的类型
  4. 【LOJ166】拉格朗日插值2【拉格朗日插值】【NTT卷积】
  5. openshift_Openshift源中的高可用性Drools无状态服务
  6. 使用Xunit来进行单元测试
  7. LTE网络架构及鉴权
  8. Quartz时间配置(周期任务)
  9. 【UVA221】Urban Elevations(建筑物可视问题-数学题)
  10. Android开发之Activity(实现Activity跳转)
  11. CGAN和InfoGAN理解
  12. 笔记本连接android手机屏幕,实现手机、电脑屏幕共享的7个步骤
  13. 免费wiki系统php,HDWiki
  14. 读书笔记之一平米健身:硬派健身
  15. filco蓝牙不好用_FilcoMinilaAir蓝牙机械键盘使用感受,做工精细手感优良但并不完美...
  16. centos7下zeppelin安装配置
  17. java 实现对数据表的备份与还原(备份与还原 到服务器中)
  18. 在vue/html中添加单选按钮
  19. 概率密度雅可比行列式
  20. Office LTSC 2021离线安装ISO镜像

热门文章

  1. jQuery选择器及jQuery基本操作
  2. jQuery选择器重点总结
  3. 个人形象设计之服装配色技巧
  4. np.c_[xx.ravel(),yy.ravel()]
  5. 系统集成项目管理工程师备考资料(口袋应试第二版总结及目录)
  6. 阿帕奇骆驼#3-RabbitMq
  7. C# 删除文件(一)
  8. 电脑看不到android文件夹,电脑无法查看安卓手机外部存储(emulated)文件原因及解决方法...
  9. linux下各类常用make命令解释(make/make clean/make distclean)
  10. AI人才缺口百万!未来已来,教育部今年批准新增AI专业!