java spring boot 微信公衆號 分享功能

/**
     * 方法名:getWxConfig</br>
     * 詳述:獲取微信的配置信息 </br>
     * @param
     * @return 說明返回值含義
     * @throws
     */
        public Map<String, String> getWxConfig(HttpServletRequest request, HttpServletResponse response) {
            response.setHeader("Access-Control-Allow-Origin", "*");

            Map<String, String> ret = new HashMap<>();
            //獲取前臺傳來的三個參數
            String timestamp =  WXPayUtil.getCurrentTimestamp()+"";
            String nonce_str = WXPayUtil.generateNonceStr();
            String url = request.getParameter("url");
            logger.info("url"+url+"==============="+nonce_str+"============"+timestamp);

            //從緩存中讀取token信息,如果沒有則獲取一個新的token,通過token獲取ticket信息
            String access_token = (String)request.getSession().getAttribute("access_token");
            if(access_token == null) {
                /** 獲取AccessToKen*/
                String getAccessToKen = "https://api.weixin.qq.com/cgi-bin/token?"
                        + "grant_type=client_credential&appid="+env.getProperty("wxlog.appid")+"&secret="+ env.getProperty("wxlog.appsecret");
                String  jsonObject = MyHttpUtils.doPost(getAccessToKen,"",Charset.forName("UTF-8").toString());

                JSONObject rq = JSON.parseObject(jsonObject);
                /**獲取jsapi_ticket*/
                String getTicket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+rq.get("access_token").toString()+"&type=jsapi";
                String rest = MyHttpUtils.doPost(getTicket,"",Charset.forName("UTF-8").toString());
                JSONObject re = JSON.parseObject(rest);
                /**將信息保存入緩存中*/
                request.getSession().setAttribute("token", rq.get("access_token").toString());
                request.getSession().setAttribute("ticket", re.get("ticket").toString());
            }
            /**生成簽名*/
            String ticket = (String)request.getSession().getAttribute("ticket"); //微信返回的ticket
            String signature = shareUtil.getSignature(ticket,url,nonce_str,timestamp); //獲取簽名
            ret.put("appId", env.getProperty("wxlog.appid"));
            ret.put("nonceStr", nonce_str);
            ret.put("timestamp", timestamp);
            ret.put("signature", signature);
            return ret;
        }
---------------------------------------------------------------------------------
    var  url2=location.href.split('#')[0];
  function getwxconfing(title,pretext,preimage){
            mui.post('/wxpya/getWxConfig',
                {
                    url:url2
                },
                function (data) {
                console.log(url);
                    console.log(data);
                    if (data!=undefined) {
                        wx.config({
                            debug: false, // 開啓調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時纔會打印。
                            appId: data.appId, // 必填,公衆號的唯一標識
                            timestamp: data.timestamp, // 必填,生成簽名的時間戳
                            nonceStr: data.nonceStr, // 必填,生成簽名的隨機串
                            signature: data.signature,// 必填,簽名
                            jsApiList: [//需要調用的JS接口列表
                                'checkJsApi',//判斷當前客戶端版本是否支持指定JS接口
                                'onMenuShareAppMessage',//分享給好友
                                'onMenuShareTimeline'//分享到朋友圈
                            ]
                        });
                        var config = {
                            title: title, // 分享標題
                            desc: pretext, // 分享描述
                            link: url, // 分享鏈接
                            imgUrl: imgsrcpath()+preimage,
                            success: function () { /*$.alert("成功分享");*/ },
                            cancel: function () { /*$.alert("分享失敗,您取消了分享!");*/ }
                        };
                        wx.ready(function () {
                            wx.onMenuShareAppMessage(config);
                            wx.onMenuShareTimeline(config);
                        });
                    }
                }, 'json'
            )
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章