首页 > 其他分享 >百度云和微信账号接入

百度云和微信账号接入

时间:2022-11-29 10:02:19浏览次数:66  
标签:web return 账号 微信 resp token null 百度


利用百度云平台运行我们自己的服务端项目,在平台上线运行。利用这个项目对应的域名将其配置到微信公众平台,并填写token值。(这里的token值是我们自定义的一个字符串,它配置在服务端项目)在手机微信客户端搜索你的微信公众平台公众号(订阅号),当然通过二维码会更快速准确,呵呵。

下面我们先重服务器端开始。

进入百度云平台的管理控制台(请大家进入旧版--右上角):​​http://developer.baidu.com/dev​​点击创建应用,并创建一个手机web应用。

百度云和微信账号接入_上传

出现以下页面后,点击云环境:

百度云和微信账号接入_java_02

创建域名,选择开发语言(我用的是Java),选着版本管理器(我用的是svn),点击确定:

百度云和微信账号接入_war包_03

等待后弹出提示创建成功后,点击确定,跳转到如下页面---------创建版本:

百度云和微信账号接入_上传_04

点击创建版本后,会出现两种选择,一种是在线创建项目,然后在线编辑发布,本人还是觉得第二种顺手,上传war包,即将本地建好的web项目发布为war包,然后上传,在上线,我们就以上传war包方式为例:这里我们就暂且停下:开始来编辑我们需要的web项目。

百度云和微信账号接入_java_05

在eclipse中心建一个web项目(tomcat服务器)新建MainServer.java

需要导入的jar包:

百度云和微信账号接入_java_06

