diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java index 663444a7..06cdde7d 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java @@ -8,6 +8,7 @@ import me.chanjar.weixin.mp.bean.pay.WxMpPayRefundResult; import me.chanjar.weixin.mp.bean.pay.WxMpPayResult; import me.chanjar.weixin.mp.bean.pay.WxRedpackResult; import me.chanjar.weixin.mp.bean.pay.WxSendRedpackRequest; +import me.chanjar.weixin.mp.bean.pay.WxUnifiedOrderRequest; import me.chanjar.weixin.mp.bean.result.WxMpPrepayIdResult; /** @@ -17,7 +18,6 @@ import me.chanjar.weixin.mp.bean.result.WxMpPrepayIdResult; */ public interface WxMpPayService { - /** * 统一下单(详见http://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1) * 在发起微信支付前,需要调用统一下单接口,获取"预支付交易会话标识" @@ -39,12 +39,22 @@ public interface WxMpPayService { * 在发起微信支付前,需要调用统一下单接口,获取"预支付交易会话标识" * * @param parameters All required/optional parameters for weixin payment + * @deprecated use me.chanjar.weixin.mp.api.WxMpPayService.unifiedOrder(WxUnifiedOrderRequest) instead */ + @Deprecated WxMpPrepayIdResult getPrepayId(Map parameters); + /** + * 统一下单(详见http://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1) + * 在发起微信支付前,需要调用统一下单接口,获取"预支付交易会话标识" + * 接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder + * + */ + WxMpPrepayIdResult unifiedOrder(WxUnifiedOrderRequest request); + /** * 该接口调用“统一下单”接口,并拼装发起支付请求需要的参数 - * 详见http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E5.8F.91.E8.B5.B7.E4.B8.80.E4.B8.AA.E5.BE.AE.E4.BF.A1.E6.94.AF.E4.BB.98.E8.AF.B7.E6.B1.82 + * 详见http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN * * @param parameters the required or optional parameters */ @@ -52,7 +62,7 @@ public interface WxMpPayService { /** * 该接口调用“统一下单”接口,并拼装NATIVE发起支付请求需要的参数 - * 详见http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E5.8F.91.E8.B5.B7.E4.B8.80.E4.B8.AA.E5.BE.AE.E4.BF.A1.E6.94.AF.E4.BB.98.E8.AF.B7.E6.B1.82 + * 详见http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN * tradeType 交易类型 NATIVE (其他交易类型JSAPI,APP,WAP) * * @param productId 商户商品ID @@ -61,14 +71,14 @@ public interface WxMpPayService { * @param body 商品描述 * @param ip 发起支付的客户端IP * @param notifyUrl 通知地址 - * @deprecated Use me.chanjar.weixin.mp.api.WxMpService.getPayInfo(Map) instead + * @deprecated Use me.chanjar.weixin.mp.api.WxMpPayService.getPayInfo(Map) instead */ @Deprecated Map getNativePayInfo(String productId, String outTradeNo, double amt, String body, String ip, String notifyUrl) throws WxErrorException; /** * 该接口调用“统一下单”接口,并拼装JSAPI发起支付请求需要的参数 - * 详见http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E5.8F.91.E8.B5.B7.E4.B8.80.E4.B8.AA.E5.BE.AE.E4.BF.A1.E6.94.AF.E4.BB.98.E8.AF.B7.E6.B1.82 + * 详见http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN * tradeType 交易类型 JSAPI(其他交易类型NATIVE,APP,WAP) * * @param openId 支付人openId @@ -77,7 +87,7 @@ public interface WxMpPayService { * @param body 商品描述 * @param ip 发起支付的客户端IP * @param notifyUrl 通知地址 - * @deprecated Use me.chanjar.weixin.mp.api.WxMpService.getPayInfo(Map) instead + * @deprecated Use me.chanjar.weixin.mp.api.WxMpPayService.getPayInfo(Map) instead */ @Deprecated Map getJsapiPayInfo(String openId, String outTradeNo, double amt, String body, String ip, String notifyUrl) throws WxErrorException; @@ -137,6 +147,7 @@ public interface WxMpPayService { * * 微信商户平台ID * 商户平台设置的API密钥 + * @deprecated use me.chanjar.weixin.mp.api.WxMpPayService.sendRedpack(WxSendRedpackRequest) instead * */ @Deprecated diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java index bea7d448..29d37238 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java @@ -56,6 +56,7 @@ public class WxMpPayServiceImpl implements WxMpPayService { } @Override + @Deprecated public WxMpPrepayIdResult getPrepayId(String openId, String outTradeNo, double amt, String body, String tradeType, String ip, String callbackUrl) { @@ -144,6 +145,7 @@ public class WxMpPayServiceImpl implements WxMpPayService { } @Override + @Deprecated public Map getJsapiPayInfo(String openId, String outTradeNo, double amt, String body, String ip, String callbackUrl) throws WxErrorException { @@ -164,6 +166,7 @@ public class WxMpPayServiceImpl implements WxMpPayService { } @Override + @Deprecated public Map getNativePayInfo(String productId, String outTradeNo, double amt, String body, String ip, String callbackUrl) throws WxErrorException { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/WxUnifiedOrderRequest.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/WxUnifiedOrderRequest.java new file mode 100644 index 00000000..f1c77ff5 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/WxUnifiedOrderRequest.java @@ -0,0 +1,197 @@ +package me.chanjar.weixin.mp.bean.pay; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +/** + * 统一下单请求参数对象 + * Created by Binary Wang on 2016/9/25. + * @author binarywang (https://github.com/binarywang) + */ +@XStreamAlias("xml") +public class WxUnifiedOrderRequest { + /** + *
+   * 公众账号ID 
+   * appid 
+   * 是 
+   * String(32)  
+   * wxd678efh567hg6787  
+   * 微信分配的公众账号ID(企业号corpid即为此appId)
+   * 
+ */ + /** + *
+   * 商户号
+   * mch_id  
+   * 是 
+   * String(32)  
+   * 1230000109  
+   * 微信支付分配的商户号
+   * 
+ */ + /** + *
  
+   * 设备号 
+   * device_info 
+   * 否 
+   * String(32)  
+   * 013467007045764 
+   * 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
+   * 
+ */ + /** + *
  
+   * 随机字符串 
+   * nonce_str 
+   * 是 
+   * String(32)  
+   * 5K8264ILTKCH16CQ2502SI8ZNMTM67VS  
+   * 随机字符串,不长于32位。推荐随机数生成算法
+   * 
+ */ + /** + *
  
+   * 签名  
+   * sign  
+   * 是
+   *  String(32)  
+   *  C380BEC2BFD727A4B6845133519F3AD6  
+   *  签名,详见签名生成算法
+   * 
+ */ + /** + *
  
+   * 商品描述  
+   * body  
+   * 是
+   * String(128) 
+   * 腾讯充值中心-QQ会员充值
+   * 商品简单描述,该字段须严格按照规范传递,具体请见参数规定
+   * 
+ */ + /** + *
  
+   * 商品详情  
+   * detail  
+   * 否
+   * String(6000) 
+   *  {  "goods_detail":[
+      {
+      "goods_id":"iphone6s_16G",
+      "wxpay_goods_id":"1001",
+      "goods_name":"iPhone6s 16G",
+      "goods_num":1,
+      "price":528800,
+      "goods_category":"123456",
+      "body":"苹果手机"
+      },
+      {
+      "goods_id":"iphone6s_32G",
+      "wxpay_goods_id":"1002",
+      "goods_name":"iPhone6s 32G",
+      "quantity":1,
+      "price":608800,
+      "goods_category":"123789",
+      "body":"苹果手机"
+      }
+      ]
+      } 
+              商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。
+        goods_detail []:
+        └ goods_id String 必填 32 商品的编号
+        └ wxpay_goods_id String 可选 32 微信支付定义的统一商品编号
+        └ goods_name String 必填 256 商品名称
+        └ goods_num Int 必填 商品数量
+        └ price Int 必填 商品单价,单位为分
+        └ goods_category String 可选 32 商品类目ID
+        └ body String 可选 1000 商品描述信息
+   * 
+ */ + /** + *
  
+   * 附加数据  
+   * attach  
+   * 否 
+   * String(127) 
+   * 深圳分店 
+   *  附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
+   * 
+ */ + /** + *
  
+   * 商户订单号
+   * out_trade_no   
+   * 是 
+   * String(32)  
+   * 20150806125346  
+   * 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+   * 
+ */ + /** + *
  
+   * 货币类型  
+   * fee_type  
+   * 否 
+   * String(16)  
+   * CNY 
+   * 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+   * 
+ */ + /** + *
  
+   * 总金额 
+   * total_fee 
+   * 是 
+   * Int 
+   * 888 
+   * 订单总金额,单位为分,详见支付金额
+   * 
+ */ + /** + *
  
+   * 终端IP  
+   * spbill_create_ip 
+   * 是 
+   * String(16)  
+   * 123.12.12.123 
+   * APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
+   * 
+ */ + /** + *
  交易起始时间  time_start  否 String(14)  20091225091010  订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
+   * 
+ */ + /** + *
  交易结束时间  time_expire 否 String(14)  20091227091010 
+   * 
+ */ + /** + *
  订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
+   *   注意:最短失效时间间隔必须大于5分钟
+   * 
+ */ + /** + *
  商品标记  goods_tag 否 String(32)  WXG 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
+   * 
+ */ + /** + *
  通知地址  notify_url  是 String(256) http://www.weixin.qq.com/wxpay/pay.php  接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
+   * 
+ */ + /** + *
  交易类型  trade_type  是 String(16)  JSAPI 取值如下:JSAPI,NATIVE,APP,详细说明见参数规定
+   * 
+ */ + /** + *
  商品ID  product_id  否 String(32)  12235413214070356458058 trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
+   * 
+ */ + /** + *
  指定支付方式  limit_pay 否 String(32)  no_credit no_credit--指定不能使用信用卡支付
+   * 
+ */ + /** + *
  用户标识  openid  否 String(128) oUpF8uMuAJO_M2pxb1Q9zNjWeS6o  trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。openid如何获取,可参考【获取openid】。企业号请使用【企业号OAuth2.0接口】获取企业号内成员userid,再调用【企业号userid转openid接口】进行转换
+   * 
+ */ +}