欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    (目前已經(jīng)完成了這個(gè)功能,示例網(wǎng)址:愛招標(biāo)——免費(fèi)實(shí)時(shí)標(biāo)訊推送平臺(tái),為企業(yè)負(fù)責(zé)人及商務(wù)人員即時(shí)掌控招標(biāo)動(dòng)態(tài)、中標(biāo)檢索、競(jìng)爭(zhēng)對(duì)手中標(biāo)項(xiàng)目分析等服務(wù)平臺(tái)。)

    做微信掃碼登陸,生成二維碼必須是微信公眾號(hào)中綁定的域這個(gè)域名,網(wǎng)站生成不了二維碼(網(wǎng)站與微信服務(wù)器不是同一個(gè)域名),而是調(diào)用微信系統(tǒng)的接口獲取二維碼,用戶掃碼后也是請(qǐng)求微信服務(wù)器

    微信公眾號(hào)

    實(shí)現(xiàn)思路

    1,微信的系統(tǒng)域名總是自動(dòng)轉(zhuǎn)掃到https,提供生成帶參數(shù)的二維碼的接口,這個(gè)參數(shù)就是唯一值(場(chǎng)景值)

    2,網(wǎng)站調(diào)用微信系統(tǒng),獲取生成的二維碼圖片

    3,用戶掃碼會(huì)直接調(diào)用微信服務(wù)器域名總是自動(dòng)轉(zhuǎn)掃到https,將用戶訪問微信服務(wù)器的信息記錄到redis,key就是唯一值(場(chǎng)景值)

    4,網(wǎng)站端做輪訓(xùn)去查詢r(jià)edis中是否有這個(gè)唯一值的數(shù)據(jù),如果有就獲取用戶信息登錄,沒有就五秒一次輪訓(xùn),登錄后就不在做輪訓(xùn)(從二維碼彈出之后開始做輪訓(xùn),關(guān)閉二維碼后停止輪訓(xùn))

    5,這里的唯一值是可以自己定義的,我用的是截取了幾位的時(shí)間戳

    實(shí)現(xiàn)步驟

    (1)微信端:寫一個(gè)獲取帶參數(shù)的臨時(shí)二維碼接口。

      // 臨時(shí)二維碼 
        private final static String QR_SCENE = "QR_SCENE";  
        // 永久二維碼  
        private final static String QR_LIMIT_SCENE = "QR_LIMIT_SCENE";  
        // 永久二維碼(字符串)  
        private final static String QR_LIMIT_STR_SCENE = "QR_LIMIT_STR_SCENE";   
        // 創(chuàng)建二維碼  
        private String create_ticket_path = "https://api.weixin.qq.com/cgi-bin/qrcode/create";  
        // 通過ticket換取二維碼  
        private String showqrcode_path = "https://mp.weixin.qq.com/cgi-bin/showqrcode";  
        
        @RequestMapping("getQrcode")
        public @ResponseBody String getQrcode(@RequestParam(value = "sceneId")int sceneId) throws Exception{
        
            
            String ticket = createTempTicket(tokenService.getToken(),"2592000",sceneId);
            LOGGER.info("get wechat qrcode  ==> start");
            LOGGER.info("sceneId :"+sceneId);
            LOGGER.info("ticket :"+ticket);
            LOGGER.info("get wechat qrcode  ==> end");
            return ticket;
        }
        /** 
         * 創(chuàng)建臨時(shí)帶參數(shù)二維碼 
         * @param accessToken 
         * @expireSeconds 該二維碼有效時(shí)間,以秒為單位。 最大不超過2592000(即30天),此字段如果不填,則默認(rèn)有效期為30秒。 
         * @param sceneId 場(chǎng)景Id 
         * @return 
         */  
        public String createTempTicket(String accessToken, String expireSeconds, int sceneId) {  
          
            TreeMap params = new TreeMap();  
            params.put("access_token", accessToken);  
            Map intMap = new HashMap();
            intMap.put("scene_id",sceneId);  
            Map> mapMap = new HashMap>();  
            mapMap.put("scene", intMap);  
            
            Map paramsMap = new HashMap();  
            paramsMap.put("expire_seconds", expireSeconds);  
            paramsMap.put("action_name", QR_SCENE);  
            paramsMap.put("action_info", mapMap);  
            String data = new Gson().toJson(paramsMap);  
            String tse = HttpRequestUtil.HttpsDefaultExecute(HttpRequestUtil.POST_METHOD,create_ticket_path,params,data);  
            
            JSONObject jsonObject = JSONObject.fromObject(tse);
            LOGGER.info("ticket :"+jsonObject.getString("ticket"));

         return showqrcode_path+"?ticket="+jsonObject.getString("ticket");
    }

    accessToken就是調(diào)用微信接口的憑證token

    (2)網(wǎng)站端:網(wǎng)站寫一個(gè)調(diào)用微信生成二維碼的接口

        @RequestMapping("getQrcode")
        public @ResponseBody Hashtable getQrcode(int sceneId){
            
            System.out.println(sceneId);
            
            Hashtable param = new Hashtable();
            param.put("sceneId", sceneId);
            String qrcodePath = HttpUtil.postRequest(Constant.getValue("get_qrcode"), param);
            System.out.println(" qrcodePath ==> "+qrcodePath);
            param.put("path", qrcodePath);
            return param;
        }

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有