1 changed files with 61 additions and 0 deletions
@ -0,0 +1,61 @@ |
|||||
|
package com.epmet.controller.officialaccount; |
||||
|
|
||||
|
import org.apache.commons.codec.digest.DigestUtils; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.apache.logging.log4j.LogManager; |
||||
|
import org.apache.logging.log4j.Logger; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Collections; |
||||
|
|
||||
|
/** |
||||
|
* 党群e事通公众号(客服号) |
||||
|
* |
||||
|
* @author yinzuomei@elink-cn.com |
||||
|
* @date 2020/7/8 12:43 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("customerservice") |
||||
|
public class OfficialAccountCallBackController { |
||||
|
private Logger logger = LogManager.getLogger(); |
||||
|
/** |
||||
|
* @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
||||
|
* @param timestamp 时间戳 |
||||
|
* @param nonce 随机数 |
||||
|
* @param echostr 随机字符串 |
||||
|
* @return java.lang.String |
||||
|
* @author yinzuomei |
||||
|
* @description 确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败 |
||||
|
* @Date 2020/7/8 12:47 |
||||
|
**/ |
||||
|
@GetMapping(value = "/callback") |
||||
|
public String wxServerValdation(@RequestParam("signature") String signature, |
||||
|
@RequestParam("timestamp") String timestamp, |
||||
|
@RequestParam("nonce") String nonce, |
||||
|
@RequestParam("echostr") String echostr) { |
||||
|
if (StringUtils.isEmpty(signature) || StringUtils.isEmpty(timestamp) || StringUtils.isEmpty(nonce) || StringUtils.isEmpty(echostr)) { |
||||
|
logger.warn("入参错误"); |
||||
|
return ""; |
||||
|
} |
||||
|
ArrayList<String> list = new ArrayList<String>(); |
||||
|
list.add(nonce); |
||||
|
list.add(timestamp); |
||||
|
//这是第5步中你设置的Token
|
||||
|
list.add("12345678Yzm"); |
||||
|
Collections.sort(list); |
||||
|
String sha1Singnature = DigestUtils.sha1Hex(list.get(0) + list.get(1) + list.get(2)); |
||||
|
if (sha1Singnature.equals(signature)) { |
||||
|
logger.info("校验成功"); |
||||
|
return echostr; |
||||
|
} else { |
||||
|
logger.warn("校验失败"); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
Loading…
Reference in new issue