此类是有时间写的,使用阿里云给出的demo测试正确。实际在调用阿里云的实人认证接口时并未用到,可直接集成相关的sdk。
代码
package cn.com.chnsys.utils;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
/**
*
* <p>
* 类描述 生成阿里云signNature工具类
* </p>
*
* 类说明
*
* @author yyb
* @version 1.0
*/
public class GenerateSignUtil {
public static String generateSignNature(Map<String, String> map) throws Exception {
// 1.构建待签名字符串
// 1.1.按照参数名称的字典顺序对请求中所有的请求参数
Set<String> keySet = map.keySet();
List<String> list = new ArrayList<>();
list.addAll(keySet);
List<String> sortList = sort(list);
// 1