对接抖店API-01 获取参数签名

最近公司要求要对接抖音小店获取店铺订单数据,所以按照抖店开放平台API上获取拉取订单

官方参考文档:抖店开放平台

下面是我本地的Demo代码:

JSONObject对象里面存放的业务参数

param_json String {"cid":"12","page":"1"}

标准json类型,里面是业务参数按照参数名的字符串大

小排序具体参数值,参考每个接口的参数表

我这出现过JSON转换成String会出现顺序变乱的情况,导致签名一直不一致,查阅资料发现只需要

new JSONObject( )  在加上一个true即可。

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = simpleDateFormat.format(new Date());

        //参数加密
        JSONObject param_json = new JSONObject(true);

        //当前时间
        Date now = DateUtils.getNowDate();
        //day天之前
        Calendar calendar = DateUtils.toCalendar(now);
        calendar.add(Calendar.DATE, -day);
        long endTime = now.getTime();
        long beginTime = calendar.getTimeInMillis();
        //下单结束时间
        param_json.put("create_time_end", String.valueOf(endTime / 1000));
        //下单开始时间
        param_json.put("create_time_start", String.valueOf(beginTime / 1000));
        //分页
        param_json.put("page", page.toString());
        param_json.put("size", pageSize.toString());

        //获取签名
        String sign = fetchSign(method, param_json.toString(), time);

 下面官方的方法:

//获取参数签名结果
    public String fetchSign(String methodName, String paramJson, String timeStamp) {
        String requestStr = APP_SECRET + "app_key" + APP_KEY + "method" + methodName + "param_json" + paramJson + "timestamp"
                + timeStamp + "v2" + APP_SECRET;
        System.out.println("参数字符串requestStr = " + requestStr);
        return stringToMD5(requestStr);
    }




//生成签名
    public static String stringToMD5(String plainText) {
        byte[] secretBytes = null;
        try {
            secretBytes = MessageDigest.getInstance("md5").digest(
                    plainText.getBytes("UTF-8"));
        } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
            throw new RuntimeException("没有这个md5算法!");
        }
        StringBuilder md5code = new StringBuilder(new BigInteger(1, secretBytes).toString(16));
        while (md5code.length() < 32) {
            md5code.insert(0, "0");
        }
        return md5code.toString();
    }

你可能感兴趣的:(后端,对接抖音开发,java)