微信小程序如何连接优声云小票打印机
1、在云打印开放平台找到appid、appsecret两个打印机接口参数
2、阅读接口文档,了解打印接口所需参数
3、用接口测试工具postman可以测试连接成功。
4、打印接口核心难点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;
}
}
}
5、打印结果,如下图,打印排版可以根据接口要求进行相应的调整