|
|
@@ -10,13 +10,6 @@ import org.apache.commons.lang3.StringUtils; |
|
|
|
* <pre> |
|
|
|
* 统一下单请求参数对象 |
|
|
|
* 参考文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 |
|
|
|
* 注释中各行每个字段描述对应如下: |
|
|
|
* <li>字段名 |
|
|
|
* <li>变量名 |
|
|
|
* <li>是否必填 |
|
|
|
* <li>类型 |
|
|
|
* <li>示例值 |
|
|
|
* <li>描述 |
|
|
|
* </pre> |
|
|
|
* Created by Binary Wang on 2016/9/25. |
|
|
|
* |
|
|
@@ -24,16 +17,16 @@ import org.apache.commons.lang3.StringUtils; |
|
|
|
*/ |
|
|
|
@XStreamAlias("xml") |
|
|
|
public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
private static final String[] TRADE_TYPES = new String[]{"JSAPI", "NATIVE", "APP","MWEB"}; |
|
|
|
private static final String[] TRADE_TYPES = new String[]{"JSAPI", "NATIVE", "APP", "MWEB"}; |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 设备号 |
|
|
|
* device_info |
|
|
|
* 否 |
|
|
|
* String(32) |
|
|
|
* 013467007045764 |
|
|
|
* 终端设备号(门店号或收银设备Id),注意:PC网页或公众号内支付请传"WEB" |
|
|
|
* 字段名:设备号 |
|
|
|
* 变量名:device_info |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(32) |
|
|
|
* 示例值:013467007045764 |
|
|
|
* 描述:终端设备号(门店号或收银设备Id),注意:PC网页或公众号内支付请传"WEB" |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("device_info") |
|
|
@@ -41,12 +34,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 商品描述 |
|
|
|
* body |
|
|
|
* 是 |
|
|
|
* String(128) |
|
|
|
* 腾讯充值中心-QQ会员充值 |
|
|
|
* 商品简单描述,该字段须严格按照规范传递,具体请见参数规定 |
|
|
|
* 字段名:商品描述 |
|
|
|
* 变量名:body |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:String(128) |
|
|
|
* 示例值: 腾讯充值中心-QQ会员充值 |
|
|
|
* 描述:商品简单描述,该字段须严格按照规范传递,具体请见参数规定 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@Required |
|
|
@@ -55,12 +48,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 商品详情 |
|
|
|
* detail |
|
|
|
* 否 |
|
|
|
* String(6000) |
|
|
|
* { "goods_detail":[ |
|
|
|
* { |
|
|
|
* 字段名:商品详情 |
|
|
|
* 变量名:detail |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(6000) |
|
|
|
* 示例值: { "goods_detail":[ |
|
|
|
* { |
|
|
|
* "goods_id":"iphone6s_16G", |
|
|
|
* "wxpay_goods_id":"1001", |
|
|
|
* "goods_name":"iPhone6s 16G", |
|
|
@@ -80,7 +73,7 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
* } |
|
|
|
* ] |
|
|
|
* } |
|
|
|
* 商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。 |
|
|
|
* 描述:商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。 |
|
|
|
* goods_detail []: |
|
|
|
* └ goods_id String 必填 32 商品的编号 |
|
|
|
* └ wxpay_goods_id String 可选 32 微信支付定义的统一商品编号 |
|
|
@@ -96,12 +89,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 附加数据 |
|
|
|
* attach |
|
|
|
* 否 |
|
|
|
* String(127) |
|
|
|
* 深圳分店 |
|
|
|
* 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 |
|
|
|
* 字段名:附加数据 |
|
|
|
* 变量名:attach |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(127) |
|
|
|
* 示例值: 深圳分店 |
|
|
|
* 描述: 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("attach") |
|
|
@@ -109,12 +102,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 商户订单号 |
|
|
|
* out_trade_no |
|
|
|
* 是 |
|
|
|
* String(32) |
|
|
|
* 20150806125346 |
|
|
|
* 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 |
|
|
|
* 字段名:商户订单号 |
|
|
|
* 变量名:out_trade_no |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:String(32) |
|
|
|
* 示例值:20150806125346 |
|
|
|
* 描述:商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@Required |
|
|
@@ -123,12 +116,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 货币类型 |
|
|
|
* fee_type |
|
|
|
* 否 |
|
|
|
* String(16) |
|
|
|
* CNY |
|
|
|
* 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 |
|
|
|
* 字段名:货币类型 |
|
|
|
* 变量名:fee_type |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(16) |
|
|
|
* 示例值:CNY |
|
|
|
* 描述: 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("fee_type") |
|
|
@@ -136,12 +129,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 总金额 |
|
|
|
* total_fee |
|
|
|
* 是 |
|
|
|
* Int |
|
|
|
* 888 |
|
|
|
* 订单总金额,单位为分,详见支付金额 |
|
|
|
* 字段名:总金额 |
|
|
|
* 变量名:total_fee |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:Int |
|
|
|
* 示例值: 888 |
|
|
|
* 描述:订单总金额,单位为分,详见支付金额 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@Required |
|
|
@@ -150,12 +143,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 终端IP |
|
|
|
* spbill_create_ip |
|
|
|
* 是 |
|
|
|
* String(16) |
|
|
|
* 123.12.12.123 |
|
|
|
* APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。 |
|
|
|
* 字段名:终端IP |
|
|
|
* 变量名:spbill_create_ip |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:String(16) |
|
|
|
* 示例值:123.12.12.123 |
|
|
|
* 描述:APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@Required |
|
|
@@ -164,12 +157,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 交易起始时间 |
|
|
|
* time_start |
|
|
|
* 否 |
|
|
|
* String(14) |
|
|
|
* 20091225091010 |
|
|
|
* 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则 |
|
|
|
* 字段名:交易起始时间 |
|
|
|
* 变量名:time_start |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(14) |
|
|
|
* 示例值:20091225091010 |
|
|
|
* 描述:订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("time_start") |
|
|
@@ -177,12 +170,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 交易结束时间 |
|
|
|
* time_expire |
|
|
|
* 否 |
|
|
|
* String(14) |
|
|
|
* 20091227091010 |
|
|
|
* 订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则 |
|
|
|
* 字段名:交易结束时间 |
|
|
|
* 变量名:time_expire |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(14) |
|
|
|
* 示例值:20091227091010 |
|
|
|
* 描述:订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则 |
|
|
|
* 注意:最短失效时间间隔必须大于5分钟 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
@@ -191,12 +184,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 商品标记 |
|
|
|
* goods_tag |
|
|
|
* 否 |
|
|
|
* String(32) |
|
|
|
* WXG |
|
|
|
* 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 |
|
|
|
* 字段名:商品标记 |
|
|
|
* 变量名:goods_tag |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(32) |
|
|
|
* 示例值:WXG |
|
|
|
* 描述:商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("goods_tag") |
|
|
@@ -204,12 +197,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 通知地址 |
|
|
|
* notify_url |
|
|
|
* 是 |
|
|
|
* String(256) |
|
|
|
* http://www.weixin.qq.com/wxpay/pay.php |
|
|
|
* 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。 |
|
|
|
* 字段名:通知地址 |
|
|
|
* 变量名:notify_url |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:String(256) |
|
|
|
* 示例值:http://www.weixin.qq.com/wxpay/pay.php |
|
|
|
* 描述:接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@Required |
|
|
@@ -218,12 +211,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 交易类型 |
|
|
|
* trade_type |
|
|
|
* 是 |
|
|
|
* String(16) |
|
|
|
* JSAPI |
|
|
|
* 取值如下:JSAPI,NATIVE,APP,详细说明见参数规定: |
|
|
|
* 字段名:交易类型 |
|
|
|
* 变量名:trade_type |
|
|
|
* 是否必填:是 |
|
|
|
* 类型:String(16) |
|
|
|
* 示例值: JSAPI |
|
|
|
* 描述: 取值如下:JSAPI,NATIVE,APP,详细说明见参数规定: |
|
|
|
* JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
@@ -233,12 +226,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 商品Id |
|
|
|
* product_id |
|
|
|
* 否 |
|
|
|
* String(32) |
|
|
|
* 12235413214070356458058 |
|
|
|
* trade_type=NATIVE,此参数必传。此id为二维码中包含的商品Id,商户自行定义。 |
|
|
|
* 字段名:商品Id |
|
|
|
* 变量名:product_id |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(32) |
|
|
|
* 示例值:12235413214070356458058 |
|
|
|
* 描述:trade_type=NATIVE,此参数必传。此id为二维码中包含的商品Id,商户自行定义。 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("product_id") |
|
|
@@ -246,11 +239,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 指定支付方式 |
|
|
|
* limit_pay |
|
|
|
* 否 |
|
|
|
* String(32) |
|
|
|
* no_credit no_credit--指定不能使用信用卡支付 |
|
|
|
* 字段名:指定支付方式 |
|
|
|
* 变量名:limit_pay |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(32) |
|
|
|
* 示例值:no_credit |
|
|
|
* 描述:no_credit--指定不能使用信用卡支付 |
|
|
|
* </pre> |
|
|
|
*/ |
|
|
|
@XStreamAlias("limit_pay") |
|
|
@@ -258,12 +252,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 用户标识 |
|
|
|
* openid |
|
|
|
* 否 |
|
|
|
* String(128) |
|
|
|
* oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
|
|
|
* trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。 |
|
|
|
* 字段名:用户标识 |
|
|
|
* 变量名:openid |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(128) |
|
|
|
* 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
|
|
|
* 描述:trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。 |
|
|
|
* openid如何获取,可参考【获取openid】。 |
|
|
|
* 企业号请使用【企业号OAuth2.0接口】获取企业号内成员userid,再调用【企业号userid转openid接口】进行转换 |
|
|
|
* </pre> |
|
|
@@ -273,12 +267,12 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest { |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
|
* 用户子标识 |
|
|
|
* sub_openid |
|
|
|
* 否 |
|
|
|
* String(128) |
|
|
|
* oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
|
|
|
* trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。 |
|
|
|
* 字段名:用户子标识 |
|
|
|
* 变量名:sub_openid |
|
|
|
* 是否必填:否 |
|
|
|
* 类型:String(128) |
|
|
|
* 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
|
|
|
* 描述:trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。 |
|
|
|
* openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。 |
|
|
|
* 下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 |
|
|
|
* </pre> |
|
|
|