别来无恙`` 2018-04-06 10:39 采纳率: 100%
浏览 9701
已采纳

请问微信的wx.config参数怎么获得?越详细越好

wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: '' , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});

  • 写回答

2条回答 默认 最新

  • phphis 2018-04-07 06:50
    关注

    这三个参数都是在你点击验证的时候 通过url get的方式返回给到你的。
    timestamp为当前的时间戳 就是服务器的时间转换为的毫秒数
    nonceStr是自己写的一个随机字符串
    jsapi_ticket 呢要先获取access_token
    有了access_token 比如你获取到的access_token为abc 后呢发送这个https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=abc&type=jsapi
    你就会得到一个json格式的数据 里面就包含有jsapi_ticket
    具体方式如下:
    package com.test.util;

    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.Arrays;

    public class CheckUtil {

    private static final String token = "mytest";
    
    public static boolean checkSignature(String signaure, String timestamp,
            String nonce) {
    
        String[] arr = new String[] {token, timestamp, nonce };
        // 排序
        Arrays.sort(arr);
        // 生成字符串
        StringBuffer content = new StringBuffer();
        for (int i = 0; i < arr.length; i++) {
            content.append(arr);
        }
        // sha1加密
        String temp = getSha1(content.toString());
        return temp.equals(signaure);
    }
    
    
    
    public static String getSha1(String str) {
        if (null == str || 0 == str.length()) {
            return null;
        }
        char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'A', 'B', 'C', 'D', 'E', 'F' };
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));
            byte[] md = mdTemp.digest();
            int j = md.length;
            char[] buf = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md;
                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
                buf[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(buf);
        } catch (Exception e) {
            return null;
        }
    }
    

    }

    protected void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    PrintWriter out = res.getWriter();

        String signature = req.getParameter("signature");
        String timestamp = req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String echostr = req.getParameter("echostr");
        String jsapi_ticket = req.getParameter("jsapi_ticket");
        if(CheckUtil.checkSignature(signature, timestamp, nonce)){
            System.out.println("nonce:"+nonce);
            System.out.println("timestamp:"+timestamp);
            System.out.println("signature:"+signature);
            System.out.println("echo:"+echostr);
            out.print(echostr);
        }
    

    还请认真看一下官方api

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集