All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.binarywang.wxpay.bean.request.CombineTransactionsRequest Maven / Gradle / Ivy

The newest version!
package com.github.binarywang.wxpay.bean.request;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 
 * 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。
 * 参考文档:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_1.shtml
 * https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_2.shtml
 * https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_3.shtml
 * https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_4.shtml
 * https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_5.shtml
 * 
* * @author thinsstar */ @Data @NoArgsConstructor public class CombineTransactionsRequest implements Serializable { private static final long serialVersionUID = 1L; /** *
   * 字段名:合单商户appid
   * 变量名:combine_appid
   * 是否必填:是
   * 类型:string[1,32]
   * 描述:
   *  合单发起方的appid。
   *  示例值:wxd678efh567hg6787
   * 
*/ @SerializedName(value = "combine_appid") private String combineAppid; /** *
   * 字段名:合单商户号
   * 变量名:combine_mchid
   * 是否必填:是
   * 类型:string[1,32]
   * 描述:
   *  合单发起方商户号。
   *  示例值:1900000109
   * 
*/ @SerializedName(value = "combine_mchid") private String combineMchid; /** *
   * 字段名:合单商户订单号
   * 变量名:combine_out_trade_no
   * 是否必填:是
   * 类型:string[1,32]
   * 描述:
   *  合单支付总订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一 。
   *  示例值:P20150806125346
   * 
*/ @SerializedName(value = "combine_out_trade_no") private String combineOutTradeNo; /** *
   * 字段名:场景信息
   * 变量名:scene_info
   * 是否必填:否
   * 类型:object
   * 描述:
   *  支付场景信息描述
   * 
*/ @SerializedName(value = "scene_info") private SceneInfo sceneInfo; /** *
   * 字段名:子单信息
   * 变量名:sub_orders
   * 是否必填:是
   * 类型:array
   * 描述:
   *  最多支持子单条数:10
   * 
*/ @SerializedName(value = "sub_orders") private List subOrders; /** *
   * 字段名:支付者
   * 变量名:combine_payer_info
   * 是否必填:否(JSAPI必填)
   * 类型:object
   * 描述:
   *  支付者信息
   * 
*/ @SerializedName(value = "combine_payer_info") private CombinePayerInfo combinePayerInfo; /** *
   * 字段名:交易起始时间
   * 变量名:time_start
   * 是否必填:否
   * 类型:string[1,32]
   * 描述:
   *  订单生成时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
   *  示例值:2019-12-31T15:59:59+08:00
   * 
*/ @SerializedName(value = "time_start") private String timeStart; /** *
   * 字段名:交易结束时间
   * 变量名:time_expire
   * 是否必填:否
   * 类型:string[1,32]
   * 描述:
   *  订单失效时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
   *  示例值:2019-12-31T15:59:59+08:00
   * 
*/ @SerializedName(value = "time_expire") private String timeExpire; /** *
   * 字段名:通知地址
   * 变量名:notify_url
   * 是否必填:是
   * 类型:string[1,256]
   * 描述:
   *  接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。
   *  格式: URL
   *  示例值:https://yourapp.com/notify
   * 
*/ @SerializedName(value = "notify_url") private String notifyUrl; @Data @NoArgsConstructor public static class SceneInfo implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:商户端设备号
     * 变量名:device_id
     * 是否必填:否
     * 类型:string[7,16]
     * 描述:
     *  终端设备号(门店号或收银设备ID)。
     *  示例值:POS1:123
     * 
*/ @SerializedName(value = "device_id") private String deviceId; /** *
     * 字段名:用户终端IP
     * 变量名:payer_client_ip
     * 是否必填:是
     * 类型:string[1,45]
     * 描述:
     *  用户的客户端IP,支持IPv4和IPv6两种格式的IP地址。
     *  格式: ip(ipv4+ipv6)
     *  示例值:14.17.22.32
     * 
*/ @SerializedName(value = "payer_client_ip") private String payerClientIp; /** *
     * 字段名:H5场景信息
     * 变量名:h5_info
     * 是否必填:否(H5支付必填)
     * 类型:object
     * 描述:
     *  H5场景信息
     * 
*/ @SerializedName(value = "h5_info") private H5Info h5Info; } @Data @NoArgsConstructor public static class SubOrders implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:子单商户号
     * 变量名:mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  子单发起方商户号,必须与发起方appid有绑定关系。
     *  示例值:1900000109
     * 
