300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信公众服务号接口接入 实现开发回复功能 而非后台设置

微信公众服务号接口接入 实现开发回复功能 而非后台设置

时间:2020-08-23 06:03:04

相关推荐

微信公众服务号接口接入 实现开发回复功能 而非后台设置

参考文档地址:https://mp./wiki?t=resource/res_main&id=mp1421135319

接入概述

接入微信公众平台开发,开发者需要按照如下步骤完成:

1、填写服务器配置

2、验证服务器地址的有效性

3、依据接口文档实现业务逻辑

讲到接口接入就不得不提,服务器实现公众号自定义功能;因为,接口接入是开发的基础。

公众号开发,需要1。申请公众号,2.开发者认证 3,获取公众号开发信息 4.服务器配置启动(接口接入)

这里我只讲下服务器配置(接口接入):

private static final String TOKEN = "immco";

/**

* 微信接入模块;接入微信公众平台开发第一步

* @param request

* @param response

* @return

* @throws ParseException

* @author lbh

* @throws IOException

* @date 创建时间:1月18日 下午4:13:20

* @parameter

*/

@RequestMapping(value = "/wxServerBridge", method = RequestMethod.GET)

public void wxServerBridge(HttpServletRequest request,

HttpServletResponse response)

throws ParseException, IOException {

String signature =request.getParameter("signature");

String timestamp =request.getParameter("timestamp");

String nonce =request.getParameter("nonce");

String echostr =request.getParameter("echostr");

PrintWriter out = response.getWriter();

if (WXAuthUtil.checkSignature(signature, timestamp, nonce)) {

out.println(echostr);

}

}

/*

* 开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

* */

public static Boolean checkSignature(String signature,String timestamp ,String nonce){

String[] arr = new String[]{TOKEN,timestamp,nonce};

//1)将token、timestamp、nonce三个参数进行字典序排序

Arrays.sort(arr);

//2)将三个参数字符串拼接成一个字符串进行

StringBuffer content = new StringBuffer();

for(int i=0;i<arr.length;i++){

content.append(arr[i]);

}

//3)sha1加密

String temp = getSha1(content.toString());

String temp1=SHA1.encode(content.toString());

System.out.println(signature);

System.out.println(temp);

System.out.println(temp1);

//4)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

return temp1.equals(signature);

}

/**

* sha1加密算法工具

* @param str

* @return

* @author lbh

* @date 创建时间:1月18日 下午4:19:42

* @parameter

*/

public static String getSha1(String str){

if (null == str || 0 == str.length()){

return null;

}

char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

'a', 'b', 'c', 'd', 'e', 'f'};

try {

MessageDigest mdTemp = MessageDigest.getInstance("SHA1");

mdTemp.update(str.getBytes("UTF-8"));

byte[] md = mdTemp.digest();

int j = md.length;

char[] buf = new char[j * 2];

int k = 0;

for (int i = 0; i < j; i++) {

byte byte0 = md[i];

buf[k++] = hexDigits[byte0 >>> 4 & 0xf];

buf[k++] = hexDigits[byte0 & 0xf];

}

return new String(buf);

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

return null;

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

return null;

}

}

代码完成并部署可以访问的外环境下,微信通过域名可以访问到,这是就可以点击“提交”;如果提示验证通过就证明接口成功;接下来的所有公众开发就可以逐步进行了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。