全網(wǎng)發(fā)布之普通文本-api文本-事件消息返回_第1頁
全網(wǎng)發(fā)布之普通文本-api文本-事件消息返回_第2頁
全網(wǎng)發(fā)布之普通文本-api文本-事件消息返回_第3頁
全網(wǎng)發(fā)布之普通文本-api文本-事件消息返回_第4頁
全網(wǎng)發(fā)布之普通文本-api文本-事件消息返回_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、4.排版后接下來是解密(加解密將接收xml變成字符串ReqLi2_tMmpping(HlLiie=/priiiTt/mppddlj.prx)dlucQis=1applic0ticm/xniL;th2iri!S!et:=UTF-S!)ponodypublicStringprocGS5PrintM5gOpGnPlatfornfi(ReqLiest:Param(value=1sechos七廠打required=false)Stringechos七廣丄tParam(valu-signature)StringsignatunejiReque5tParam(value=asmi5g_5ignaturea,

2、required=fal)Stringui5g_5ieni9,tureJ1R.quiestParam(value-timetamp,!)Stringtim-estampjRequestParam(value=aanance,a)Stringnoncej.七h(yuǎn)Variable(value=HappidH)5七廠IngappldHttpServ1已tRequestreqj.HttpServletRe5pon5eresp)throwsException丄柱出StringBuild已廠sb二newStringBuildeBufferedReadenin=DQqgetReader();|Stringli

3、nej/SystemoutprintIn用購匚到則=ap.gi4:11+旦般丄克+11=signarture:,b+signature+w=QQmwhile(line=in.readLine()1=null)fsb.appandfline);in*cloae()jStringxml-sb.toString();/Systemtout.prirrtln(瀆取的XML為:+天mlj判斷msg_signature是否為空,是:接收的是明文,不需要解密(明文模式),然后進(jìn)入service中否:接收的是密文,需要解密(也即是安全模式)if(StringUtils.isBtorrfe(msg_ignatu

4、w)攙也:靈加密的xml(就是日月交摂式)Documentdoc=DocumenitHelper.pi?rseText(xml);Stringres=weiXiriiS&cessFrintMEDpEriiPlm七干口廣皿山。,signa七11廠邑?|士11皀與tmiTip丄nonce);/System-out.println(=res:舟嚴(yán));電um“;亟鍛加密的泌/接欣如巒的建賣全揍式)Do匚umentBui1derFactorydbf=DactimentBuilderaictciLy秤巴丹115亡口巾匸巴0;Dd匚umenitBuilider1db二dbf-niew&ocumen七Bu:i

