微信公众号开发和微信网页开发的区别和要点

自媒体运营教程 产品运营 316

一、 公众号AccessToken

1 access_token是使用公众号的 APPID 和AppSecret,通过后台调用接口获取的。

2 前提条件:获取时access_token时运行的服务器ip地址需要添加到公众号的IP白名单上。

3 access_token具有有效时间通过expires_in获得,有效时间到达前要注意刷新。

4 access_token对于公众号是全局唯一的,一旦刷新,旧的就不能用了。所以要注意的是,如果你有多个应用,或者一个应用里多个模块的代码都使用同一个公众号access_token时,不能各自为政,比如每个调用的地方 都有access_token的实例,并且在它get方法里,判断是否过期过期则自动刷新,这样就会导致互相覆盖。应该建立一个全局唯一的运行代码来获取access_token,能自动更新并对外提供。

二、网页授权access_token

1 网页授权的需求场景是用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

2 前提条件:公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,填写授权回调域名,即网页的域名。

3 网页跳转到微信的授权页面,用户点击同意授权后 跳回开发者指定网页,用页面参数中的code传给服务端,服务端用code调用有关接口就可以获得网页授权access_token。从这里可以看出网页授权access_token和公众号基础支持的access_token有很大不同。

1)公众号access_token是全局唯一的,网页授权access_token是当前用户访问网页时产生的,仅对当前该用户有效。

2)公众号access_token可以通过后台直接调用微信接口获取,网页授权access_token则必须用户在授权页面同意授权后才能获取code,然后后台才能通过code得到网页授权access_token。

相关影片资源迅雷下载推荐

程序员们常用的网站开发工具都有哪些?

程序员们常用的网站开发工具都有哪些?在开发网站的时候,为了能够更加快速、高效地完成网站的制作,通常都会选择使用一些网站开发工具来协助,这种开发工具在语法提示等自动差错上有着非常好的效果。常见的网站建设 ...

网站建设,程序员们常用的网站开发工具都有哪些?

三、 公众号的参数签名和微信网页的参数签名

这个其实是我想重点吐槽的。因为这两者似是而非,表面很像,一般而言我们也觉得应该一样,因为没有必要搞得不一样啊,徒增了开发成本,但实际却又确实不一样,所以我猜测是不是微信的开发人员内部之间没有协调好导致的。我们来分析一下:

1 公众号的:

1) 将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密

2 微信网页的:

1)对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串

2) 对字符串进行sha1签名,得到signature

对于第二步,都是对拼接好的字符串进行sha1加密,一样的,就不用多说了。关键是这第一步。公众号的第一步,是将参加签名的参数的值(注意是值)按ASCII 码从小到大进行排序然后拼接在一起,而网页签名,则是按参数名称(注意是参数名称)ASCII 码从小到大进行排序,然后用 参数名=参数值&参数名=参数值...这样的方式拼接起来。

3 其实还有个细致的地方,公众号的参数里的随机数 参数名是nonce,而微信网页的参数里随机数参数名是 nonceStr,时间戳呢,大家都叫timestamp。很多时候我们在做微信网页的签名时,以为和公众号的一样,就把代码搬过来,结果悲剧了,有时搞半天都不知道问题在哪。

由于篇幅所限,本文只谈及一些要点,详细内容可参考官方开发文档,接入概述 | 微信开放文档 。希望这篇文章,对刚接触微信开发的,或者像我这种不是一直在从事微信开发,偶尔做一次记性又不好的开发人员,有一点借鉴作用。

相关影片资源迅雷下载推荐

软件开发公司都有哪几种?

不少朋友在找小编咨询软件开发问题的时候,都会提到自己曾经遇到过的不靠谱开发公司,今天小编就来给大家讲一下常见的开发公司都分为哪几种类型。第一种、营销型开发公司大部分员工都是销售自身几乎没有技术实力,软 ...

软件开发,软件开发公司都有哪几种?

企业网站建设与开发最低只要299元起,包含域名服务器,需要的联系QQ345424724,电话15516990022,18530226930

标签: 公众号开发 微信公众号开发和微信网页开发的区别和要点

抱歉,评论功能暂时关闭!