一、提前找到两个内容:
二、官网的要求如下:
自己用postman可以测试连接成功。
三、其中核心为sign签名的生成:
官方要求为:
要多个键值对,按照按参数名称ASCII字典顺序排序排序。可以用如下Java代码;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
public class MD5Utils {
public static void main(String[] args) {
SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
Number appid=;//你自己的
Number timestamp = ;
String deviceid = "";//你自己的
String devicesecret = "";//你自己的
String printdata = "测试打印内容";
parameters.put("appid", appid);
parameters.put("timestamp", timestamp);
parameters.put("deviceid", deviceid);
parameters.put("devicesecret", devicesecret);
parameters.put("printdata", printdata);
String mySign = createSign(parameters, "");//这里就填你提前准备的appsecret
System.out.println("我的签名是:"+mySign);
}
/**
* 生成签名
*/
public static String createSign(SortedMap<Object,Object> parameters,String key){
StringBuffer sbkey = new StringBuffer();
//1.将所有参与传参的参数按照accsii排序(升序)
Set es = parameters.entrySet();
Iterator it = es.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
String k = (String)entry.getKey();
Object v = entry.getValue();
//2.空值不传递,不参与签名组串
if(null != v && !"".equals(v)) {
sbkey.append(k + v );
}
}
sbkey=sbkey.append(key);
System.out.println("排序好的顺序为:"+sbkey.toString());
//3.MD5加密,结果转换为大写字符
String sign = getMD5(sbkey.toString()).toLowerCase();
return sign;
}
/**
* 对字符串进行MD5加密
*/
public static String getMD5(String str) {
MessageDigest digest;
try {
digest = MessageDigest.getInstance("MD5");
digest.update(str.getBytes());
return new BigInteger(1, digest.digest()).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
}
四、后续会上传小程序完整版代码,请联系微信mzc435047616获得代码