New file |
| | |
| | | /** |
| | | * |
| | | */ |
| | | 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 + '\'' + |
| | | '}'; |
| | | } |
| | | } |