关于微信公众号的一些问题
Posted 浣溪山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于微信公众号的一些问题相关的知识,希望对你有一定的参考价值。
一、先说说公众号转发地址的配置问题
这个位置的服务器配置填写的url要能浏览器访问的,也就是必须是通的,其次,代码开始部分必须有验证逻辑
即:
在配置上面的url的时候,微信会发起验证,验证里面有个叫echostr的参数,要原样,注意,是原样打印出来。
也就是检测到有echostr这个参数的时候,就什么都不做,直接把echostr的值输出出去就好了。
否则会验证不通过。
其次,配置url位置的上面有个配置IP地址的选项,就是在AppID和APPSecret的下面。
要配置的url的域名所在的真实IP地址要放到IP白名单里才能正确获得access_token
这里还有一个要注意的,如果是使用公众号的AppID和AppSecret来实现微信分享功能,
那么也要把相应的服务器的IP地址放到白名单里。
而且,如果是nginx反向代理的,那么就要把被代理的服务器的IP地址放到白名单里才行。
反向代理的情况,入口服务器的IP地址感觉可以不放。
二、接下来说union_id的问题
对于微信用户来说,union_id才是用户真正的唯一id。
openid的话,同一用户针对不同应用,不同公众号都是不同的。
也就是说,同一用户在不同应用或者微信号里的union_id总是相同的,而openid则一定不同。
这样如果有不同的公众号,那么就可以用union_id来标识同一用户了。
这里有一个要注意的地方,如果只有一个公众号,
那么在获取用户信息的时候,是没有union_id的属性的。
也就是说,union_id是在两个或多个公众号绑定,
或者公众号和微信应用绑定以后,才会出现在用户信息里的属性。
12月14日补充
三、关于公众号网页授权的一些流程注意事项
问题1.引导页面
有个很多人在介绍公众号获取网页授权的流程里,
在介绍“引导用户进入授权页面”的时候,都是一句话带过。
这一点让我费解了很久。。很久。。有时候甚至忍不住想,特么倒是说怎么引导啊。
最开始我想的一直是,在某个地方配置个url,然后在用户关注有动作的时候微信会自动转发 。
所以,我就一遍一遍找哪里有这个配置,或者哪个文章提到这个细节。
然而,毫无例外,所有教程里都是一句话带过,引导用户进入授权页面。。。
emmmmmmmm。。。。。。。有句mmp不知当讲不当讲。。。。
实际情况(目前是猜测,但应该八九不离十了):
在接口权限里,进入网页授权页面的配置页(其实目前是在公众号设置 -> 功能设置),修改网页授权域名。
1.首先说下授权域名的问题,为什么说是域名呢,因为这将限定了,凡是会弹窗告诉微信用户,
要授权才能使用的某个链接,都必须以该域名开头。
2.我们要授权的网页或者说接口,只要分布在授权域名下就可以了。可以有不同的入口。
共同点是,都要获取access_token
3.所谓引导,其实就是一系列网页在入口出都先访问微信的那个链接,
即,https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI
&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
然后把实际的接口作为回调url放到redirect_url里面。注意,redirect_url要urlencode。
问题2.公众号服务器配置里面那个url的作用
一直我都有点不解,因为这个接口听上去好像是所有消息的入口。当然,事实上好像也确实如此。
不过还有一些额外的事情。比方说,配置里面的token是干什么的,随机串有什么用,
还有,我们接口没有自己的校验措施,那么岂不是谁都可以访问。
实际情况:
1.配置的URL,是用户在对公众号进行点击,输入文字等操作时,
微信都会向这个URL发送xml格式的内容,也就是把用户的操作以xml的形式转发给我们的服务器。
2.至于token和随机串,
都是用来校验对我们接口的访问是否是来自微信服务器的。
换句话说,如果我们希望接口不被微信服务器以外的服务器访问的话,
那么就要对访问携带的参数进行校验,当校验的token还有随机串和我们配置里面的相同的时候,
才提供该接口应有的功能,否则认为是非法访问。
以上。
未完待续。。。
以上是关于关于微信公众号的一些问题的主要内容,如果未能解决你的问题,请参考以下文章