1.查看原文观看视频:http://www.ibloger.net/article/272.html
2.官方PHP接入文件注释介绍
?php/***wechatphptest表明php语句的说明和开始,表示此为php语言*///定义tokendefine("TOKEN","weixin");$wechatObjnewwechatCallbackapiTest();//实例化当前class类$wechatObj-valid();//$webchatObj变量—访问类中valid()方法classwechatCallbackapiTest//定义一个类,类名是class后的内容{publicfunctionvalid()//定义一个共有的名为valid的方法{$echoStr$_GET["echostr"];//从微信用户获取一个随机变量$echoStr//验证签名signature,可选if($this-checkSignature()){echo$echoStr;//如果签名相同,输出$echostr变量exit;}}publicfunctionresponseMsg()//以下是一个公有的responseMsg的方法,是这段代码的核心内容,获得微信用户段发来的信息,不同环境有所不同{//getpost数据,可能是由于不同的环境$postStr$GLOBALS["HTTP_RAW_POST_DATA"];//将信息保存到变量$postStr中,同时解析用户数据//提取post数据if(!empty($postStr)){//如果用户端数据不为空/*libxml_disable_entity_loader是防止XML外部实体注入,最好的办法就是自己检查XML的有效性*/libxml_disable_entity_loader(true);$postObjsimplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);//将变量$postStr解析并赋予变量$postObj$fromUsername$postObj-FromUserName;//将用户端的用户名赋予变量$fromUsername$toUsername$postObj-ToUserName;//将公众号ID赋予变量$toUsername$keywordtrim($postObj-Content);//将发来的文本内容去空格后赋予变量$keyword$timetime();//将系统时间赋予变量$time//构建XML格式的文本赋予变量$textTp1(ToUserName:微信目标方,FromUserName:微信来远方,CreateTime:系统时间,MsgType:回复微信信息类型,Content:回复微信内容,FuncFlag:是否为星标微信)$textTpl"xmlToUserName![CDATA[%s]]/ToUserNameFromUserName![CDATA[%s]]/FromUserNameCreateTime%s/CreateTimeMsgType![CDATA[%s]]/MsgTypeContent![CDATA[%s]]/ContentFuncFlag0/FuncFlag/xml";if(!empty($keyword)){//如果用户端发来的消息不是空$msgType"text";//回复文本消息为text文本类型$contentStr"欢迎来到wechat世界!";//这行就是我们进行文本回复的内容,如果要改回复的消息,只要在这里更改就可以$resultStrsprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);//将XML格式中的变量分别赋值,echo$resultStr;//输出回复消息}else{echo"Inputsomething...";//输入内容,此消息不会发送到微信端,只是测试时候使用}}else{echo"";exit;}}privatefunctioncheckSignature()//建立私有方法验证签名{//你必须定义一个自己的TOKENif(!defined("TOKEN")){thrownewException('TOKEN未定义!');}$signature$_GET["signature"];//从用户端获取签名赋予变量$signature$timestamp$_GET["timestamp"];//从用户段获取时间赋予变量$timestamp$nonce$_GET["nonce"];//从用户段获取随机数赋予变量$snonce$tokenTOKEN;//将常量TOKEN值赋予变量$token$tmpArrarray($token,$timestamp,$nonce);//建立数组变量$tmpArrsort($tmpArr,SORT_STRING);//数组排序$tmpStrimplode($tmpArr);//字典排序$tmpStrsha1($tmpStr);//加密if($tmpStr$signature){//判断$tmpStr与$signature变量是否同值returntrue;}else{returnfalse;}}}?接下来使用Java版本接入3.微信请求校验类
packagecn.weixin.validationTest;importjava.security.MessageDigest;importjava.util.Arrays;/***微信请求校验工具类*@authorX-rapido*@version1.0*/publicclassValidationUtil{privatestaticStringtoken"Rapido";//用户Token/***验证签名*/publicstaticbooleancheckSignauer(Stringsignature,Stringtimestamp,Stringnonce){//构建成一个字符串数组String[]strnewString[]{token,timestamp,nonce};Arrays.sort(str);//排序StringBufferbuffnewStringBuffer();for(inti0;istr.length;i++){buff.append(str[i]);}MessageDigestmdnull;//加密类Stringresultnull;try{mdMessageDigest.getInstance("SHA-1");//实例加密算法(微信文档中用SHA-1)byte[]digestmd.digest(buff.toString().getBytes());resultbytesToStr(digest);System.out.println("加密以后的字符串:"+result);}catch(Exceptione){e.printStackTrace();}returnresult!null?result.equals(signature.toUpperCase()):false;}/***将字节数组转换为16进制字符串*@parambyteArray*@return*/privatestaticStringbytesToStr(byte[]byteArray){StringstrDigest"";for(inti0;ibyteArray.length;i++){strDigest+byteToHexStr(byteArray[i]);}returnstrDigest;}/***将一个字节转换为16进制字符串*@parammByte*@return*/privatestaticStringbyteToHexStr(bytemByte){char[]digit{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[]tempnewchar[2];temp[0]digit[(mByte4)0X0F];temp[1]digit[mByte0X0F];StringsnewString(temp);returns;}}4.微信测试接入类
packagecn.weixin.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcn.weixin.common.ValidationUtil;/***接收来自微信服务器转发过来的请求[验证消息真实性]**@authorX-rapido**/publicclassAccessVerifyServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringsignaturerequest.getParameter("signature");//获取微信加密的签名字符串Stringtimestamprequest.getParameter("timestamp");//时间戳Stringnoncerequest.getParameter("nonce");//随机数Stringechostrrequest.getParameter("echostr");//随机字符串System.out.println("加密的签名串signatur:"+signature+",时间戳timestamp:"+timestamp+",随机数nonce:"+nonce+",随机字符串echostr:"+echostr);PrintWriteroutresponse.getWriter();if(ValidationUtil.checkSignauer(signature,timestamp,nonce)){out.print(echostr);}out.close();}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}web.xml?xmlversion"1.0"encoding"UTF-8"?web-appxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns"http://java.sun.com/xml/ns/javaee"xsi:schemaLocation"http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id"WebApp_ID"version"2.5"display-nameweixin/display-namedistributable/welcome-file-listwelcome-fileindex.html/welcome-filewelcome-fileindex.htm/welcome-filewelcome-fileindex.jsp/welcome-file/welcome-file-listservletdescription微信接入验证/descriptionservlet-nameAccessVerifyServlet/servlet-nameservlet-classcn.weixin.servlet.AccessVerifyServlet/servlet-class/servletservlet-mappingservlet-nameAccessVerifyServlet/servlet-nameurl-pattern/AccessVerifyServlet/url-pattern/servlet-mapping/web-app在一下联接中使用5.微信在接入时候,会以get数据请求我的url地址,我的Servlet就会接收数据,并进行签名认证返回接收的随机数,微信服务器接收随机数并进行签名认证,确定后就接入成功!
Java微信公众号平台接入视频-微信公众号接入监控视频-微信小程序可以直播吗
浏览量:2087
时间:
来源:X-rapido
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










