package com.dobbinsoft.fw.pay.model.request; import com.dobbinsoft.fw.pay.enums.PayChannelType; import com.dobbinsoft.fw.pay.enums.PayPlatformType; import lombok.Data; import me.chanjar.weixin.common.util.json.WxGsonBuilder; import java.io.Serializable; import java.math.BigDecimal; /** *
* 微信支付请求对象共用的参数存放类 **/ @Data public abstract class MatrixBasePayRequest implements Serializable { private static final long serialVersionUID = -7550724004813511502L; /** * 支付渠道 */ private PayChannelType payChannel; /** * 支付平台 */ private PayPlatformType payPlatform; /** *
* 字段名:公众账号ID. * 变量名:appid * 是否必填:是 * 类型:String(32) * 示例值:wxd678efh567hg6787 * 描述:微信分配的公众账号ID(企业号corpid即为此appId) **/ private String appid; /** *
* 字段名:商户号. * 变量名:mch_id * 是否必填:是 * 类型:String(32) * 示例值:1230000109 * 描述:微信支付分配的商户号 **/ private String mchId; /** *
* 字段名:服务商模式下的子商户公众账号ID. * 变量名:sub_appid * 是否必填:是 * 类型:String(32) * 示例值:wxd678efh567hg6787 * 描述:微信分配的子商户公众账号ID **/ private String subAppId; /** *
* 字段名:服务商模式下的子商户号. * 变量名:sub_mch_id * 是否必填:是 * 类型:String(32) * 示例值:1230000109 * 描述:微信支付分配的子商户号,开发者模式下必填 **/ private String subMchId; /** *
* 字段名:随机字符串. * 变量名:nonce_str * 是否必填:是 * 类型:String(32) * 示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS * 描述:随机字符串,不长于32位。推荐随机数生成算法 **/ private String nonceStr; /** *
* 字段名:签名. * 变量名:sign * 是否必填:是 * 类型:String(32) * 示例值:C380BEC2BFD727A4B6845133519F3AD6 * 描述:签名,详见签名生成算法 **/ private String sign; /** *
* 签名类型. * sign_type * 否 * String(32) * HMAC-SHA256 * 签名类型,目前支持HMAC-SHA256和MD5 **/ private String signType; /** * 将单位为元转换为单位为分. * * @param yuan 将要转换的元的数值字符串 * @return the integer */ public static Integer yuanToFen(String yuan) { return new BigDecimal(yuan).setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue(); } /** * 如果配置中已经设置,可以不设置值. * * @param appid 微信公众号appid */ public void setAppid(String appid) { this.appid = appid; } /** * 如果配置中已经设置,可以不设置值. * * @param mchId 微信商户号 */ public void setMchId(String mchId) { this.mchId = mchId; } /** * 默认采用时间戳为随机字符串,可以不设置. * * @param nonceStr 随机字符串 */ public void setNonceStr(String nonceStr) { this.nonceStr = nonceStr; } @Override public String toString() { return WxGsonBuilder.create().toJson(this); } }