Class SignParamBuilder

java.lang.Object
tech.riemann.nif.web.sign.SignParamBuilder

public class SignParamBuilder extends Object
签名参数构建器

用于构建签名计算所需的参数Map,确保客户端和服务端的参数组合方式一致

参数提取规则: 1. 简单类型(基本类型、String、Number、Boolean、Date、Time等):直接转为字符串 2. 嵌套POJO对象:递归提取字段,使用 "父字段名.子字段名" 格式 3. 集合/数组:转为JSON格式字符串 4. Map:直接提取键值对 5. null值:跳过 6. static/transient字段:跳过

使用示例:

// 方式一:手动添加参数
Map<String, String> params = SignParamBuilder.builder()
        .put("amount", "100.00")
        .put("orderId", "123456")
        .build();

// 方式二:从POJO对象提取(支持嵌套对象、集合等)
OrderDTO order = new OrderDTO();
order.setAmount(new BigDecimal("100.00"));
order.setOrderId("123456");
order.setAddress(new Address("北京市", "朝阳区"));

Map<String, String> params = SignParamBuilder.fromPojo(order);
// 结果:{amount=100.00, orderId=123456, address.city=北京市, address.district=朝阳区}
Author:
Kerbores(kerbores@riemann.tech)
  • Method Details

    • builder

      public static SignParamBuilder builder()
      创建构建器
      Returns:
      构建器实例
    • fromPojo

      public static Map<String,String> fromPojo(Object obj)
      从POJO对象提取参数(静态方法,直接返回Map)

      提取规则: 1. 提取所有非静态、非transient字段 2. 跳过值为null的字段 3. 使用字段名作为参数名 4. 嵌套对象递归提取,使用 "父字段名.子字段名" 格式 5. 集合/数组转为JSON字符串

      Parameters:
      obj - POJO对象
      Returns:
      参数Map
    • put

      public SignParamBuilder put(String key, Object value)
      添加参数
      Parameters:
      key - 参数名
      value - 参数值
      Returns:
      构建器实例
    • withPojo

      public SignParamBuilder withPojo(Object obj)
      从POJO对象提取参数(链式调用)
      Parameters:
      obj - POJO对象
      Returns:
      构建器实例
    • build

      public Map<String,String> build()
      构建参数Map
      Returns:
      参数Map(已按ASCII排序)