坑一:文檔數據結構錯誤,導致授權方公眾號二維碼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. 本文權當娛樂,大家看着耍,做微信開發的,希望可以幫到你