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

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

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

下面是我本地的Demo代码:

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

param_jsonString{"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();
    }

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值