在微信開(kāi)放社區(qū)發(fā)現(xiàn)了不少同學(xué)都卡在token驗(yàn)證失敗了,很多都是代碼寫(xiě)的有問(wèn)題,本人沒(méi)碰到過(guò)代碼寫(xiě)對(duì)還失敗的
---- 本文只介紹驗(yàn)證服務(wù)器地址,其它功能不做描述。----
接入概述
接入微信公眾平臺(tái)開(kāi)發(fā),開(kāi)發(fā)者需要按照如下步驟完成:
- 填寫(xiě)服務(wù)器配置(不做描述)
- 驗(yàn)證服務(wù)器地址的有效性
- 依據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯(不做描述)
校驗(yàn)規(guī)則:
- 將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序
- 將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密
- 開(kāi)發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來(lái)源于微信
詳細(xì)文檔鏈接,請(qǐng)參考:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
校驗(yàn)規(guī)則很簡(jiǎn)單,照著規(guī)則來(lái)就行了。
項(xiàng)目都是本地的,服務(wù)器URL需要外網(wǎng)80端口,所以用了natapp或者花生殼,具體怎么使用百度一下就可以了。
寫(xiě)了兩個(gè)版本的java、nodejs,問(wèn)題大多數(shù)都是java同學(xué)。為了方便演示沒(méi)有提取工具類,token也是沒(méi)有寫(xiě)在配置文件中,僅供參考。
java spring boot示例代碼
修改application.ymlserver.port=80
nodejs egg示例代碼
修改config.default.jsconfig.cluster = { listen: { path: "", port: 80, hostname: "" } }
port改成80端口
egg https://eggjs.org/zh-cn/intro/quickstart.html
代碼經(jīng)過(guò)驗(yàn)證的,都是可以通過(guò)token驗(yàn)證的,有問(wèn)題還沒(méi)解決或者準(zhǔn)備接入認(rèn)證同學(xué),可以參考一下代碼,少走彎路
補(bǔ)充:golang版本