版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信开发文档2015年10月1. 微信公众号的注册32. 开发环境的搭建52.1. 公众号开发环境准备52.1.1. 映射工具53. 开发者模式73.1. 数据交互73.2. 开发模式接入73.3. 消息的接收与响应.1.14. 用户管理124.1. 获取用户基本信息接口 144.2. 程序实现161. 微信公众号的注册腾讯官方微信平台地址:点击注册:微信-公众平台毎个仅證阳碍一曲号:盟是昱 订站或企业寻馆为建量二s済虫弓末被AM二公处平纽£® ”未 按總信幵放平育庄册未被牛人砂号牌圭血蹄思码字毋©I#或育英丈長.期盲眼居漳町GJ在选择类型时,有三种类型可供选择(
2、 选择后不可更改):1活3嗣"4信日迟5公介飙.-目成咖厂料谆,夬型下町故订阅号錘号FT*哲;、人曲口 -4F隹传滞方式.恂4 n«© .>!» «?Hfllfll* 9WHIS:5企业幻®刖傀團次的业勇CE势fflPlt 琲岭力.舫位公a号務孚讯“岭企业和taa内詡ra出工.上下台”伙 ftn*w.aBnaw 1M于个人MXW只不用于个人证份口 *iw±m3天审花冉4M/n訝?(厲廩9-nr®R仃険"丑丸目益示®1洎号二示皿殛*旳15吃何巒/自走乂般«吐炖做幡/目示乂弟mR离2
3、橹口 16力盧煖禮口第力g"J无«KSD 付filchifirwitwirwxmr*w«颐拜推绻3拜追Q 昨砲烘2. 开发环境的搭建2.1. 公众号开发环境准备1、一个微信公众号2、外网映射工具(开发调试)与微信对接的url要具备以下条件:1)、在公网上能够访问到2)、端口只支持80端口2.1.1. 映射工具ngrok可以将内网映射到外网上面,这样就可以在公网访问你的本地网络服务 使用方法:1、下载官方最新客户端2、下载配置文件ngrok.cfg3、运行客户端是,请添加-config以载入配置文件。例如:ngrok -config ngrok.cfg -subdo
4、main example 8080意为将本地的8080端口链接到example.tunnle.mobi 上liindgw p? T 6.1.I版额所有 Ct > 2089t CaripAiNit inn » 保躍所有书C x SUiw7 npihBriiytLz;f Mgrvh onf ig ingrroh .cf g vu-bdomin ««««$>Is H锄威.33UVWTZi冷<CIip1*C to quit)klim i>gn poriauril in字 Forward Ing; Inleib 1 n tnrf
5、acw* CopwiRv>g Cann T bmv1*!?ktVpiyB'XAnplB »tunfi-B 1 Bna<bi A 12?" S4K0 htt:zz«.tunI.iwbi -> 127,0_flTlH.OHns半F上图意为映射成功。将本地地址映射到了国内 http:/example.tunnle.mobi这个地址,这个地址是永远不会变的。如果本地项目为:http:/localhost:8080/Test/index.jsp,有了这个映射,我们可以在公网上直接输入 http:/example.t unn le.mobi/Test
6、/i ndex.jsp3. 开发者模式3.1. 数据交互”转发至服务器P转发给微 信客户端微信后吕/r n处理后返回蛤微信后台微信公众号服务微信公众服务器就是我们在开发模式下进行开发的内容,包括自己的逻辑、自己 的业务开发都是在这里进行。32 开发模式接入1、进入“开发者中心”,点击“开发者文档”徹信认证左全中心违规记录在議接口谓就工具开发者问哥焉眈公处平曲S试狀号公豳第三方平吿开按吿中心肾讯r云CDN加速輪 微信I公众平台开发者文档”开小逸更祈日志开ife舌规范处号摂口醮说明接口更聊制诜明接口餌5抿丹阖首引开发舌工貝»抵取接口罔用疑锯按收消宜>龛送消息*消豆加釋虔*去材它理用
7、户皀理m_董型口理第一步:填写服务器配置按川南目录1JH225?- :垃弓服务砥鱼3簧二步;莊证眼券翻就的扫处性4 55争:艷谜接人械信備a平吕幵坂r幵发看需要按照如T妒銀完战:L爭巨展隽解査2-査銅闵詢垃址的有豉性3,战鲫哀档倾业芬選需下面详砌堀这树涉彗,肃一步:埴写腦务器丙曙査录馆信处R平占官网后.在瑟平借后吿网面_幵环中<质,熬击 PSIXS7按用.填写B鹅 器地址(URL) h Token和Encoding AE5Key r瓦中UR雇幵览音用辛接收微信消息*闻件&肉口 URL 5炬n可由幵发者可取任意填写用柞生咸鋅(iSTokenfl接口URL中邑含的TokEn进行比时,
8、从而懸开友客中心氏顼持口惟£ © 开Bi宿中心F填写脛甘寿配亘 河1写接配£?Q .此倍口感EM:拥勺目己的匿気器归逓. m写的URLiS華正as黑腹瞰区吨的To箱<1, jjjnhs : .-.URL总綁汕ttp:"5F头.ShuTSBOsK口.Taken型聚为却翩!字.忙度土字特、 H-iATcken ?EncodingAESKey0 /4Jl&lJL生Ji£;蛇111>5圮列由4池寺石诅曲.可IStfUfBt,字狂ESi泪A-E * ?-Z , C-9. fi-<kSncodlr>gAESKey ?消息if
9、l鮭宮方式彬据业55和.选扭消电in聲蚁呈.启毎姑捋立即生戒叔WUXfit文損式下.不磧用消呂;垃幕血旳能.宾主菲靱荻低義砂式T ”明窓 霰畛杼,方使幵皱简购康曲护去全転(»?)立主(5式F ,消JS也为纯巴宣.若雯幵壇者加出和翼畐,處主生逊商KSURL微信公众号服务器的入口地址Toke n:由开发者随意填写,它主要是在接入验证的时候需要一个签名 EncodingAESKey这是随机生成的一个字符串,它主要用作信息加密 第二步:验证服务器地址的有效性开耳肴崔交号息后滅石服务器将发送右ET谴求到填写的服务器地址URL上右ET请求携帝四个参数:sig nature微倍加密签名f对gn白t
10、ure结合了开发者填写的toMn参数和 请求中的tim朋tamp蔘数、nonce#数°timestamp时间戳nonceechostr随机字符串开发書通过检业igwtu厝对请求进行校验(下面有校验方式).若确认I比次GET请求来目微信服务器,请 原样返回echostr#内容F则接入生效r咸为开发者成功否则接入失败*力诲F楼验澄桎如下:1. Stoker, timestamp. morK昔三个童敖进行宇典睜5療序2. 梅三个参数字符串拼接咸一?串逬行珈密3. 开发看蕪悔it鹿后的字符率可与测阳比馆对比.标识儼请求来31于徼信创建微信服务器的入口:5 public class Weinx
11、inServiet extends HttpServiet 6 -Overrideprotected void doGetHttpServletRequest req, HttpServletRespouse reap)throws SezvletExcep匸工口口” IOExcep匸:Ldii String signature = req. etParameter ("signat;ure");2匸ring 匸zLmes匸amp req. getParanke匸E:r ("tLiniES匸airp”):String nonce = req»getPar
12、ameter("nonce");3456String ecricstr - req. getParaiteter (T,ec?iGstr ");PrintWrit;er ont = resp, getWriter ();if(CheckUtil» checkSignature(3ignacure, timescampf nonce) out,print(echostr);校验:7public class CheclcUtil private static final String toJten=MXLielinyii,t;public static bo
13、olean checksignatureString signature,String timestamp,iString nonce)卜String arr new Stringtoken,timestamp, nonce;"排序Arrays sort(arr);:"生成字符串StringBuffer content - new StringBuffei();for(int i = 0 ; i < arr 1ength ;i+)concerzt,append (arr i);;ii/shaljD密String temp = qetShl(content.toStri
14、ng);return temp亡quale(signa匸口工巳);Ipublic static String getSnal(S匸tiny str)if "口= str | 0 = str.length return null;i1chart) hexDigits - *0* f * 11f *2"r V y *5* F W 171f r8'r 19r,y 'b rc f 、”* &», £vtry MessageDigesl; ir.dTenip = HessageDigest jet Instance (thSHAlM );配
15、置:1 <?xml ver3iQn=Hl.0w encodingsUTF-82 <web-app vei3ion=,r24"xmln3=,iLttpr/java * sun com/xml/ns/jee"4xmlns : xsi= Irhttp:/vvv v3 org/2001/XMLSchema-instancexsi: scnemdLQcat;ion= *http:/7jsva . sun. com./xml/ns/j26 iittp:/java * sun» coia/l/ns/j2ee/web-app_2_4. xsdn>7E1- <
16、;servlet>3<serviet-nae>weixinServiei:</5erviet-nar.e><aervlet-class >com * imooc servlet .UminxinS 亡 i?vl 皀匸 C =ervle t-clas3></servlet><servlet-mapping><serv -najr.e>weixmServlet< ' s ervLr. -y:ajr.e><url-pattern>/wx dcK/url 匸亡 </3ervlet-
17、itapping></web-app>33 消息的接收与响应将映射在外网的http:/example.tunnle.mobi/Weixin/wx.do配置到微信后台服务器URL必须以http*开头f目前支持80醤口*将代码中的token配置到后台服务器private static final String toiten='TxLielinyu,T;Token必须为英文或数字,恬度为3-325fl么SToken ?随机生成En codi ngAESKey字符串,点击提交,执行 Weix in Servlet,进行接入校 验,提交成功,说明开发环境和微信后台的对接已经完成
18、。开发者中心停用配習项按口报吾开发者1DAppIDCffilD)Ap pSecret显示密钥重習倉器配送(已启用】偉用展务器配蛊后,用户消息fl开邈消需害的事件推送”柠不左皱转養到该URL中L IL 虽爸鑒:吐 httpZmyexample2,tunneI.rmobi/Weixin/wx.doIokcn(. imoocEncodingAKKey(消J&加解烹密钥 6) 8chm4rWOLCxJnSs2enc4Cj62Ezqypa0z6tO9WidheCf4. 用户管理需要申请一个测试号,其使用可以说与实际的公众号没有什么区别,可以这样: 其生成了一个二维码,你可以自己扫描关注,从而成为
19、这个公众号的关注用户,当然把二维码发给朋友来关注,以便模拟更真实的环境。二、同样要配置接口信息,即url 和token (这个是你自己提供的)。然后就可以利用获得的appid和 即psecret (这个 是公众平台提供的)来开发测试各种接口功能了。1、打开你的微信公众号,点击“开发者中心”的显示栏里有“公众测试账号”理口伽0 iSSffil佶认证妄全中心幵如文档在妙匚试工具公众号第三方平台2、用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维 码。在手机上会出现以下界面:寺川 |3G/|85% 11:03脳应用登录即将登录公众平台测试账号系统请确认是否本人操作S同意使用基本资
20、料登录此网站确认登录取消pnyan.baidu.cofn'、点击“确认登录”按钮,回到电脑的网页,网页将变为:miv.w富耳每干同込“轴工蛊MCWt4.1. 获取用户基本信息接口在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID (加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。获取用户基本信息开发者可通过OpenID来获取用户基本信息。请使用https协议。接口调用请求说明http请求方式:GET n/user/
21、i nfo?access_toke n=ACCESS_TOKEN&ope nid=OPENID & la ng=zh_CN参数说明参数是否必须说明access_toke n是调用接口凭证ope nid是普通用户的标识,对当前公众号唯一lang否返回国家地区语言版本,zh CN简体,zh TW繁体,en英语返回说明正常情况下,微信会返回下述 JSON数据包给公众号:"subscribe": 1,"cpeniid": "oLpStenSSDeXSUOCTKricStiEx-Q,"niekname ": '
22、方i書"mex": 1,language""city-: 深"provincE*; "FSucountry'*:呷国"r"heaiimgurl": "http:/wx + qlcgo * cn/mncpen/ Kkv3 H73 QgbEZmoo lrlr P4Uj RRqz 3 ibUj I9J 匚1丽如00 NkEqz 29yTS JzErnjRtiDLI ctS NdLJg cDMi cIE3i aibz Ln3 4 JLwfi cVvl 6/0",',JUb3cr
23、ibe_tLmff: 1389684286参数说明参数说明subscribe用户是否订阅该公众号标识,值为 0时,代表此用户没有关注该公众号, 拉取不到其余信息。ope nid用户的标识,对当前公众号唯一nickn ame用户的昵称sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知city用户所在城市country用户所在国家province用户所在省份Ian guage用户的语言,简体中文为zh_CNheadimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空subscribe_t
24、ime用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间42 程序实现获得 ACCESS TOKEN :public static String geLAccEss_r;a5cen j) <SErmg3cri ng fl.PP5ECRI:T-ff,String url /apt.w-eijtinPqq,cop/匚口口欣“?口£巧上.匸曲亡cli龙总匸.匚re日便日十 APPID + "secret-"1 +APP5ECHET?SXriEig a匚匚unnTukun nail;try URL urlGet new DRL url);HttpURLCc
25、nnea11 on http 1 Hx vpORLCcnnect 1 on * ux l Get apenConne Gtion );htxp setRequecethad (GET*;"必须定色匸万式请束311: cp aetReque gc Pr opeit-y (* Consent =Type r * application/x-wwwf c rm- uilencoded"Heep aetDoOutpu匸Ctrne;ic cp. aecDolnpuc (troe;SyflremB S£Ej?roperEy( "sun. set clienc def
26、ault匚"30000" / ./.连:接迄届口寸3DJ'Sysreir. j?etPropecy<"san. m ellene a defaulcReadTiKueaux, n3Q口口。1" t ; f /读取超时3。#*he tp * eaiine:et ():InJiUitStream l 刊匕亡亡目.ge-tTri|Fy.Stream (|i :iTtt -size -1ravQ.ilablc():byte jsronBytcff -nc*r brtc sixe; is.readjsonBYtest;String meiffsagc
27、nw St ring (j 3 , " UT F= 9 MJS-ONObjeci; decnc Json new J-SONObjeci; (message); acceaaTcDten = demoJaan geitSEncQ (初亀匚匚芒耳乞匚口比启口 戶);1catoli (Excepcion e e upruiLS匸3.uKTi:aiCE ();JretcraaeceasTcken;获取用户信息:pikbl&c static MspOtflftg,Stsln> Uerlnfo (Stf in ieeisToke-n PString.Exng UEl = &quo
28、t;beeps s/api. weixin , qq- ccar/cgibin/Dser/infPaecess toJren=B, +-aeeessTolcen+ "iepenld="-KipenId+!n,Llang= zh CKT" ? Map<Stf S tz ing> aserMap = new Hashap<St;Ting r 5 lx in-gi> ();try URL urltjec new ukl (url)日匸匚pURLConnee匸ncin fixup = (HtEpCTRLConnee'Eion) urlSee
29、 *openCcmnecthttp, aetRequestMethod ( GET;"必浜是上t方式请箕h exp, s e t'Re qyes cP rope rty (" Co n c en P 4pp 1 lea c ioti/s-ww- f o rm- urlenc oded " f:鬥匸匸匸MQuufni匸(triae|i jhttp 吕芒匸 Da Input; i £i口日);System jetPrapezty un, net client BdefaultCannectTiir.eaut" P 町30000町):"连接超时技0秒svszem, retFroperty raun, nec, cllenc,deraulcPeadlLmeo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山区教育多元协作发展策略
- 2024版劳务分包合同的主要内容
- 2025版消防安全设计与咨询服务合同3篇
- 2024版全日制劳动合同书范本
- 二建水利水电实务-二级建造师《水利水电实务》高分通关模拟卷3418
- 二零二五年度带宠物友好二手住宅买卖合同3篇
- 第19课 资本主义国家的新变化 说课稿-2023-2024学年高中历史统编版(2019)必修中外历史纲要下册001
- 2025年度旅行社旅游车队承包经营协议2篇
- 2024版户外健身器材购销合同
- 数字编码(说课稿)-2024-2025学年人教版数学三年级上册
- 债券市场基础知识及应用
- 国内No.7信令方式技术规范----综合业务数字网用户部分(ISUP)
- 销售人员培训教材
- 尾矿库在线监测方案)
- 会计恒等式--试讲
- 对外经贸大学管理学原理复习大纲精品
- 房屋安全简易鉴定表.docx
- FSSC运营管理制度(培训管理办法)
- 警察公安工作汇报ppt模板ppt通用模板课件
- (完整)中考英语首字母填空高频词
- 海洋科学导论考试复习题(含答案)
评论
0/150
提交评论