使用java開發(fā)微信公眾號系列-接入指南
時間:2023-05-28 10:21:02 | 來源:網(wǎng)站運(yùn)營
時間:2023-05-28 10:21:02 來源:網(wǎng)站運(yùn)營
使用java開發(fā)微信公眾號系列-接入指南:在開發(fā)微信公眾號時,會碰到系列問題,今天先說說怎么獲取access token。
最近忙著做微信公眾號對接開發(fā)工作。以前沒有接觸這塊,認(rèn)為很簡單。
第一步:填寫服務(wù)器配置
登錄微信公眾平臺官網(wǎng)后,在公眾平臺官網(wǎng)的開發(fā)-基本設(shè)置頁面,勾選協(xié)議成為開發(fā)者,點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來接收微信消息和事件的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進(jìn)行比對,從而驗(yàn)證安全性)。EncodingAESKey由開發(fā)者手動填寫或隨機(jī)生成,將用作消息體加解密密鑰。
同時,開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會立即生效,請開發(fā)者謹(jǐn)慎填寫及選擇。
第二步:驗(yàn)證消息的確來自微信服務(wù)器
開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器地址URL上,GET請求攜帶參數(shù)如下表所示:
參數(shù) | 描述 |
---|
signature | 微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請求中的timestamp參數(shù)、nonce參數(shù)。 |
timestamp | 時間戳 |
nonce | 隨機(jī)數(shù) |
echostr | 隨機(jī)字符串 |
開發(fā)者通過檢驗(yàn)signature對請求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請求來自微信服務(wù)器,請原樣返回echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:
1)將token、timestamp、nonce三個參數(shù)進(jìn)行字典序排序
2)將三個參數(shù)字符串拼接成一個字符串進(jìn)行sha1加密
3)開發(fā)者獲得加密后的字符串可與signature對比,標(biāo)識該請求來源于微信
檢驗(yàn)signature的JAVA示例代碼:
第三步:依據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯
驗(yàn)證URL有效性成功后即接入生效,成為開發(fā)者。你可以在公眾平臺網(wǎng)站中申請微信認(rèn)證,認(rèn)證成功后,將獲得更多接口權(quán)限,滿足更多業(yè)務(wù)需求。
成為開發(fā)者后,用戶每次向公眾號發(fā)送消息、或者產(chǎn)生自定義菜單、或產(chǎn)生微信支付訂單等情況時,開發(fā)者填寫的服務(wù)器配置URL將得到微信服務(wù)器推送過來的消息和事件,開發(fā)者可以依據(jù)自身業(yè)務(wù)邏輯進(jìn)行響應(yīng),如回復(fù)消息。