22
33import me .chanjar .weixin .common .exception .WxErrorException ;
44import me .chanjar .weixin .mp .bean .pay .WxPayJsSDKCallback ;
5- import me .chanjar .weixin .mp .bean .pay .result .WxPayOrderCloseResult ;
65import me .chanjar .weixin .mp .bean .pay .request .WxEntPayRequest ;
76import me .chanjar .weixin .mp .bean .pay .request .WxPayRefundRequest ;
87import me .chanjar .weixin .mp .bean .pay .request .WxPaySendRedpackRequest ;
1312import java .util .Map ;
1413
1514/**
16- * 微信支付相关接口
17- * Created by Binary Wang on 2016/7/28.
15+ * 微信支付相关接口
16+ * Created by Binary Wang on 2016/7/28.
17+ *
1818 * @author binarywang (https://github.com/binarywang)
1919 */
2020public interface WxMpPayService {
@@ -24,14 +24,15 @@ public interface WxMpPayService {
2424 * 查询订单(详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2)
2525 * 该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
2626 * 需要调用查询接口的情况:
27- ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
28- ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
29- ◆ 调用被扫支付API,返回USERPAYING的状态;
30- ◆ 调用关单或撤销接口API之前,需确认支付状态;
27+ * ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
28+ * ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
29+ * ◆ 调用被扫支付API,返回USERPAYING的状态;
30+ * ◆ 调用关单或撤销接口API之前,需确认支付状态;
3131 * 接口地址:https://api.mch.weixin.qq.com/pay/orderquery
3232 * </pre>
33+ *
3334 * @param transactionId 微信支付分配的商户号
34- * @param outTradeNo 商户系统内部的订单号,当没提供transaction_id时需要传这个。
35+ * @param outTradeNo 商户系统内部的订单号,当没提供transaction_id时需要传这个。
3536 * @throws WxErrorException
3637 */
3738 WxPayOrderQueryResult queryOrder (String transactionId , String outTradeNo ) throws WxErrorException ;
@@ -47,6 +48,7 @@ public interface WxMpPayService {
4748 * 接口地址:https://api.mch.weixin.qq.com/pay/closeorder
4849 * 是否需要证书: 不需要。
4950 * </pre>
51+ *
5052 * @param outTradeNo 商户系统内部的订单号,当没提供transaction_id时需要传这个。
5153 * @throws WxErrorException
5254 */
@@ -56,16 +58,18 @@ public interface WxMpPayService {
5658 * 统一下单(详见http://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)
5759 * 在发起微信支付前,需要调用统一下单接口,获取"预支付交易会话标识"
5860 * 接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder
59- * @throws WxErrorException
60- * @param request 请求对象
6161 *
62+ * @param request 请求对象,注意一些参数如appid、mchid等不用设置,方法内会自动从配置对象中获取到(前提是对应配置中已经设置)
63+ * @throws WxErrorException
6264 */
6365 WxPayUnifiedOrderResult unifiedOrder (WxPayUnifiedOrderRequest request ) throws WxErrorException ;
6466
6567 /**
6668 * 该接口调用“统一下单”接口,并拼装发起支付请求需要的参数
6769 * 详见http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN
68- * @param request 请求对象
70+ *
71+ * @param request 请求对象,注意一些参数如appid、mchid等不用设置,方法内会自动从配置对象中获取到(前提是对应配置中已经设置)
72+ * @throws WxErrorException
6973 */
7074 Map <String , String > getPayInfo (WxPayUnifiedOrderRequest request ) throws WxErrorException ;
7175
@@ -75,16 +79,33 @@ public interface WxMpPayService {
7579 * 详见 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
7680 * 接口链接:https://api.mch.weixin.qq.com/secapi/pay/refund
7781 * </pre>
82+ *
7883 * @param request 请求对象
79- * @param keyFile 证书文件对象
84+ * @param keyFile 证书文件对象
8085 * @return 退款操作结果
8186 */
8287 WxPayRefundResult refund (WxPayRefundRequest request , File keyFile ) throws WxErrorException ;
8388
89+ /**
90+ * <pre>
91+ * 微信支付-查询退款
92+ * 应用场景:
93+ * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
94+ * 详见 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
95+ * 接口链接:https://api.mch.weixin.qq.com/pay/refundquery
96+ * </pre>
97+ * 以下四个参数四选一
98+ * @param transactionId 微信订单号
99+ * @param outTradeNo 商户订单号
100+ * @param outRefundNo 商户退款单号
101+ * @param refundId 微信退款单号
102+ * @return 退款信息
103+ */
104+ WxPayRefundQueryResult refundQuery (String transactionId , String outTradeNo , String outRefundNo , String refundId ) throws WxErrorException ;
105+
84106 /**
85107 * 读取支付结果通知
86108 * 详见http://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7
87- *
88109 */
89110 WxPayJsSDKCallback getJSSDKCallbackData (String xmlData ) throws WxErrorException ;
90111
@@ -93,7 +114,6 @@ public interface WxMpPayService {
93114 * 计算Map键值对是否和签名相符,
94115 * 按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的 格式(即 key1=value1&key2=value2...)拼接成字符串
95116 * </pre>
96- *
97117 */
98118 boolean checkJSSDKCallbackDataSignature (Map <String , String > kvm , String signature );
99119
@@ -102,13 +122,29 @@ public interface WxMpPayService {
102122 * <pre>
103123 * 文档详见:
104124 * 发送普通红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3
125+ * 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack
105126 * 发送裂变红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4
127+ * 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack
106128 * </pre>
129+ *
107130 * @param request 请求对象
108- * @param keyFile 证书文件对象
131+ * @param keyFile 证书文件对象
109132 */
110133 WxPaySendRedpackResult sendRedpack (WxPaySendRedpackRequest request , File keyFile ) throws WxErrorException ;
111134
135+ /**
136+ * <pre>
137+ * 查询红包记录
138+ * 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。
139+ * 请求Url https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo
140+ * 是否需要证书 是(证书及使用说明详见商户证书)
141+ * 请求方式 POST
142+ * </pre>
143+ * @param mchBillNo 商户发放红包的商户订单号,比如10000098201411111234567890
144+ * @param keyFile 证书文件对象
145+ */
146+ WxPayRedpackQueryResult queryRedpack (String mchBillNo , File keyFile ) throws WxErrorException ;
147+
112148 /**
113149 * <pre>
114150 * 企业付款业务是基于微信支付商户平台的资金管理能力,为了协助商户方便地实现企业向个人付款,针对部分有开发能力的商户,提供通过API完成企业付款的功能。
@@ -118,8 +154,9 @@ public interface WxMpPayService {
118154 * 文档详见:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2
119155 * 接口链接:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers
120156 * </pre>
157+ *
121158 * @param request 请求对象
122- * @param keyFile 证书文件对象
159+ * @param keyFile 证书文件对象
123160 */
124161 WxEntPayResult entPay (WxEntPayRequest request , File keyFile ) throws WxErrorException ;
125162
@@ -130,8 +167,9 @@ public interface WxMpPayService {
130167 * 文档详见:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_3
131168 * 接口链接:https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo
132169 * </pre>
170+ *
133171 * @param partnerTradeNo 商户订单号
134- * @param keyFile 证书文件对象
172+ * @param keyFile 证书文件对象
135173 */
136174 WxEntPayQueryResult queryEntPay (String partnerTradeNo , File keyFile ) throws WxErrorException ;
137175
0 commit comments