首页 > 代码库 > 微信公众号第三方平台开发坑

微信公众号第三方平台开发坑

 

坑一:文档数据结构错误,导致授权方公众号二维码URL无法获取

在公众号授权流程文档页面中(点击查看),有这样一个数据结构:

 

技术分享

我把这个代码复制出来,放在chrome里面,清楚的看到如下的数据结构:

技术分享

 

错就错在这个qrcode_url,在微信官方提供的文档中,qrcode_url是出现在object的第一级属性中的,但是,TMD的微信真正返回的数据结构中,qrcode_url是在authprizer_info里面的。WHAT THE FUCK! 害得老子把自己的代码检查、调试了两个小时,之崩溃,就没有怀疑过文档错误。

 

下面这个图就是微信服务器真正返回的数据结构:

 

技术分享

 

坑二:同一个接口返回的数据字段一个叫AppId,而另一个叫Appid

来,先给大家看一下微信返回的xml:

 

1 <xml>
2   <AppId><![CDATA[wx79*********a42]]></AppId>
3   <CreateTime>1477042022</CreateTime>
4   <InfoType><![CDATA[unauthorized]]></InfoType>
5   <AuthorizerAppid><![CDATA[wxea********908]]></AuthorizerAppid>
6 </xml>

 

看到了吧,第一个字段叫AppId,最后一个字段叫AuthorizerAppid!

 

虽然说这次文档没有写错,要怪只能怪自己没有仔细看文档,但是,我想说的是,通过这个简单的命名,可以看得出微信这个开发人员素质很一般。

 

下面我就来跟大家科普一下AppId跟Appid的区别!

 

AppId代表了两个单词的拼接,而Appid,有这个单词吗?

 

再举个例子,你知道为什么我们登录表单的用户名一般命名为“username”,而非“userName”吗?这是因为username本身就是一个单词!

 

还看到有的程序员将callback的变量命名为callBack,也是醉了。。。

 

说白了,如果是多个单词的拼接,每个单词首字母大写;如果是一个单词,不要将单词中的某个字母大写。

 

Appid,明明没有这个单词,明明是App和Id两个单词,为什么写着写着就变成Appid,关键是统一接口返回的数据,一个叫AppId,一个叫Appid,好坑啊。。。

 

P.S. 本文权当娱乐,大家看着耍,做微信开发的,希望可以帮到你

 

微信公众号第三方平台开发坑