微信openid你了解多少?appid,appsecert又是啥?

openid这个东西有点泛。百度搜到的都说这个东西可作为微信用户唯一的ID,然而很多都被认为每个微信号只能有且只有一个openid.

 

下面澄清一下这个openid
 

微信号:这个大家都可以理解,每个人都有一个微信号,不会重复。修改一次后也就不能再修改。和openid并没有半毛钱关系。

openid那里冒出来的?什么玩意?其实openid就是在微信号上为了适应各个产品运营而产生的一个对应于应用的唯一id.啥意思?

说白了,微信为开发者提供可开发接入到微信上进行运营的平台应用。如公众号,小程序等。

也就是说公众号是嫁接在微信上运营的一个开放平台。同样小程序也是嫁接在微信上运营的一个应用平台。那么openid的关系图

微信openid你了解多少?appid,appsecert又是啥?_第1张图片

从图中可以不管同不同主体,小程序是否挂靠到同一主体的公众号上。openid都是为每款产品单独生成一个openid且各不相同。

因此openid是否唯一是指在同一个应用(产品)平台上才能唯一,并不是跟微信号绑在一起。不要单纯的认为一个微信号在任何情况下都只有一个openid.这是不正确的。

说下小程序,小程序可以和公众号进行绑定来运营,也可以不绑定公众号,直接微信中运营。

一、如果同一个开发公司,开发多款小程序,那么同一个微信中在使用这些小程序的情况下openid是不同的,但unionid是一样的,因为他们注册认证时使用同一主体

二、不同主体的小程序可以挂在同一个公众号下。如上图广州GG公司的公众号可以关联自己同主体的小程序d也可以关联不同主体的小程序e,但他们的unionid是不相同的。

三、不关联任何公众号的小程序。自然不存在unionid的说法,主体不同使用openid就可以区分。

四、在同一个公众号上,每次关注成功后,再取消关注,然后重新关注是否会产生新的openid?大伙自己去试下吧。

       (取消后查不到,重新关注上还是和之前的openid是一样的,说明注销的时候并没有删除原来生成的openid)

五、如果开发两个小程序,怎么样知道各个小程序中获取到的用户(微信用户)是否为同一个?

       a)不同主体,通过获取的用户信息[微信绑定的手机号]

 

APPID和APPSecert是啥东西?这个是针对应用分配的一款应用id和应用密钥。可以理解为每个appid和secert对应一个沙箱。

微信openid你了解多少?appid,appsecert又是啥?_第2张图片

开发者想要获取用户A的相关信息,则必须要有对应平台(产品的)应用的AK,SK,否则是取不到用户A的相关资料的。也不能用错。即不能用公众号的appid,secert  去取小程序的资料。

官方提供的公众号调试工具:https://mp.weixin.qq.com/debug

公众号接口文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html

小程序开发者文档:https://developers.weixin.qq.com/miniprogram/dev/framework/

 

关于公众号模板消息的发送和小程序模板消息的发送。有几个点需要注意的:

一、公众号只能发送公众号中"模板消息"->"我的模板"中的消息模板对应的内容。

二、小程序除了可以发送小程序账号本身中"模板消息"->"我的模板" 中的消息模板。还可以发送公众号中的消息模板,不过前提是小程序要关联在公众号下。

三、发送接口不同:

A、针对公众号       

对于针对公众号推送模板消息接口:(见接口文档https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html)

公众号推送模板消息接口:
POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

B、针对小程序进行发送模板消息(最关建就是TOKEN必须要使用小程序的appid和appsecert),如果使用了公众号的(appid和secert来得到的token)调用些接口会提示

{
    "errcode": 48001,
    "errmsg": "api unauthorized hints: [pHLbLXyMe-h_h81a!]"
}

 

下发小程序和公众号统一的服务消息接口见文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/uniform-message/uniformMessage.send.html中的uniformMessage.send

     请求地址:

下发小程序和公众号统一的服务消息
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN

C、小程序推送小程序自己账号下的模板。

早些时间小程序还可以单独只发送小程序的模版消息。templateMessage.send,但微信官方已说是月小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能

因此如果单独针对小程序的也可以使用

只适用于小程序的模板消息
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

这种方式与公众号无关,只能在小程序中使用订阅接口接收。

wx.requestSubscribeMessage(Object object)

四、token的获取不同。

        公众号模板使用的是公众号的appid和appsecert 进行获取token

        推小程序或小程序关联的公众号模板使和的是小程序的appid和appsecert来获取的token

 五、发送者的openid不同,不要把取到公众号的openid来作为小程序的接收者(模板中touser参数),一不小心就搞混。

      公众号模板接口(即第三点中的A接口),touser一定是使用公众号appid/appsecert 取到的token查出来的openid。

      而小程序的接口(即第三点中的B接口),touser一定是小程序中使用wx.getUserinfo取得到加密数据解压得出来的openid。

六、图解

      不论是公众号,还是小程序,注册和登录地址都是一模一样。只是在注册的时候选的模块不同而已,特别小心下。

微信openid你了解多少?appid,appsecert又是啥?_第3张图片

微信openid你了解多少?appid,appsecert又是啥?_第4张图片

Secert查看

微信openid你了解多少?appid,appsecert又是啥?_第5张图片

微信openid你了解多少?appid,appsecert又是啥?_第6张图片

 

关联的小程序查看

微信openid你了解多少?appid,appsecert又是啥?_第7张图片

中间还有个“开发者平台”/::-S/::-S/::-S/::-S/::-S/::-S/::-S/::-S/::-S/::-S

公众号年费(300元/年)年年要缴

小程序(300 元)认证费,好像是一次性,不大记得了,等明年这个时候看下有没有要过期重审的就知道了。

开发者平台:(300元)认证费,一次性好像。不常上去。

总之就是烧钱。

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(前端)