放心购接口、贝贝接口
小店 OpenApi 文档(old):http://openapidoc.jinritemai.com/
抖点开放平台(new):https://op.jinritemai.com/
工具类
/* 使用MD5进行加密得到sign */public static String stringToMD5(String secret, TreeMap params) {String plainText = secret;for (String key : params.keySet()) {plainText += key + params.get(key);}plainText += secret;// org.springframework.util.DigestUtils;// plainText = DigestUtils.md5DigestAsHex(plainText.getBytes());// 或直接使用这个即可byte[] secretBytes = null;try {secretBytes = MessageDigest.getInstance("md5").digest(plainText.getBytes());} catch (NoSuchAlgorithmException 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();}/* 拼接请求参数 */public static String splicing(String baseUrl, final Map, ?> values) {StringBuilder stringBUilder = new StringBuilder();stringBUilder.append(baseUrl);if (!values.isEmpty()) {for (Entry, ?> entry : values.entrySet()) {String name = entry.getKey().toString();String value = entry.getValue().toString();stringBUilder.append(name).append("=").append(value).append("&");}}return stringBUilder.deleteCharAt(stringBUilder.length() - 1).toString();}
1.API接口>物流发货API> /order/logisticsCompanyList
String app_key = "app_key";String app_secret = "app_secret";String access_token = "access_token";String method = "order.logisticsCompanyList";String param_json = "{}";TreeMap params = new TreeMap();params.put("method", method);params.put("param_json", param_json);/***********************************************************//* 下面这些参数是公共的 */String baseUrl = "https://openapi-fxg.jinritemai.com/" + params.get("method").toString().replace(".", "/") + "?";params.put("app_key", app_key);params.put("timestamp", "2011-06-16 13:23:30");// params.put("v", "1");没有access_token使用params.put("v", "2");// 有access_token使用String sign = stringToMD5(app_secret, params);params.put("sign", sign);params.put("access_token", access_token);// 有access_token使用String url = splicing(baseUrl, params);System.out.println(url);
2.API接口>订单管理API> /order/list
String app_key = "app_key";String app_secret = "app_secret";String access_token = "access_token";String method = "order.list";TreeMap paramJson = new TreeMap();paramJson.put("end_time", "2019/05/27 23:59:59");paramJson.put("is_desc", "1");paramJson.put("order_by", "create_time");paramJson.put("page", "0");paramJson.put("size", "100");paramJson.put("start_time", "2019/05/26 10:00:01");TreeMap params = new TreeMap();params.put("method", method);params.put("param_json", JSON.toJSONString(paramJson));
放心购快递公司列表.json
贝贝集团开放平台:http://open.beibei.com/
官方提供的签名算法
public static String getSign(TreeMap params) {String sign = secret;for (String key : params.keySet()) {sign += key + params.get(key);}sign += secret;return getMD5(sign);}public static String getMD5(String message) {String md5str = "";try {// 1 创建一个提供信息摘要算法的对象,初始化为md5算法对象MessageDigest md = MessageDigest.getInstance("MD5");// 2 将消息变成byte数组byte[] input = message.getBytes();// 3 计算后获得字节数组,这就是那128位了byte[] buff = md.digest(input);// 4 把数组每一字节(一个字节占八位)换成16进制连成md5字符串md5str = bytesToHex(buff);} catch (Exception e) {e.printStackTrace();}return md5str;}/*** 二进制转十六进制* * @param bytes* @return*/public static String bytesToHex(byte[] bytes) {StringBuffer md5str = new StringBuffer();// 把数组每一字节换成16进制连成md5字符串int digital;for (int i = 0; i < bytes.length; i++) {digital = bytes[i];if (digital < 0) {digital += 256;}if (digital < 16) {md5str.append("0");}md5str.append(Integer.toHexString(digital));}return md5str.toString().toUpperCase();}
使用下面的签名方式
/* 使用MD5进行加密得到大写的sign */public static String getSign(String secret, TreeMap params) {String sign = secret;for (String key : params.keySet()) {sign += key + params.get(key);}sign += secret;// org.springframework.util.DigestUtils;sign = DigestUtils.md5DigestAsHex(sign.getBytes()).toUpperCase();return sign;}
1.API > 开发文档 > API说明文档 > 物流API > 支持物流公司信息 beibei.outer.logistics.company.get
String app_id = "";String secret = "";String session = "";String method = "beibei.outer.logistics.company.get";TreeMap params = new TreeMap();params.put("method", method);/***********************************************************/String url = "http://api.open.beibei.com/outer_api/out_gateway/route.html";params.put("app_id", app_id);params.put("session", session);params.put("format", "json");params.put("timestamp", String.valueOf(System.currentTimeMillis()).toString().substring(0, 10));String sign = getSign(secret, params);params.put("sign", sign);String type = "POST";String strJson = new com.github.kevinsawicki.http.HttpRequest(url, type).form(params).body();System.out.println(strJson);
2.API > 开发文档 > API说明文档 > 订单API > 商家订单列表 beibei.outer.trade.order.get
String app_id = "";String secret = "";String session = "";String method = "beibei.outer.trade.order.get";TreeMap params = new TreeMap();params.put("method", method);params.put("start_time", "2022-09-25 01:11:31");params.put("end_time", "2022-09-26 01:11:31");params.put("page_no", "1");params.put("page_size", "100");
贝贝支持的物流公司信息.json
说明:放心购可以改为以下方式,放心购在上面是GET方式请求,不知道为什么用下面的方式只能用POST方式。
/***********************************************************//* 下面这些参数是公共的 */String baseUrl = "https://openapi-fxg.jinritemai.com/" + params.get("method").toString().replace(".", "/");params.put("app_key", app_key);params.put("timestamp", "2011-06-16 13:23:30");// params.put("v", "1");没有access_token使用params.put("v", "2");// 有access_token使用String sign = stringToMD5(app_secret, params);params.put("sign", sign);params.put("access_token", access_token);// 有access_token使用,不参与签名// String url = splicing(baseUrl, params);String type = "POST";String strJson = new com.github.kevinsawicki.http.HttpRequest(baseUrl, type).form(params).body();System.out.println(strJson);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
