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