你知道微信二次開(kāi)發(fā)的細(xì)則嗎?接下來(lái)就為您介紹下。一.準(zhǔn)備工作1)申請(qǐng)微信服務(wù)號(hào),進(jìn)行微信認(rèn)證;2)成為開(kāi)發(fā)者:申請(qǐng)成功后,從網(wǎng)頁(yè)登錄微信公共平臺(tái),點(diǎn)擊開(kāi)發(fā)者中心,輸入統(tǒng)一接收微信平臺(tái)轉(zhuǎn)發(fā)信息URL”和“TOKEN作為開(kāi)發(fā)者提交。(這兩個(gè)參數(shù)以后也可以修改)3)獲取AppId和AppSecret:成為開(kāi)發(fā)者后,在“開(kāi)發(fā)者中心中”頁(yè)面,可獲取AppId和AppSecret兩個(gè)參數(shù)。二.項(xiàng)目建設(shè)及配置2.1.創(chuàng)建一個(gè)web項(xiàng)目,還需要wadata-weixin.jar在項(xiàng)目中到項(xiàng)目中。Wadata-weixin.jar下載地址:http://pan.baidu.com/s/1kT27Ovt提取碼:6eb1wadata-weixin.jar包提供兩個(gè)主要功能:a)微信轉(zhuǎn)發(fā)請(qǐng)求處理器WeiXinServlet,主要做以下事件:1接收微信轉(zhuǎn)發(fā)信息;2將信息封裝成對(duì)象WeiXinMessage;3把消息對(duì)象WeiXinMessage轉(zhuǎn)到微信菜單處理器WeiXinProcessor業(yè)務(wù)邏輯處理,微信菜單處理器返回微信響應(yīng)對(duì)象WeiXinPacket4.微信響應(yīng)對(duì)象WeiXinPacket解析成xml并響應(yīng)微信請(qǐng)求。b)統(tǒng)一調(diào)用微信接口WeiXinInterface,目前提供以下功能:(以后會(huì)按需增加)1獲得全局Access_Token創(chuàng)建微信菜單3查詢微信菜單4刪除微信菜單2.2.在web.xml中配置用于接收微信消息ServletWeiXinServletcom.wadata.weixin.base.servlet.WeiXinServletPROCESSOR_PACKAGEcom.wadata.weixin.mmp.processorWeiXinServlet/weixin參數(shù)說(shuō)明:1)PROCESSOR_PACKAGE:微信公眾號(hào)功能菜單處理器Java包路徑。2.3.application.properties:輸入準(zhǔn)備工作TOKEN和開(kāi)發(fā)都中心頁(yè)面獲取AppId和AppSecrets配置三個(gè)參數(shù)properties中。2.3.application.properties:輸入準(zhǔn)備工作TOKEN和開(kāi)發(fā)都中心頁(yè)面獲取AppId和AppSecrets配置三個(gè)參數(shù)properties中。三.微信菜單管理要求第三方在微信菜單接口中使用菜單數(shù)據(jù)JSON格式提交。因此,首先要在項(xiàng)目中創(chuàng)建一個(gè)JSON配置自定義菜單的格式文件。按以下示例配置: 說(shuō)明:button一級(jí)菜單存儲(chǔ)在數(shù)組中,多存放三個(gè)一級(jí)菜單;sub_button二級(jí)菜單存儲(chǔ)在數(shù)組中,多存儲(chǔ)5個(gè)二級(jí)菜單;支持兩種菜單類型click:點(diǎn)擊菜單直接在微信上顯示消息;view:點(diǎn)擊菜單打開(kāi)微信網(wǎng)頁(yè);wadata-weixin.jar包中WeiXinInterface創(chuàng)建、查詢和刪除微信菜單的接口。1.創(chuàng)建實(shí)例:WeiXinInterfaceweiXinInterface=newWeiXinInterface();2、調(diào)用獲取ACCESS_TOKEN接口(此TOKEN有效時(shí)間為7200秒,也就是兩小時(shí))WeiXinAccessTokenweixinAccessToken=weiXinInterface.token("client_credential",Application.getWeixin_app_id(),Application.getWeixin_app_secret());StringaccessToken=weixinAccessToken.getAccess_token();參數(shù)說(shuō)明:個(gè)參數(shù):固定值client_credential第二個(gè)參數(shù):application.properties在配置文件中AppId第三個(gè)參數(shù):application.properties在配置文件中AppSecrets創(chuàng)建微信菜單:3.調(diào)用菜單創(chuàng)建接口weiXinInterface.menuCreate(accessToken,menuJson);參數(shù)描述:參數(shù):第2步獲得ACCESS_TOKEN,如果時(shí)間超過(guò)2小時(shí),則需要重新執(zhí)行第二步ACCESS_TOKEN第二個(gè)參數(shù):自定義菜單JSON文件字符串返回值:true表示創(chuàng)建成功,否則創(chuàng)建失敗,失敗的原因可以通過(guò)日志查看。微信菜單查詢:4.調(diào)用菜單查詢接口weiXinInterface.menuQuery(accessToken);參數(shù)說(shuō)明:個(gè)參數(shù):第2步中獲取到的ACCESS_TOKEN,若時(shí)間超過(guò)2小時(shí),需要重新獲得第二步ACCESS_TOKEN返回值:菜單JSON格式字符串刪除微信菜單5.調(diào)用菜單刪除接口weiXinInterface.menuDelete(accessToken);參數(shù)描述:參數(shù):第2步獲得ACCESS_TOKEN,若時(shí)間超過(guò)2小時(shí),需要重新獲得第二步ACCESS_TOKEN返回值:true表示刪除成功,否則刪除失敗,可通過(guò)日志查看失敗原因。修改微信菜單先修改菜單JSON文件7、調(diào)用菜單刪除接口,刪除原來(lái)創(chuàng)建的菜單8.調(diào)用菜單創(chuàng)建界面,創(chuàng)建新菜單四、click自定菜單類型菜單開(kāi)發(fā)JSON文件中,click類型菜單需要配置與菜單對(duì)應(yīng)的菜單key。您需要在項(xiàng)目建設(shè)與配置步驟中PROCESSOR_PACKAGE在參數(shù)指定包中創(chuàng)建一個(gè)實(shí)現(xiàn)WeiXinProcessor并注明接口類別Processor("菜單的key值")在這一類標(biāo)注。示例:/***微信菜單-投訴建議*/Processor("V3001_COMPLAIN")publicclassComplainProcessorimplementsWeiXinProcessorOverridepublicWeiXinPacketprocess(WeiXinMessagemessage)WeiXinProcessor接口說(shuō)明:界面中只有一種方法:publicWeiXinPacketprocess(WeiXinMessagemessage);參考:微信信息包裝對(duì)象,參考:微信響應(yīng)對(duì)象,WeiXinServlet會(huì)自動(dòng)接收到的xml消息封裝成WeiXinMessage將對(duì)象傳遞給菜單處理器WeiXinProcessor,WeiXinProcessor處理完業(yè)務(wù)后,需要封裝結(jié)果WeiXinPacket對(duì)象返回。WeiXinProcessor在菜單處理器中,如果需要獲取微信用戶的基本信息,則需要調(diào)用用戶的基本信息接口,ACCESS_TOKEN可調(diào)用微信菜單管理的第二步獲取參數(shù),OPENID參數(shù)可從WeiXinMessage在對(duì)象中獲取。文本信息封裝示例/***組裝文本響應(yīng)包*/publicstaticWeiXinPacketbuildTextPacket(WeiXinMessagemessage,Stringcontent)說(shuō)明:WeiXinMessagemessage為接收到的信息封裝對(duì)象Stringcontent為要返回的消息字符串圖文信息封裝示例/***組裝新聞響應(yīng)包*/publicstaticWeiXinPacketbuildNewsPacket(WeiXinMessagemessage,Listitems)說(shuō)明:WeiXinMessagemessage為收到的信息封裝對(duì)象。Listitems列表中有10個(gè)圖文對(duì)象要返回,否則返回將不成功。Listitems為了返回圖形對(duì)象列表,列表中有10個(gè)圖形對(duì)象,否則返回將不成功。因此,您需要先將圖形信息封裝成WeiXinItem對(duì)象。五、view類型菜單開(kāi)發(fā)View沒(méi)有類型菜單key,只有相應(yīng)的菜單url。點(diǎn)擊view類型菜單,微信會(huì)在自己的瀏覽器中打開(kāi)菜單url鏈接。微信網(wǎng)頁(yè)需要適應(yīng)手機(jī)的屏幕大小Wap網(wǎng)頁(yè),即在網(wǎng)頁(yè)標(biāo)簽中添加以下代碼:如果進(jìn)入微信菜單頁(yè)面,需要調(diào)用哪個(gè)用戶OAuth2.0網(wǎng)頁(yè)授權(quán)接口獲取用戶的基本信息。6、由于微信群發(fā)接口數(shù)量有限,微信消息分組發(fā)送需要先分組關(guān)注者,然后按組發(fā)送消息。以下是群發(fā)接口的調(diào)用說(shuō)明:1.該接口暫時(shí)只提供微信認(rèn)證的服務(wù)號(hào)2.雖然開(kāi)發(fā)者每天使用100次高級(jí)群發(fā)接口,但用戶每月只能接收4次。請(qǐng)仔細(xì)測(cè)試無(wú)論是在公共平臺(tái)網(wǎng)站上,還是使用接口群發(fā),用戶每月只能收到4條群發(fā)消息,超過(guò)4條的群發(fā)將失敗地發(fā)送給用戶4.具有微信支付權(quán)限的微信官方賬號(hào),可以使用高級(jí)群發(fā)界面上傳和群發(fā)圖文消息類型。