網(wǎng)站建設(shè)- 建站教程 - 網(wǎng)站定制開發(fā) - 微信二次開發(fā)細(xì)則說明
微信二次開發(fā)有哪些細(xì)則,您知道嗎?接下來就為您介紹下。
一.準(zhǔn)備工作1)申請微信服務(wù)號,進(jìn)行微信認(rèn)證;2)成為開發(fā)者:申請成功后,從網(wǎng)頁上登錄微信公眾平臺,點(diǎn)擊“開發(fā)者中心”,輸入“接收微信平臺轉(zhuǎn)發(fā)消息的統(tǒng)一url”和“token”提交成為開發(fā)者。(這兩個參數(shù)后面還可以修改)
3)獲取appid和appsecret:成為開發(fā)者后,在“開發(fā)者中心中”頁面,可獲取appid和appsecret兩個參數(shù)。
二.項(xiàng)目搭建及配置2.1.創(chuàng)建一個web項(xiàng)目,還需將wadata-weixin.jar包添加到項(xiàng)目中。wadata-weixin.jar下載地址:
http://pan.baidu.com/s/1kt27ovt提取碼:6eb1 wadata-weixin.jar包提供主要兩個功能:a)微信轉(zhuǎn)發(fā)請求處理器weixinservlet,主要做以下事件:1接收微信轉(zhuǎn)發(fā)的消息;2對消息進(jìn)行封裝成對象weixinmessage;3把消息對象weixinmessage轉(zhuǎn)遞給微信菜單處理器weixinprocessor進(jìn)行業(yè)務(wù)邏輯處理,微信菜單處理器返回微信響應(yīng)對象weixinpacket 4把微信響應(yīng)對象weixinpacket解析成xml消息,并響應(yīng)微信請求。b)微信接口統(tǒng)一調(diào)用類weixininterface,目前提供以下功能:(后面會按需要增加)1獲取全局access_token 2創(chuàng)建微信菜單3查詢微信菜單4刪除微信菜單
2.2.在web.xml中配置用于接收微信消息的servlet weixinservlet com.wadata.weixin.base.servlet.weixinservlet processor_package com.wadata.weixin.mmp.processor weixinservlet/weixin參數(shù)說明:1)processor_package:微信公眾號功能菜單的處理器的java包路徑。2.3.application.properties:將準(zhǔn)備工作中輸入的token和開發(fā)都中心頁面獲取到的appid和appsecrets三個參數(shù)配置到properties中。
三.微信菜單管理微信菜單接口中要求第三方將自己的菜單數(shù)據(jù)以json格式提交。因此先要在項(xiàng)目創(chuàng)建一個json格式的文件,把自定義菜單配置好。按以下示例配置:
說明:button數(shù)組中存放的是一級菜單,多存放三個一級菜單;sub_button數(shù)組中存放的是二級菜單,多存放的5個二級菜單;支持兩種菜單類型click:點(diǎn)擊菜單將在微信中直接顯示消息;view:點(diǎn)擊菜單將打開微信網(wǎng)頁;wadata-weixin.jar包中weixininterface類提供微信菜單的創(chuàng)建,查詢,刪除接口。
1、創(chuàng)建實(shí)例:weixininterface weixininterface=new weixininterface();
2、調(diào)用獲取access_token接口(此token的有效時(shí)間為7200秒,也即兩個小時(shí))weixinaccesstoken weixinaccesstoken=weixininterface.token(client_credential,application.getweixin_app_id(),application.getweixin_app_secret());string accesstoken=weixinaccesstoken.getaccess_token();
參數(shù)說明:個參數(shù):固定值client_credential第二個參數(shù):application.properties配置文件中的appid第三個參數(shù):application.properties配置文件中的appsecrets
微信菜單創(chuàng)建:
3、調(diào)用菜單創(chuàng)建接口weixininterface.menucreate(accesstoken,menujson);參數(shù)說明:個參數(shù):第2步中獲取到的access_token,如果時(shí)間超過2個小時(shí),則需要重新進(jìn)行第2步操作獲取access_token第二個參數(shù):自定義的菜單json文件的字符串返回值:true表示創(chuàng)建成功,否則創(chuàng)建失敗,失敗原因可通過日志查看。
微信菜單查詢:
4、調(diào)用菜單查詢接口weixininterface.menuquery(accesstoken);參數(shù)說明:個參數(shù):第2步中獲取到的access_token,如果時(shí)間超過2個小時(shí),則需要重新進(jìn)行第2步操作獲取access_token返回值:菜單的json格式字符串
微信菜單刪除
5、調(diào)用菜單刪除接口weixininterface.menudelete(accesstoken);參數(shù)說明:個參數(shù):第2步中獲取到的access_token,如果時(shí)間超過2個小時(shí),則需要重新進(jìn)行第2步操作獲取access_token返回值:true表示刪除成功,否則刪除失敗,失敗原因可通過日志查看。
微信菜單修改
6、先修改菜單的json文件
7、調(diào)用菜單刪除接口,刪除原來創(chuàng)建的菜單
8、調(diào)用菜單創(chuàng)建接口,創(chuàng)建新的菜單
四、click類型菜單開發(fā)在自定菜單json文件中,click類型菜單需要配置一個與菜單對應(yīng)的的key。您需要在“項(xiàng)目搭建及配置”一步中的processor_package參數(shù)指定包中創(chuàng)建一個實(shí)現(xiàn)了weixinprocessor接口的類,并用注解processor(菜單的key值)來標(biāo)注在該類。示例:/***微信菜單-投訴建議*/processor(v3001_complain)public class complainprocessor implements weixinprocessor{override public weixinpacket process(weixinmessage message){//菜單事件響應(yīng)return weixinpackethelper.buildtextpacket(message,messageformat.format(application.getcomplain(),application.getsystem_domain(),message.getfromusername()));}}weixinprocessor接口說明:該接口中只有一個方法:public weixinpacket process(weixinmessage message);入?yún)ⅲ何⑿畔⒌姆庋b對象,出參:微信響應(yīng)對象,weixinservlet會自動把接收到的xml消息封裝成weixinmessage對象,并傳遞給菜單處理器weixinprocessor,weixinprocessor處理完業(yè)務(wù)后需要把結(jié)果封裝成weixinpacket對象返回。weixinprocessor菜單處理器中,如果需要獲取微信用戶的基本信息,則需要調(diào)用獲取用戶基本信息接口,access_token參數(shù)可調(diào)用微信菜單管理中的第2步來獲取,openid參數(shù)可從weixinmessage對象中獲取。
文本消息封裝示例:/***組裝文本響應(yīng)包*/public static weixinpacket buildtextpacket(weixinmessage message,string content){weixinpacket packet=new weixinpacket();packet.setfromusername(message.gettousername());packet.settousername(message.getfromusername());packet.setmsgtype(weixinmsgtype.text.getvalue());packet.setcreatetime(long.tostring(new date().gettime()));packet.setcontent(content);return packet;}說明:weixinmessage message為接收到的消息封裝對象string content為要返回的消息字符串
圖文消息封裝示例:/***組裝新聞響應(yīng)包*/public static weixinpacket buildnewspacket(weixinmessage message,listitems){weixinnewspacket packet=new weixinnewspacket();packet.settousername(message.getfromusername());packet.setfromusername(message.gettousername());packet.setcreatetime(long.tostring(new date().gettime()));packet.setmsgtype(weixinmsgtype.news.getvalue());packet.setarticlecount(integer.tostring(items.size()));packet.setitems(items);return packet;}說明:weixinmessage message為接收到的消息封裝對象。listitems為要返回的圖文對象列表,列表中的圖文對象多為10個,否則返回不成功。所以您需要先將圖文信息封裝成weixinitem對象。
五、view類型菜單開發(fā)view類型菜單,沒有的key,只有對應(yīng)的菜單url。點(diǎn)擊view類型菜單,微信會在自帶的瀏覽器中打開菜單的url鏈接。微信網(wǎng)頁要適應(yīng)手機(jī)的屏幕大小,需要做wap網(wǎng)頁,也就是在網(wǎng)頁的標(biāo)簽中添加以下代碼:如果進(jìn)入到微信菜單頁面時(shí),需要是哪個用戶進(jìn)來的話,就需要調(diào)用
oauth2.0網(wǎng)頁授權(quán)接口來獲取用戶的基本信息了。
六、微信消息分組群發(fā)由于微信群發(fā)接口有次數(shù)限制,因此需要把關(guān)注者先分組,再按組來群發(fā)消息。以下為群發(fā)接口的調(diào)用說明:
1、該接口暫時(shí)僅提供給已微信認(rèn)證的服務(wù)號
2、雖然開發(fā)者使用高級群發(fā)接口的每日調(diào)用限制為100次,但是用戶每月只能接收4條,請小心測試
3、無論在公眾平臺網(wǎng)站上,還是使用接口群發(fā),用戶每月只能接收4條群發(fā)消息,多于4條的群發(fā)將對該用戶發(fā)送失敗
4、具備微信支付權(quán)限的公眾號,在使用高級群發(fā)接口上傳、群發(fā)圖文消息類型時(shí),可使用
北京營銷型網(wǎng)站設(shè)計(jì)制作應(yīng)該注意什么問題營銷型網(wǎng)站建設(shè)四項(xiàng)原則是?網(wǎng)站建設(shè)之前需要確認(rèn)哪些問題視頻網(wǎng)站建設(shè)自制劇產(chǎn)品內(nèi)容融合方式網(wǎng)站備案是備案域名還是空間?怎么做好百度地市級推廣接手新的網(wǎng)站SEO優(yōu)化工作,需要根據(jù)網(wǎng)站狀況制定SEO執(zhí)行方案企業(yè)網(wǎng)站seo優(yōu)化應(yīng)該考慮的兩個問題