zoukankan      html  css  js  c++  java
  • jssdk配置

    @RequestMapping(value = "/getConfig")
        @ResponseBody
        public Map<String, String> getConfig(HttpServletRequest request) {
            String accessToken = request.getParameter("accessToken");
            String url = request.getParameter("url");
            String jsApiTicket = request.getParameter("jsApiTicket");
            // String url="app.lanbanshou.com/SSMDemo";
            Map<String, String> map = makeWXTicket(jsApiTicket, url);
            return map;
        }
        
        /**
         * 获取access_token
         * @param request
         * @param response
         * @throws Exception
         */
        @RequestMapping(value = "/getAccessToken")
        @ResponseBody
            private JSONObject getAccessToken(HttpServletResponse response) {
                String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
                String requestUrl = accessTokenUrl.replace("APPID", WXConfig.appid).replace("APPSECRET",
                        WXConfig.appsecret);
                String result = HttpClientUtil.doGet(requestUrl);
                //System.out.println(result+"===========");
                return JSON.parseObject(result);
            } 
        
        // 获取ticket
        @RequestMapping(value = "/getJsApiTicket")
        @ResponseBody
            private JSONObject getJsApiTicket(String accessToken) {
                String apiTicketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
                String requestUrl = apiTicketUrl.replace("ACCESS_TOKEN", accessToken);
                String result = HttpClientUtil.doGet(requestUrl);
                return JSON.parseObject(result);
            }
    
            // 生成微信权限验证的参数
            public Map<String, String> makeWXTicket(String jsApiTicket, String url) {
                Map<String, String> ret = new HashMap<String, String>();
                String nonceStr = createNonceStr();
                String timestamp = createTimestamp();
                String string1;
                String signature = "";
    
                // 注意这里参数名必须全部小写,且必须有序
                string1 = "jsapi_ticket=" + jsApiTicket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + url;
                try {
                    MessageDigest crypt = MessageDigest.getInstance("SHA-1");
                    crypt.reset();
                    crypt.update(string1.getBytes("UTF-8"));
                    signature = byteToHex(crypt.digest());
                } catch (NoSuchAlgorithmException e) {
    
                } catch (UnsupportedEncodingException e) {
    
                }
    
                ret.put("url", url);
                ret.put("jsapi_ticket", jsApiTicket);
                ret.put("nonceStr", nonceStr);
                ret.put("timestamp", timestamp);
                ret.put("signature", signature);
                ret.put("appid", WXConfig.appid);
    
                return ret;
            }
    
            // 字节数组转换为十六进制字符串
            private static String byteToHex(final byte[] hash) {
                Formatter formatter = new Formatter();
                for (byte b : hash) {
                    formatter.format("%02x", b);
                }
                String result = formatter.toString();
                formatter.close();
                return result;
            }
    
            // 生成随机字符串
            private static String createNonceStr() {
                return UUID.randomUUID().toString();
            }
    
            // 生成时间戳
            private static String createTimestamp() {
                return Long.toString(System.currentTimeMillis() / 1000);
            }
    
    

      注意:调用时必须加入白名单

     
    大家觉得不错的话可以支持一下我哦

  • 相关阅读:
    小学生入门激光SLAM<二>、2.1-前端点云帧间匹配
    小学生入门激光SLAM<一>、激光雷达去除畸变
    imgui开发笔记<1>、ubuntu环境下快速应用
    ROS问题记录
    LibTorch实战六:U2-Net理论详解<一>
    git-clone小技巧
    深度学习模型部署概述
    debian10 docker 安装 jenkins
    FastDFS集群部署
    python中的metaclass
  • 原文地址:https://www.cnblogs.com/xiangxiang521/p/9518958.html
Copyright © 2011-2022 走看看