类 PaySignUtil

java.lang.Object
org.dromara.daxpay.single.sdk.util.PaySignUtil

public class PaySignUtil extends Object
如果需要进行签名, 1. 参数名ASCII码从小到大排序(字典序) 2. 如果参数的值为空不参与签名 3. 参数名不区分大小写 4. 嵌套对象转换成先转换成MAP再序列化为字符串 5. 支持两层嵌套, 更多层级嵌套未测试, 可能会导致不可预知的问题
  • 构造器详细资料

    • PaySignUtil

      public PaySignUtil()
  • 方法详细资料

    • toMap

      public Map<String,String> toMap(Object object)
      将参数转换为map对象. 使用ChatGPT生成 1. 参数名ASCII码从小到大排序(字典序) 2. 如果参数的值为空不参与签名; 3. 参数名不区分大小写;
    • createLinkString

      public static String createLinkString(Map<String,String> params)
      把所有元素排序, 并拼接成字符, 用于签名, 同时会过滤掉 " 和 \ 字符
    • md5

      public String md5(String data)
      生成16进制 MD5 字符串
      参数:
      data - 数据
      返回:
      MD5 字符串
    • hmacSha256

      public String hmacSha256(String data, String signKey)
      生成16进制的 sha256 字符串
      参数:
      data - 数据
      signKey - 密钥
      返回:
      sha256 字符串
    • sm3

      public String sm3(String data)
      生成16进制 sm3 字符串
      参数:
      data - 数据
      返回:
      SM3方式进行签名 字符串
    • signString

      public String signString(Object object, String signKey)
      生成待签名字符串
      参数:
      object - 待签名对象
      signKey - 签名Key
      返回:
      待签名字符串
    • md5Sign

      public String md5Sign(Object object, String signKey)
      md5方式进行签名
      返回:
      签名值
    • hmacSha256Sign

      public String hmacSha256Sign(Object object, String signKey)
      hmacSha256方式进行签名
      返回:
      签名值
    • sm3Sign

      public String sm3Sign(Object object, String signKey)
      sm3方式进行签名
      返回:
      签名值
    • verifyMd5Sign

      public boolean verifyMd5Sign(Object object, String signKey, String sign)
      MD5签名验证
    • verifyHmacSha256Sign

      public boolean verifyHmacSha256Sign(Object object, String signKey, String sign)
      hmacSha256签名验证
    • verifySm3Sign

      public boolean verifySm3Sign(Object object, String signKey, String sign)
      SM3签名验证