*/ @SerializedName(value = "mchid") private String mchid; /** *
     * 字段名:附加信息
     * 变量名:attach
     * 是否必填:是
     * 类型:string[1,128]
     * 描述:
     *  附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用。
     *  示例值:深圳分店
     * 
*/ @SerializedName(value = "attach") private String attach; /** *
     * 字段名:订单金额
     * 变量名:amount
     * 是否必填:是
     * 类型:object
     * 描述:
     *  订单金额信息
     * 
*/ @SerializedName(value = "amount") private Amount amount; /** *
     * 字段名:子单商户订单号
     * 变量名:out_trade_no
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
     *  特殊规则:最小字符长度为6
     *  示例值:20150806125346
     * 
*/ @SerializedName(value = "out_trade_no") private String outTradeNo; /** *
     * 字段名:订单优惠标记
     * 变量名:goods_tag
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  订单优惠标记,使用代金券或立减优惠功能时需要的参数,说明详见代金券或立减优惠
     *  示例值:WXG
     * 
*/ @SerializedName(value = "goods_tag") private String goodsTag; /** *
     * 字段名:二级商户号
     * 变量名:sub_mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  二级商户商户号,由微信支付生成并下发。服务商子商户的商户号,被合单方。直连商户不用传二级商户号。
     *  示例值:1900000109
     * 
*/ @SerializedName(value = "sub_mchid") private String subMchid; /** *
     * 字段名:商品描述
     * 变量名:description
     * 是否必填:是
     * 类型:string[1,127]
     * 描述:
     *  商品简单描述。需传入应用市场上的APP名字-实际商品名称,例如:天天爱消除-游戏充值。
     *  示例值:腾讯充值中心-QQ会员充值
     * 
*/ @SerializedName(value = "description") private String description; /** *
     * 字段名:结算信息
     * 变量名:settle_info
     * 是否必填:否
     * 类型:Object
     * 描述:结算信息
     * 
*/ @SerializedName(value = "settle_info") private SettleInfo settleInfo; /** *
     * 字段名:子商户应用ID
     * 变量名:sub_appid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  子商户申请的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,
     *  需使用应用属性为公众号的APPID 若sub_openid有传的情况下,
     *  sub_appid必填,且sub_appid需与sub_openid对应
     *  示例值:wxd678efh567hg6999
     * 
*/ @SerializedName(value = "sub_appid") private String subAppid; } @Data @NoArgsConstructor public static class CombinePayerInfo implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:用户标识
     * 变量名:openid
     * 是否必填:是
     * 类型:string[1,128]
     * 描述:
     *  使用合单appid获取的对应用户openid。是用户在商户appid下的唯一标识。
     *  示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
     * 
*/ @SerializedName(value = "openid") private String openid; /** *
     * 字段名:子用户标识
     * 变量名:sub_openid
     * 是否必填:是
     * 类型:string[1,128]
     * 描述:
     *  服务商模式下,使用某个子商户的Appid获取的对应用户Openid,
     *  是用户在该子商户Appid下的唯一标识。openid和sub_openid可以选传其中之一,
     *  如果选择传sub_openid,则必须传sub_appid。
     *  示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
     * 
*/ @SerializedName(value = "sub_openid") private String subOpenid; } @Data @NoArgsConstructor public static class Amount implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:标价金额
     * 变量名:total_amount
     * 是否必填:是
     * 类型:int
     * 描述:
     *  子单金额,单位为分
     *  境外场景下,标价金额要超过商户结算币种的最小单位金额,例如结算币种为美元,则标价金额必须大于1美分
     *  示例值:100
     * 
*/ @SerializedName(value = "total_amount") private Integer totalAmount; /** *
     * 字段名:标价币种
     * 变量名:currency
     * 是否必填:是
     * 类型:string[1,8]
     * 描述:
     *  符合ISO 4217标准的三位字母代码,人民币:CNY 。
     *  示例值:CNY
     * 
*/ @SerializedName(value = "currency") private String currency; } @Data @NoArgsConstructor public static class SettleInfo implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:是否指定分账
     * 变量名:profit_sharing
     * 是否必填:否
     * 类型:bool
     * 描述:
     *  是否指定分账,枚举值
     *  true:是
     *  false:否
     *  示例值:true
     * 
*/ @SerializedName(value = "profit_sharing") private Boolean profitSharing; /** *
     * 字段名:补差金额
     * 变量名:subsidy_amount
     * 是否必填:否
     * 类型:int64
     * 描述:
     *  SettleInfo.profit_sharing为true时,该金额才生效。
     *  注意:单笔订单最高补差金额为5000元
     *  示例值:10
     * 
*/ @SerializedName(value = "subsidy_amount") private Integer subsidyAmount; } @Data @NoArgsConstructor public static class H5Info implements Serializable { private static final long serialVersionUID = 1L; /** *
     * 字段名:场景类型
     * 变量名:type
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  场景类型,枚举值:
     *  iOS:IOS移动应用;
     *  Android:安卓移动应用;
     *  Wap:WAP网站应用;
     *  示例值:iOS
     * 
*/ @SerializedName(value = "type") private String type; /** *
     * 字段名:应用名称
     * 变量名:app_name
     * 是否必填:否
     * 类型:string[1,64]
     * 描述:
     *  应用名称
     *  示例值:王者荣耀
     * 
*/ @SerializedName(value = "app_name") private String appName; /** *
     * 字段名:网站URL
     * 变量名:app_url
     * 是否必填:否
     * 类型:string[1,128]
     * 描述:
     *  网站URL
     *  示例值:https://pay.qq.com
     * 
*/ @SerializedName(value = "app_url") private String appUrl; /** *
     * 字段名:iOS平台BundleID
     * 变量名:bundle_id
     * 是否必填:否
     * 类型:string[1,128]
     * 描述:
     *  iOS平台BundleID
     *  示例值:com.tencent.wzryiOS
     * 
*/ @SerializedName(value = "bundle_id") private String bundleId; /** *
     * 字段名:Android平台PackageName
     * 变量名:package_name
     * 是否必填:否
     * 类型:string[1,128]
     * 描述:
     *  Android平台PackageName
     *  示例值:com.tencent.tmgp.sgame
     * 
*/ @SerializedName(value = "package_name") private String packageName; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy