Java微信接入開發(fā)
文章出處:http://www.sgrivertours.com 作者:興邦開發(fā)部 人氣: 發(fā)表時(shí)間:2016年05月13日
接入微信公眾平臺(tái)開發(fā),開發(fā)者需要按照如下步驟完成:
1、填寫服務(wù)器配置
2、驗(yàn)證服務(wù)器地址的有效性
3、依據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯
第一步:填寫服務(wù)器配置
登錄微信公眾平臺(tái)官網(wǎng)后,在公眾平臺(tái)后臺(tái)管理頁面 - 開發(fā)者中心頁,點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來接收微信消息和事件 的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會(huì)和接口URL中包含的Token進(jìn)行比對,從而驗(yàn)證安全性)。 EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。
同時(shí),開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會(huì)立即生效,請開發(fā)者謹(jǐn)慎填寫及選擇。加解密方式的默認(rèn)狀態(tài)為明文模式,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼,詳情請參考消息體簽名及加解密部分的文檔。
第二步:驗(yàn)證服務(wù)器地址的有效性
開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器地址URL上,GET請求攜帶四個(gè)參數(shù):
參數(shù) 描述
signature 微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請求中的timestamp參數(shù)、nonce參數(shù)。
timestamp 時(shí)間戳
nonce 隨機(jī)數(shù)
echostr 隨機(jī)字符串
開發(fā)者通過檢驗(yàn)signature對請求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請求來自微信服務(wù)器,請?jiān)瓨臃祷?/font>echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。
第三步:依據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯
驗(yàn)證URL有效性成功后即接入生效,成為開發(fā)者。如果公眾號(hào)類型為服務(wù)號(hào)(訂閱號(hào)只能使用普通消息接口),可以在公眾平臺(tái)網(wǎng)站中申請認(rèn)證,認(rèn)證成功的服務(wù)號(hào)將獲得眾多接口權(quán)限,以滿足開發(fā)者需求。
此后用戶每次向公眾號(hào)發(fā)送消息、或者產(chǎn)生自定義菜單點(diǎn)擊事件時(shí),開發(fā)者填寫的服務(wù)器配置URL將得到微信服務(wù)器推送過來的消息和事件,然后開發(fā)者可以依據(jù)自身業(yè)務(wù)邏輯進(jìn)行響應(yīng),例如回復(fù)消息等。
公眾號(hào)調(diào)用各接口時(shí),一般會(huì)獲得正確的結(jié)果,具體結(jié)果可見對應(yīng)接口的說明。返回錯(cuò)誤時(shí),可根據(jù)返回碼來查詢錯(cuò)誤原因。
用戶向公眾號(hào)發(fā)送消息時(shí),公眾號(hào)方收到的消息發(fā)送者是一個(gè)OpenID,是使用用戶微信號(hào)加密后的結(jié)果,每個(gè)用戶對每個(gè)公眾號(hào)有一個(gè)唯一的OpenID。
另請注意,微信公眾號(hào)接口只支持80接口。