package com.jingcheng.template.service; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jingcheng.template.mapper.WechatConfigMapper; import com.jingcheng.template.model.WechatConfig; import com.jingcheng.template.util.HttpRequestUtils; import com.jingcheng.template.util.LogUtils; import com.jingcheng.template.util.Sign; import com.sun.org.apache.bcel.internal.generic.NEW; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.Map; @Service public class WeixinService{ @Value("${weixin.appId}") private String appId; @Value("${weixin.appSecret}") private String appSecret; @Value("${weixin.getAccessTokenUrl}") private String getAccessTokenUrl; @Value("${weixin.getTicketUrl}") private String getTicketUrl; @Resource private WechatConfigMapper wechatConfigMapper; Logger logger = LogUtils.getBussinessLogger(); /** * 刷新accesstoken * @return */ public void refreshAccessToken() { String accessTokenUrl = getAccessTokenUrl + appId + "&secret=" + appSecret; String result = HttpRequestUtils.sendGet(accessTokenUrl); String accessToken = JSON.parseObject(result).getString("access_token"); WechatConfig wechatConfig = wechatConfigMapper.selectByPrimaryKey(1L); wechatConfig.setAccessToken(accessToken); wechatConfig.setUpdateDateTime(new Date()); wechatConfigMapper.updateByPrimaryKeySelective(wechatConfig); } /** * 通过accessToken刷新ticket */ public String getTicket() { WechatConfig wechatConfig = wechatConfigMapper.selectByPrimaryKey(1L); String access_token = wechatConfig.getAccessToken(); String getTicketNewUrl = getTicketUrl + access_token + "&type=jsapi"; String ticketResult = HttpRequestUtils.sendGet(getTicketNewUrl); JSONObject ticketJson = JSONObject.parseObject(ticketResult); String jsapi_ticket = ticketJson.getString("ticket"); return jsapi_ticket; } public Map getSign(String url) { String jsapiTicket = getTicket(); logger.info("jsapiTicket:" + jsapiTicket); Map sign = Sign.sign(jsapiTicket, url); sign.put("appId", appId); logger.info("sign:" + sign); return sign; } }