大家没有的可以到我的云盘去下​


  1. <span style="font-family:SimHei;font-size:12px;">package
  2.   
  3. import
  4. import
  5. import
  6. import
  7. import
  8. import
  9.   
  10. import
  11. import
  12. import
  13. import
  14. import
  15. import
  16. import
  17. import
  18.   
  19. import
  20.   
  21.   
  22. public class MainServer extends
  23. //这里是你定义的token值
  24. private final String TOKEN = "haha";  
  25. @Override
  26. protected void
  27. throws
  28. //取出随机字符串
  29. "echostr");    
  30. if(null==echostr||echostr.isEmpty()){    
  31.             responseMsg(req,resp);    
  32. else{    
  33. if(this.checkSignature(req)){    
  34.                 resp.getWriter().print(echostr);   
  35. else{    
  36. "");                                                                                                                                                                                                                                                                                                                                             
  37.             }    
  38.         }    
  39.           
  40.     }  
  41.       
  42. @Override
  43. protected void
  44. throws
  45.         doPost(req, resp);  
  46.     }  
  47.       
  48. //回复
  49. public void responseMsg(HttpServletRequest req,HttpServletResponse resp) throws
  50. null;    
  51. try{    
  52. this.readStreamParameter(req.getInputStream());    
  53. catch(Exception e){    
  54.             e.printStackTrace();    
  55.         }    
  56. //System.out.println(postStr);  
  57. if (null!=postStr&&!postStr.isEmpty()){    
  58. null;    
  59. try{    
  60.                 document = DocumentHelper.parseText(postStr);   
  61. if(null==document){    
  62. "");  
  63. return;    
  64.                 }    
  65. catch(Exception e){    
  66.                 e.printStackTrace();    
  67.             }    
  68.               
  69.             Element root=document.getRootElement();    
  70. "FromUserName");    
  71. "ToUserName");    
  72. "Content");    
  73. new Date().getTime()+"";    
  74. "<xml>"+    
  75. "<ToUserName><![CDATA[%1$s]]></ToUserName>"+    
  76. "<FromUserName><![CDATA[%2$s]]></FromUserName>"+    
  77. "<CreateTime>%3$s</CreateTime>"+    
  78. "<MsgType><![CDATA[%4$s]]></MsgType>"+    
  79. "<Content><![CDATA[%5$s]]></Content>"+    
  80. "<FuncFlag>0</FuncFlag>"+    
  81. "</xml>";                 
  82.               
  83.               
  84. //发送消息类型
  85. "text";    
  86. "";  
  87. "";//返回消息
  88.               
  89. //关注订阅号后,返回的提示
  90. if(null==keyword||keyword.equals("")){    
  91. "hi,how are you! I'm server and with baiduyun";  
  92.             }  
  93. //微信客户端发送time,服务器解析到后返回当前时间
  94. else if(keyword.equals("time")){  
  95. new
  96.             }  
  97. "---zhaofeng");    
  98.             resp.getWriter().print(resultStr);  
  99.     
  100. else
  101. "");    
  102.         }    
  103.         resp.getWriter().flush();  
  104.         resp.getWriter().close();  
  105.     }    
  106. //检查请求
  107. public boolean
  108. //这里是微信进行安全验证的四个值,由于token为明文,所以前用前三个值进行加密计算后的值与token对比(不具体描述)
  109. "signature");    
  110. "timestamp");    
  111. "nonce");    
  112.         String token=TOKEN;    
  113.           
  114.         String[] tmpArr={token,timestamp,nonce};    
  115.         Arrays.sort(tmpArr);    
  116. this.ArrayToString(tmpArr);    
  117. this.SHA1Encode(tmpStr);    
  118. if(tmpStr.equalsIgnoreCase(signature)){    
  119. return true;    
  120. else{    
  121. return false;    
  122.         }    
  123.     }    
  124.       
  125. public
  126. null;    
  127. try
  128. new
  129. "SHA-1");    
  130.            resultString = byte2hexString(md.digest(resultString.getBytes()));    
  131. catch
  132.         }    
  133. return
  134.     }   
  135.       
  136.       
  137. private String byte2hexString(byte[] bytes) {  
  138. new StringBuffer(bytes.length * 2);    
  139. for (int i = 0; i < bytes.length; i++) {    
  140. if (((int) bytes[i] & 0xff) < 0x10) {    
  141. "0");    
  142.             }    
  143. int) bytes[i] & 0xff, 16));    
  144.         }    
  145. return
  146.     }  
  147.   
  148. //
  149. public
  150. new
  151. for(int i = 0; i < arr.length; i++){    
  152.          bf.append(arr[i]);    
  153.         }    
  154. return
  155.     }    
  156.     
  157. //流中读取数据
  158. public
  159. new
  160. null;    
  161. try{    
  162. new BufferedReader(new
  163. null;    
  164. while((line = reader.readLine())!=null){    
  165.                 buffer.append(line);    
  166.             }    
  167. catch(Exception e){    
  168.             e.printStackTrace();    
  169. finally{    
  170. if(null!=reader){    
  171. try
  172.                     reader.close();    
  173. catch
  174.                     e.printStackTrace();    
  175.                 }    
  176.             }    
  177.         }    
  178. return
  179.     }    
  180. }  
  181. </span>  

这里是一个最基本的骨架代码,大家可以在上面进行跟多丰富的扩展。接着我们将项目导出为war包。接着就是刚刚说到的上传war包了,这里就不再讲了。上传成功后点击上线(哦这里有个下提示,当然这里不存在,免费用户每次只能上传50M以内哦),等待提示“代码已生效”后,出现:

百度云和微信账号接入_上传_07

接着我们就应该配置微信公众平台了:(申请注册微信公众平台要求比较严格,需要审核几天到N天不等)。https://mp.weixin.qq.com/

前不久我是借用别个的账号进行测试的,我的公众号都几天了还没有通过,哎~所以这里没法给大家截图。其实微信里边配置很简单,就是一个访问项目的域名,和一个token值,填正确这两个后就可以确定了,然后就是关注账号进行测试了。我的上一个测试用的是return这个号,大家关注后发送time试下效果(相同代码)

这里的域名就是你创建web项目时写的mytestserverforweixin.duapp.com注意这里并不是完全正确的域名,还需要在前面加上你的版本号:1.mytestserverforweixin.duapp.com。希望过几天我的公众号能够通过,

到时候给大家截两张图更好。

标签:web,return,账号,微信,resp,token,null,百度
From: https://blog.51cto.com/u_13657808/5894082

相关文章