| | |
| | | package cc.mrbird.febs.pay.util; |
| | | |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import org.dom4j.io.SAXReader; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | |
| | | import org.dom4j.Element; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.InputStream; |
| | | import java.util.*; |
| | | |
| | |
| | | * |
| | | * @author shenshao |
| | | */ |
| | | @Service(value="wechatEventUtil") |
| | | public class WechatEventUtil { |
| | | |
| | | |
| | | @Autowired |
| | | private AgentProducer agentProducer; |
| | | |
| | | private static Logger log = LoggerFactory.getLogger(WechatEventUtil.class); |
| | | |
| | |
| | | * @param req 请求 |
| | | * @return 校验结果 |
| | | */ |
| | | public static String verification(HttpServletRequest req, String wechatToken) { |
| | | public String verification(HttpServletRequest req, String wechatToken) { |
| | | // 接收微信服务器发送请求时传递过来的参数 |
| | | String signature = req.getParameter("signature"); |
| | | String timestamp = req.getParameter("timestamp"); |
| | |
| | | * @param req |
| | | * @return |
| | | */ |
| | | public static String messageEvent(HttpServletRequest req) { |
| | | public String messageEvent(HttpServletRequest req) { |
| | | String result = null; |
| | | Map<String, String> map = xmlToMap(req); |
| | | String fromUserName = map.get("FromUserName"); |
| | |
| | | log.info("事件处理:event:{}、msgType:{}、toUserName:{}、fromUserName:{}", eventType, msgType, toUserName, fromUserName); |
| | | if ("event".equals(msgType)) { |
| | | if ("subscribe".equals(eventType)) { |
| | | result = imgTextMsg(toUserName, fromUserName, "新用户注册", "仅限上海地区手机号用户", "图片地址", "点击后跳转的路径"); |
| | | result = imgTextMsg(toUserName, fromUserName, "新用户注册", "欢迎光临【药王谷铺子】,点击总下角【药王谷铺子】-【商城】。", "图片地址", "点击后跳转的路径"); |
| | | log.info("新增关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName); |
| | | StringBuffer stringBuffer = new StringBuffer(); |
| | | if(map.containsKey("EventKey")){ |
| | | /** |
| | | * 扫带参数二维码 |
| | | */ |
| | | String eventKey = map.get("EventKey"); |
| | | stringBuffer.append(eventKey); |
| | | stringBuffer.append("-"); |
| | | stringBuffer.append(fromUserName); |
| | | agentProducer.sendMemberSubScanMsg(stringBuffer.toString()); |
| | | } |
| | | /** |
| | | * 普通关注事件 |
| | | */ |
| | | agentProducer.sendMemberSubMsg(fromUserName); |
| | | } else if ("unsubscribe".equals(eventType)) { |
| | | log.info("取消关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName); |
| | | } |