关于微信开放平台账号管理权限
Context
最近在为客户部署小程序时遇到一个问题,通过日志定位到问题是,,没有获取到小程序用户的UnionID,导致无法对小程序用户和卡包(公众号)用户形成有效的映射,bulabula…总之,翻到日志才想起来,应该通过微信提供的接口创建微信开放平台,然后绑定另一个appid即可。
想想也没啥,之前也为其他客户部署过,无非是调用两次接口:一次创建,一次绑定,,齐活~
BUT!!!
但!!!这次搞的格外艰辛,微信服务器一直返回
1 | { |
日狗,真心日狗!确定一定以及肯定,两个appid都没问题,,因为通过**创建 开放平台帐号并绑定公众号/小程序**接口,两个appid都可以创建开放平台。
搞到这儿也想到一个问题,,
我想通过接口,把客户的小程序和公众号绑在同一个开放平台,,无疑,小程序肯定是授权给第三方平台的。倘若,我用小程序的
appid
,创建开放平台,然后将公众号的appid
绑到小程序创建的开放平台上。
那么问题来了,,公众号需要将开放平台账号管理权限
授权给第三方平台么???
为了赶紧绑定成功先,暂时将公众号的开放平台账号管理权限授权给第三方平台了。
Succeed??
我疯了,成功疯了。。最后找之前没接触过这块儿的同事从阅读文档开始,慢慢review代码。刚开始也是不行,,后来他要静静,然后闷头搞。
…
一会儿,,诶?我好像创建成功了?!
稀里糊涂的 创建成功了,,然后我要求他复盘整个流程。
- 分别用两个
appid
都创建开放平台; - 然后在小程序后台解绑开放平台;
- 通过接口将小程序的appid绑定到公众号创建的开放平台账号上。
前两步都没啥,但是第三步!我在调用接口的地址上发现点端倪,跟我之前调用时写的不一样,然后就提醒他这儿应该写公众号的appid
,而不是小程序的。他突然也想到了些什么,很肯定的说,上次绑定成功的时候就是这样写的!
终于找到问题所在,,验证,成功!!!
在这儿详细复盘下,给大家伙儿做个参考,,
我将文档中将 公众号/小程序绑定到开放平台帐号下
的接口封装成我们自己的接口,,伪代码如下👇
1 | /** |
失败
:我之前的绑定方式,,
- 通过小程序
appid
创建开放平台; - 调用接口
http://IP:Port/path/bindOpen?appId=小程序APPID&open_appid=开放平台账号&target_appid=公众号APPID
。
👆In a word,,使用 A 创建开放平台,然后使用 A 的access_token绑定 B。
报错{"errcode":40013,"errmsg":"invalid appid hint: [iAEcfA03241959]"}
成功
:同事的绑定方式,,
- 使用公众号的
appid
创建开放平台账号; - 调用接口
http://IP:Port/path/bindOpen?appId=小程序APPID&open_appid=开放平台账号&target_appid=小程序APPID
。
👆In a word,,使用 A 创建开放平台,然后使用 B 的access_token绑定 B。
至此,,问题解决!另外,之前的问题也迎刃而解:公众号和小程序都需要将开放平台账号管理权限授权给第三方平台。
想想也是,当初将小程序和公众号的权限授权给第三方平台时也是这样,,标的主动绑定平台,而不是平台主动绑定标的。
One more thing
嗯,希望微信开放平台帐号管理完档越来月完善,,意味深长的微笑 🙂。