找回密码
 立即注册

QQ登录

只需一步,快速开始

参考文章

关注:2

所属分类: 微信开发 微信公众号开发资源 参考文章

微信公众号开发相关参考文章,不定期更新

微信服务号开发之服务器基本配置

[复制链接]
查看: 546|回复: 0
最佳答案
1 

4

主题

8

帖子

139

积分

新人求带

积分
139
 楼主| 发表于 2017-5-18 15:02:42 | 显示全部楼层 |阅读模式
1、参数获取,登录服务号

1411144.png

2、更改参数
  1. package com.kp.utils;  
  2.   
  3. public interface Constants {  
  4.   
  5.             String APPID = "";  
  6.             String TOKEN = "";  
  7.             String SECRET = "";  
  8.             String encodingAESKey = "";  
复制代码


3、url 配置可以参考企业号开发

http://www.henkuai.com/thread-30545-1-1.html

花生壳映射:http://www.henkuai.com/thread-30544-1-1.html

4、主要代码
  1. package com.kp.controller;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.io.PrintWriter;  
  6.   
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. import com.kp.aes.AesException;  
  11. import com.kp.aes.WXBizMsgCrypt;  
  12. import com.kp.service.CoreService;  
  13. import com.kp.utils.Constants;  
  14. import org.springframework.stereotype.Controller;  
  15. import org.springframework.web.bind.annotation.RequestMapping;  
  16. import org.springframework.web.bind.annotation.RequestMethod;  
  17. import org.apache.commons.io.IOUtils;  
  18. /**
  19. * 注解方式打开链接
  20. * [url=home.php?mod=space&uid=49329]@author[/url] py
  21. */  
  22. @Controller  
  23. public class CoreController {  
  24.     private String token = Constants.TOKEN;  
  25.     private String encodingAESKey =Constants.encodingAESKey;  
  26.     private String appID = Constants.APPID;  
  27.   
  28.     @RequestMapping(value = { "/wxJoin.do" }, method = RequestMethod.GET)  
  29.     public void coreJoinGet(HttpServletRequest request,  
  30.             HttpServletResponse response) throws IOException {  
  31.         // 微信加密签名(企业号为msg_signature)  
  32. //      String msg_signature = request.getParameter("msg_signature");  
  33. //与企业号不同1         
  34.         String signature = request.getParameter("signature");  
  35.         // 时间戳  
  36.         String timestamp = request.getParameter("timestamp");  
  37.         // 随机数  
  38.         String nonce = request.getParameter("nonce");  
  39.         // 随机字符串  
  40.         String echostr = request.getParameter("echostr");  
  41.         System.out.println("signature:"+signature);  
  42.         System.out.println("timestamp:"+timestamp);  
  43.         System.out.println("nonce:"+nonce);  
  44.         System.out.println("echostr:"+echostr);  
  45.   
  46.         PrintWriter out = response.getWriter();  
  47.         // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败  
  48.         String result = null;  
  49.         try {  
  50.             WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey,  
  51.                     appID);  
  52.             result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr);  
  53.               System.out.println("result:"+result);  
  54.         } catch (AesException e) {  
  55.             e.printStackTrace();  
  56.         }  
  57.         if (result == null) {  
  58.             result = token;  
  59.         }  
  60.         out.print(result);  
  61.         out.close();  
  62.         out = null;  
  63.     }  
  64.   
  65.     @RequestMapping(value = { "/wxJoin.do" }, method = RequestMethod.POST)  
  66.     public void coreJoinPost(HttpServletRequest request,  
  67.             HttpServletResponse response) throws IOException {  
  68.         // 将请求、响应的编码均设置为UTF-8(防止中文乱码)  
  69.         System.out.println("********进来了  coreJoin.do POST");  
  70.         request.setCharacterEncoding("UTF-8");  
  71.         response.setCharacterEncoding("UTF-8");  
  72.   
  73.         // 微信加密签名  
  74.         String msg_signature = request.getParameter("signature");  
  75.         // 时间戳  
  76.         String timestamp = request.getParameter("timestamp");  
  77.         // 随机数  
  78.         String nonce = request.getParameter("nonce");  
  79.          
  80.         //从请求中读取整个post数据  
  81.         InputStream inputStream = request.getInputStream();  
  82.         String postData = IOUtils.toString(inputStream, "UTF-8");  
  83.         System.out.println("postData:"+postData);  
  84.          
  85.         String msg = "";  
  86.         WXBizMsgCrypt wxcpt = null;  
  87.         try {  
  88.             wxcpt = new WXBizMsgCrypt(token, encodingAESKey, appID);  
  89.             //解密消息  
  90.             msg = wxcpt.DecryptMsg(msg_signature, timestamp, nonce, postData);  
  91.         } catch (AesException e) {  
  92.             e.printStackTrace();  
  93.         }  
  94.         System.out.println("msg=" + msg);  
  95.          
  96.         // 调用核心业务类接收消息、处理消息  
  97.         String respMessage = CoreService.processRequest(msg);  
  98.         System.out.println("respMessage=" + respMessage);  
  99.          
  100.         String encryptMsg = "";  
  101.         try {  
  102.             //加密回复消息  
  103.             encryptMsg = wxcpt.EncryptMsg(respMessage, timestamp, nonce);  
  104.             System.out.println("encryptMsg:"+encryptMsg);  
  105.         } catch (AesException e) {  
  106.             e.printStackTrace();  
  107.         }  
  108.          
  109.         // 响应消息  
  110.         PrintWriter out = response.getWriter();  
  111.         out.print(encryptMsg);  
  112.         out.close();  
  113.   
  114.     }  
  115.   
  116. }  
复制代码


5、如果采用上面的代码,那么url则是 http://域名/WXFWDemo/wxJoin.do。

注意:url不能为ip地址拼接

6、源码地址: 微信服务号配置.zip (12.13 MB, 下载次数: 81)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条



henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

网站业务
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com