微信js-sdk config配置

页面引入js

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

js文件

$(document).ready(function() {
    $.ajax({
        type : "post",
        url : "config.do",
        dataType : "json",
        success : function(data) {
            var obj = eval(data[0]);
            wx.config({
                debug : false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId : obj.appId, // 必填,公众号的唯一标识
                timestamp : obj.timestamp, // 必填,生成签名的时间戳
                nonceStr : obj.nonceStr, // 必填,生成签名的随机串
                signature : obj.signature,// 必填,签名,见附录1
                jsApiList : ["chooseImage"]

            });
        }
    });
});

后台

@RequestMapping("/config")
    public void getConfig(HttpServletRequest request, HttpServletResponse response) {
        response.setCharacterEncoding("UTF-8");
        String appId = WechatUtil.appID;
        // 获取页面路径(前端获取时采用location.href.split('#')[0]获取url)
        String url = request.getRequestURL().toString() + "/";
        // 获取ticket
        String jsapi_ticket = MyTask.TICKET;
        // 获取Unix时间戳(java时间戳为13位,所以要截取最后3位,保留前10位)
        String timeStamp = Long.toString(System.currentTimeMillis() / 1000);
        String noncestr = UUID.randomUUID().toString();
        // 注意这里参数名必须全部小写,且必须有序
        String sign = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr + "&timeStamp=" + timeStamp + "&url=" + url;

        String signature = SHA1(sign);
        // 组装完毕,回传
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("appId", appId);
        ret.put("timestamp", timeStamp);
        ret.put("nonceStr", noncestr);
        ret.put("signature", signature);
        System.out.println(ret);
        try {
            JSONArray jsonArray = JSONArray.fromObject(ret);
            // System.out.println(jsonArray.toString());
            PrintWriter out = response.getWriter();
            out.print(jsonArray);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

后台中用到的方法

private String SHA1(String sign) {
        try {
            MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
            digest.update(sign.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值