/**
|
*
|
*/
|
package com.stylefeng.guns.modular.system.util.MallBook.model;
|
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.json.JSONUtil;
|
import com.stylefeng.guns.modular.system.util.MallBook.config.ChannelConfig;
|
import com.stylefeng.guns.modular.system.util.MallBook.util.RSASignature;
|
import com.stylefeng.guns.modular.system.util.MallBook.util.StringUtil;
|
|
import java.io.Serializable;
|
|
/**
|
* 接口请求包
|
*
|
*/
|
public class InterfaceRequest<T> implements Serializable {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -8130938432046696213L;
|
|
|
/**
|
* 商户平台编号
|
*/
|
private String merchantNo = ChannelConfig.merchantNo;
|
|
/**
|
* 接口版本号,不同版本号触发不同接口业务
|
*/
|
private String version = ChannelConfig.version;
|
/*
|
* 渠道类型 HF:汇付
|
*/
|
private String channelType = ChannelConfig.channelType;
|
|
|
/**
|
* 业务系统订单ID
|
*/
|
private String merOrderId;
|
|
/**
|
* 签名
|
*/
|
private String sign;
|
|
/**
|
* 业务类型编号
|
*/
|
private String serverCode;
|
|
/**
|
* 业务参数,json格式
|
*/
|
private String params;
|
|
/**
|
* 时间戳
|
*/
|
private String date;
|
|
|
public String getChannelType() {
|
return channelType;
|
}
|
|
public void setChannelType(String channelType) {
|
this.channelType = channelType;
|
}
|
|
public String getMerOrderId() {
|
return merOrderId;
|
}
|
|
public void setMerOrderId(String merOrderId) {
|
this.merOrderId = merOrderId;
|
}
|
|
public String getMerchantNo() {
|
return merchantNo;
|
}
|
|
public void setMerchantNo(String merchantNo) {
|
this.merchantNo = merchantNo;
|
}
|
|
public String getSign() {
|
return sign;
|
}
|
|
public void setSign(String sign) {
|
this.sign = sign;
|
}
|
|
public String getServerCode() {
|
return serverCode;
|
}
|
|
public void setServerCode(String serverCode) {
|
this.serverCode = serverCode;
|
}
|
|
public String getParams() {
|
return params;
|
}
|
|
public void setParams(String params) {
|
this.params = params;
|
}
|
|
public String getDate() {
|
return date;
|
}
|
|
public void setDate(String date) {
|
this.date = date;
|
}
|
|
public String getVersion() {
|
return version;
|
}
|
|
public void setVersion(String version) {
|
this.version = version;
|
}
|
|
|
/**
|
* 签名顺序必须一致!!!
|
* 签名顺序必须一致!!!
|
* 签名顺序必须一致!!!
|
* 订单号 + 商户号 + 渠道类型 + 时间戳 + 业务参数json
|
* @return 待签名字符串
|
*/
|
public String content() {
|
return StrUtil.builder()
|
.append(StringUtil.convertNull(merOrderId))
|
.append(StringUtil.convertNull(merchantNo))
|
.append(StringUtil.convertNull(channelType))
|
.append(StringUtil.convertNull(date))
|
.append(StringUtil.convertNull(params))
|
.toString();
|
}
|
|
public InterfaceRequest() {
|
}
|
|
public InterfaceRequest(T obj, String serverCode) {
|
this.merOrderId = IdUtil.fastSimpleUUID();
|
this.serverCode = serverCode;
|
this.date = System.currentTimeMillis() + "";
|
this.params = JSONUtil.toJsonStr(obj);
|
// todo 使用商户平台私钥生成sign,需要修改证书对应路径
|
this.sign = RSASignature.sign(content());
|
}
|
|
|
@Override
|
public String toString() {
|
return "InterfaceRequest{" +
|
"merOrderId='" + merOrderId + '\'' +
|
", merchantNo='" + merchantNo + '\'' +
|
", sign='" + sign + '\'' +
|
", serverCode='" + serverCode + '\'' +
|
", params='" + params + '\'' +
|
", date='" + date + '\'' +
|
", version='" + version + '\'' +
|
", channelType='" + channelType + '\'' +
|
'}';
|
}
|
}
|