| | |
| | | package com.panzhihua.sangeshenbian.api; |
| | | |
| | | import cn.hutool.http.HttpRequest; |
| | | import cn.hutool.http.HttpResponse; |
| | | import cn.hutool.http.HttpUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.panzhihua.common.controller.BaseController; |
| | |
| | | import com.panzhihua.sangeshenbian.service.ISystemMenuService; |
| | | import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService; |
| | | import com.panzhihua.sangeshenbian.service.ISystemUserService; |
| | | import com.panzhihua.sangeshenbian.warpper.LoginVo; |
| | | import com.panzhihua.sangeshenbian.warpper.SystemUserList; |
| | | import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; |
| | | import com.panzhihua.sangeshenbian.warpper.TokenVo; |
| | | import com.panzhihua.sangeshenbian.utils.SignatureUtil; |
| | | import com.panzhihua.sangeshenbian.warpper.*; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.data.redis.core.StringRedisTemplate; |
| | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.security.MessageDigest; |
| | | import java.text.MessageFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDateTime; |
| | |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | @GetMapping("/getSignature") |
| | | @ApiOperation(value = "获取签名",tags = {"三个身边小程序"}) |
| | | public R<?> getSignature() throws Exception { |
| | | String APP_ID = "wx118de8a734d269f0"; |
| | | String APP_SECRET = "0264342daefde5cd70a6adada09ee5b1"; |
| | | String accessToken = SignatureUtil.getAccessToken(APP_ID, APP_SECRET); |
| | | String jsapiTicket = SignatureUtil.getJsApiTicket(accessToken); |
| | | String nonceStr = UUID.randomUUID().toString().replace("-", ""); |
| | | String timestamp = String.valueOf(System.currentTimeMillis() / 1000); |
| | | String url = "https://huacheng.psciio.com/web/sangeshenbian/"; // 当前页面的URL,不包含#及其后面部分 |
| | | |
| | | String signature = SignatureUtil.getSignature(jsapiTicket, nonceStr, timestamp, url); |
| | | |
| | | System.out.println("appId: " + APP_ID); |
| | | System.out.println("timestamp: " + timestamp); |
| | | System.out.println("nonceStr: " + nonceStr); |
| | | System.out.println("signature: " + signature); |
| | | SignatureVO signatureVO = new SignatureVO(); |
| | | signatureVO.setTimestamp(timestamp); |
| | | signatureVO.setNonceStr(nonceStr); |
| | | signatureVO.setSignature(signature); |
| | | return R.ok(signatureVO); |
| | | } |
| | | |
| | | // private String ACCESS_TOKEN_URL = "GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"; |
| | | // |
| | | // public String getAppAccessToken(String appId, String appSecret) throws Exception { |
| | | // String accessToken = "0"; |
| | | // try { |
| | | // log.info("获取微信token参数:appid=" + appId + ",appSecret=" + appSecret); |
| | | // String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + appId + "&secret=" + appSecret; |
| | | // String result = HttpClientUtil.httpGet(accessTokenUrl, null, null); |
| | | // Map<String, Object> resultMap = JSON.parseObject(result, Map.class); |
| | | // StringRedisTemplate redisTemplate = wxXCXTempSend.stringRedisTemplate; |
| | | // if (resultMap.containsKey("access_token")) { |
| | | // accessToken = resultMap.get("access_token").toString(); |
| | | // redisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken); |
| | | // } |
| | | // HttpServletRequest request = ServletUtils.getRequest(); |
| | | // String requestURI = request.getRequestURI(); |
| | | // //加上时间戳 |
| | | // String datetime = new SimpleDateFormat("yyyyMMdd").format(new Date()); |
| | | // //这里是 Redis key的前缀,如: sys:tabieId:表名 如果不需要去掉表名也可以 |
| | | // String key = MessageFormat.format("{0}:{1}:{2}", "access_token_request_incr",datetime,requestURI); |
| | | // //查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1 |
| | | // redisTemplate.opsForValue().increment(key, 1); |
| | | // |
| | | // } catch (IOException ioe) { |
| | | // log.error("小程序http请求异常"); |
| | | // ioe.printStackTrace(); |
| | | // } |
| | | // return accessToken; |
| | | // } |
| | | |
| | | |
| | | } |