5、ldEr*()|StringReadersr=newStringReader(xml);InputSourceis=newInputSour匚(弓廠:org,w3c.don*BDocumentdocument=db.pr5&(is);orgw:3匸.dom丘1。湘電門trootl-dacumerit.gQtDcituniontElwrweintf;/排JS咸弋xml/xiNodeListnadelist1=rootl.getElemeritsByTagName(l,Einciryptm);Stringencryp+=nodelistli+em(0).getTextContent()jStrin

6、gformat=11fi-r%JLdIL、-I-1fViI接收的是密文的話,要先排版成這種類型/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318479&lang=zh_CN)/5yi七r.out-prn七Ln(11framKML);kJO(BizHseCryptpc-hStringnonce)Elementroot-doe=root.eleentTextTrin(Eve).toLowrcase();/Systait-口袖七.prinitln(甲件.!H卜口誓am七lyp*)j,lf(

7、contextce-isTranspend-Dqusls(l)丿卜sas昌中*4:!*ifevtmtTypeeqyalslocition)/涉游林IRirt./&yst4an.out-printlra(全展布瀕;contex七.ccmenus=皀曰1+frai_cal1back;lhafKiler=SubscribeEvei*tHandlep(rootjWKflem&ServiceiSJubscriberSiervice?advertservicejArtlcleServicejccHvtext);?!lf(nscTyjI=ii*ullSSidsjjTppe.equi15(MsaTpe.rfT

8、)7丈*:*-例2:接收的是文本消息(要分api文本和普通文本):全網(wǎng)發(fā)布一返回普通文本(文本消息的XML中Content字段的內(nèi)容必須組裝為:cmd+from_callback,其中cmd是接收的xml中Content字段的內(nèi)容):/模擬船結(jié)送文本消息給專月測試公康號r笑三方舍右需根站文齊涓底的円容世廳相應(yīng)號響應(yīng):)徹信模崔古需三方三吿方:文車肖息r其口匚onisM字段旳內(nèi)容回連為:TEGTCOMPONENT_MGG_TYPE_TEXT第三方平臺方亞馬回應(yīng)文本消息并最終齟達(dá)粉卷:Contentions為:TESTCOMPONENT_MSG_nPI:_TEXr_callbaceIseif(ms

9、gTypet=riiullsgType*equals(MsgType.TEXT)/交不消息/System.out.print1r(r=文蕊丫肯息=);String匸md二troot*elementTextTrim(Content1)jif(TESTCOMPOfJENT_MG_TYPE_TEXT.equals(cmd)/全磁布返回普通交本;為.總StpimgcTEturn匚oiitEn七=冊1+_匚311.133|elif(cmd.1ndeOf(-QUER_AUTH_CODE=0)心全舉布連回館1文相Sfi/System.out,print1M=帝通回車消身=);context*cc.menus

10、=cmdh5pliti粽得橫權(quán)尙全網(wǎng)發(fā)布一返回api文本(這個比較麻煩,下面詳解)下而*yPri.rT#114ifAd.indtw?flBJEtvjUTHOOE如紬丄衛(wèi)/5|r=fauL-printlnCBK;ccntexti.cc,葉丹湖二:敘/IBtWlJi/h3kn.口uEm.println(-.-=.-Authsrixditi-arDriHL.EE.rwrruaiHy/ftFLOQ;tirk*t-Dtirk*t|9|9|inHjNiEl7feasqKLTkf4d.a6jidM2HiLlUxrWB7M3PirALhifrriJJLL-iXlEdCIJife&hcHd-ZQ-UdalbJh

11、DqF:/,j;Hita5f.ShCACfr-fr.E14H4ttiCk&tjApiTlkfltCiCN:-.CLCk4t/Syat-Mi.auk.iprintlnCSf(Hibrt=*llJ旦i中JtQSyst4P,+vt.pri!Ttl*CiticlM:t;ije4tANt.-.MnubeWTC-;hmdlariHMAnyPr3ni1:k3ig|HHnrdlBr|rootBccnt-nLt、jrontestiMidler.lonxesst)匸EFyFHdot.)F/5fe3tn.auksprintint那咅啊優(yōu)iubrt2+(StrinfltLckot.rtWlun().門崩越!幡總黑甘了

12、梯自GifJLBMHWIH!l!iflAIIH-rirpl_quFny_jiuthifiH!Fffi31SliftHinfre-WSPIirtLiiflctAvt*Wr*lE-fltC*?In7(cwflonwtAcciSsTcJkWjCo-stanicoatwt.ccStruj/yflUEWtkH.X/1OIEjM-oCTIirTjflHMEa:JiJh.iiidvi-an*HAjPlntNiSibunillftpfruoTjg%r葉訕返回api文本消息:1.全網(wǎng)發(fā)布api文本消息,微信模推送給第三方平臺方:文本消息,其中Content字段的內(nèi)容固定為:QUERY_AUTH_CODE:$qu

13、ery_auth_code$(query_auth_code會在專用測試公眾號自動授權(quán)給第三方平臺方時,由微信后臺推送給開發(fā)者)接收授權(quán)碼($query_auth_code$)Stringcmc=root.elementTextTrim(Content);context.cc.menus=cmd.:)1j獲得撩稅碼獲取緩存的ticketnet.sf.ehcache.Elementticket-jaApiTicketCache.get(Ticket);/r述人干今鉛存片七讓k亡七/System.out.prin11n(1cket1+ticket);iffticket-null)Syiteni.a

14、uf.prnt1nt1c対空山context.cc.nenus=朗S后冉liU;handler=ncidAnyPrintPlsgHandlcroot匚ortextjcon七ext-setS七ite(hqqcav/ci-bin/component7wi_!wery_+uth#楚f也欝比口站?開GetComponent_access_token方法:鴿“r廿L,由,Lnirg-.(pubUcvtrtic&trirbEv-叭幗涉nfXffiTO鬧嗨時-_ILtKU0dpcK2GyE3-:6Zr485K2dIVEnKQNHpFD3tSp35iRipciyld_M-;Kepwr=wwHocfelMaip

15、Ojruip.put(ewpnR5it_vEri,fy_ticketj.tickct)mapiput(cwpDwnt_-&ppMcret|.flppSccrft);map.putewpDwnt_-&ppidj.ppld.;f/Sy&tMigwtprintl輛(./ppi卄=:4iap1p5eQ詫七*=B4-ticketj5Cf*piirtJ=M!wWei?(https:/api.weixin,qq.can/cEi-bi/conpartent/-Hpi_EPinxjneT.t_tciken,j曠皿屮rirycOji/5/rttndirt.printl.sCtc?kw*=*-Bpi&Bta)jUb

16、ie-ctccnponerit_3ci:e35_tcken=5ipii*t3.et(,iEwnwnet_acc5-_tQkcnl=null)5triiErt=tonpont_-BCCC5S_tDketoStriiB:(j/5y&tefioimK.prijntl.in(a!cHpoJief*t_accc2J_tc4.en=-=-,+ccponeriit_BCe5a_takcn*ietfrfElement(-Dppdil.ltii.jsApiTtth已.pirt(ctj)jj)顯4r*怙刊r*dll4Mlritljrrt(SthLflJct:i.使用授權(quán)碼、componentAccessToken

17、、第三方平臺appid換取公眾號的授權(quán)信息/ft用權(quán)舊碼尊時上金主甫畏權(quán)Afthorizationilnfoinfo-WxAPIyt11uett?rizi?ttonJ時貿(mào)cciponentAcessToken3Cwstr-t,Cottpo”葉D.cciite*tTcc.nenu5)Stringnuthori3*r_aceaE_tok-c-r-infa-ALrthorizcir_aiEe*sfi_tokn()jZJ5W將取得的信息封裝到實(shí)體類中g(shù)etAuthorizationInfo方法中+1*EJ!5-ppr-fiiHarninBf(r-aiitrFpt5-a|.puncihKkr、p犀U*!

18、:Wap-!btrir;匕*apillattVbjaEtinfti口応1!01|3.W托3ion-JSdnCbi4viharLxakLixiCn-FaaultlMiraEdhiIf0r12Jtinl*fo.pitJthoiM.appi-d-+Miti!#,i2-Mlb!*rwtunfenMlli發(fā)送客服信息Stringaurtrwrizer_access_taken=in-to-e七山口七局尸匚:弋滬日匚匚亡日日_七1上亡口1)|1、欄(3方栢口聞用)(|1Stringt*Mt:f.cc-itftus+n_fpqm_叩i+nJ*1;ff3內(nèi)咅contewk.cc.iwenus=WxAIlJt1

19、11Ci/3(frcniJierldj-t-exthf-t=xtj.vrithorizcr_actfl-55-_tol?en)j;7打強(qiáng)-iftf&(i-rflii-l-t);ti-undler=nwifinyPrlritMsiEH-Bindler(rootEontext);方法CustomSendMsg:tdSKAG賢Uppg宀也冷扣dd*1:沖盯publicstatic&kiin|審長誌in.fmLli-nrdpStrary;raijt.c.廿*inj,Shrara;aukbarLxarjie-c*iatake-)Hflll?iMp=nwHo機(jī).燈譏斥wcipytftwHFj*wWserW

20、)ji紳”pwUFutyMjniSltj-pQ)a-puri:|k-KAt*fIbkL?lOjacl:Anray=75Ofbjac.jEHMGbjrt(aj!ip)1J/rupHISEHjHiMft&rStpi巧E0tdect*&LEtjj*神?eghttRi/b-rfixincr/cl-bin/tE5-fl.ej,cij5toh/5tnd?*ccess_t*tefl-*+*L-t*ci,iier_*ccs_tckevii-arfiy.tc5tir-+iDartaHSbrLn:rikut*StriTc)riipiData_KBt(r,*P丿a基本流程就是這樣了,下面是一些需要用到的方法類:Se

21、ndReq方法:Suppre55arning-5(uncheckedas)puhliestaticMapsendReqringsurlringargsintreturnType)Mapres=nullj;try.URLurl二neiAiURL(surl)jHttplIRL匚cmriietionurlCon=(HttpURLConnection)uplopenConnection();urlCorix&ei3|3pLi1ati.Qi/jon;Eh3ri5iet=LITF-S1);urlCon亠呂段tRequRHtMQthod(POST);urlCon.setConnectTimeout(3100

22、0);yurlConsetDoInputtrue);urlCon百mtUseCaches(fjif(StringUtilsisNotBt?nfe(args)lipI匸ansetDoOutput(true.;Outputs!reamout=orlCon.getOutputStreamf);out,write(arg5.getByte5(B,UTF-8out,flush()jout.closeO;InpLitStrearnis=urlCon.geInpu-tt!treani);/RSiXMLjgif(returnType=J501V)ObjBctMapperom=neuiObjeci:NlmppE

23、r*();res=onnreadValue(isHashblapclass)jelseiffpeturnTyp=JCML)res=newHashMap();S/lXReaderreadr=newSAXR-eadar()jDocumentdoc=readepread(i&);Elementroot=docgetRootElement();L.istlist=roote:JL0irienti&(),for(Obje匚t:list)Elemente=(Elemenit)ojres.put(e.fetName()e.getTexTirirn();iscloseO;urlCon.di5onnect();

24、re+-u尸rraq:iscloseO;urlCon.disconnect();reinrn廠es;catch(Exceptione)JreturnneuHsshMap()AuthorizationInfo類:publicclassAuthorizaionlnfoimplementsSerializable*/Listfunc_info;Stringauthorirer_appid;5tring3ythorizer_refresh_tokenjinexpires_in;Stringsuthorizer_acce55_taken;ListgqtIFunc_infa()privatestaticf

25、inallongsrialVrsionUlD=-81S0143928429891999L;publicpublicpublicpublicpublicpublicreturnfonc_info;publicvidsetFunc_infa(Lis+func_inifo)this節(jié)Lmfinf口=func_info;publicStringgetAuthorizer_appid()Returnauthorize-r_ppid;publicwoldAuthorizer_appid(Stringauthorizerappid)thisBauthorizer_appicl=authorizer_appid;publicStringgetAuthorirer_refresh_token()returnsuthorizer_refresh_token;publicvoidsetAuthorizer_refresh_token(Sringauthorizer_refresh_token)this.authorizer_refresh_token=authorizer_riefresh_tQkenjpublic

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論