Skip to content

Commit 0d56d6c

Browse files
author
Keung
authored
Merge pull request binarywang#2 from wechat-group/develop
Develop
2 parents 23f344b + f7d0a5d commit 0d56d6c

27 files changed

+1771
-189
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ language: java
22
jdk:
33
- oraclejdk7
44

5-
script: "mvn clean install -Dmaven.test.skip=true"
5+
script: "mvn clean package -Dmaven.test.skip=true"
66

77
branches:
88
only:
99
- develop
1010

1111
notifications:
1212
email:
13-
- binarywang@qq.com
13+
- binaryw@qq.com

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Weixin Java Tools 微信公众号/企业号开发Java SDK
77
1. ***本项目Fork自chanjarster/weixin-java-tools,但由于原项目已停止维护,故单独维护和发布,且发布到maven上的groupId也会不同,详细信息见下文。***
88
1. ***自2.0.0版本以来,公众号的接口调整比较大,主要是为了解决主接口类过于庞大不方便管理的问题,将接口实现代码按模块进行拆分。***
99
1. 本SDK要求的最低JDK版本是7,为满足少量还在使用JDK6的用户的需求,特意抽出独立的代码分支项目,请参考 https://github.com/binarywang/weixin-java-tools-for-jdk6 ,其他更早的JDK版本则需要自己改造实现;
10-
1. 最新更新:2016-10-31 发布2.3.0正式版!
10+
1. 最新更新:2016-11-30 发布2.4.0正式版!
1111

1212
===========
1313

@@ -39,12 +39,12 @@ maven:
3939
<dependency>
4040
<groupId>com.github.binarywang</groupId>
4141
<artifactId>weixin-java-mp</artifactId>
42-
<version>2.3.0</version>
42+
<version>2.4.0</version>
4343
</dependency>
4444
```
4545
gradle:
4646
```groovy
47-
compile 'com.github.binarywang:weixin-java-mp:2.3.0'
47+
compile 'com.github.binarywang:weixin-java-mp:2.4.0'
4848
```
4949

5050
* 企业号:
@@ -54,12 +54,12 @@ maven:
5454
<dependency>
5555
<groupId>com.github.binarywang</groupId>
5656
<artifactId>weixin-java-cp</artifactId>
57-
<version>2.3.0</version>
57+
<version>2.4.0</version>
5858
</dependency>
5959
```
6060
gradle:
6161
```groovy
62-
compile 'com.github.binarywang:weixin-java-cp:2.3.0'
62+
compile 'com.github.binarywang:weixin-java-cp:2.4.0'
6363
```
6464

6565
===========

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ allprojects {
22
apply plugin: 'maven'
33

44
group = 'com.github.binarywang'
5-
version = '2.4.0-SNAPSHOT'
5+
version = '2.5.0-SNAPSHOT'
66
}
77

88
subprojects {

pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.github.binarywang</groupId>
77
<artifactId>weixin-java-parent</artifactId>
8-
<version>2.4.0-SNAPSHOT</version>
8+
<version>2.5.0-SNAPSHOT</version>
99
<packaging>pom</packaging>
1010
<name>WeiXin Java Tools - Parent</name>
1111
<description>微信公众号、企业号上级POM</description>
@@ -64,6 +64,11 @@
6464
<email>withinthefog@gmail.com</email>
6565
<url>https://github.com/withinthefog</url>
6666
</developer>
67+
<developer>
68+
<name>Keung</name>
69+
<email>dongfuqiang1988@163.com</email>
70+
<url>https://github.com/johnnytung</url>
71+
</developer>
6772
</developers>
6873

6974
<scm>

weixin-java-common/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.github.binarywang</groupId>
88
<artifactId>weixin-java-parent</artifactId>
9-
<version>2.4.0-SNAPSHOT</version>
9+
<version>2.5.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>weixin-java-common</artifactId>

weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package me.chanjar.weixin.common.bean.menu;
22

3+
import me.chanjar.weixin.common.util.ToStringUtils;
4+
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
5+
36
import java.io.InputStream;
47
import java.io.InputStreamReader;
58
import java.io.Serializable;
69
import java.nio.charset.StandardCharsets;
710
import java.util.ArrayList;
811
import java.util.List;
912

10-
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
11-
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
12-
1313
/**
14-
* 企业号菜单
14+
* 菜单(公众号和企业号共用的)
1515
*
1616
* @author Daniel Qian
1717
*/
@@ -61,9 +61,7 @@ public String toJson() {
6161

6262
@Override
6363
public String toString() {
64-
return "WxMenu{" +
65-
"buttons=" + this.buttons +
66-
'}';
64+
return ToStringUtils.toSimpleString(this);
6765
}
6866

6967
}

weixin-java-cp/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.github.binarywang</groupId>
88
<artifactId>weixin-java-parent</artifactId>
9-
<version>2.4.0-SNAPSHOT</version>
9+
<version>2.5.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>weixin-java-cp</artifactId>

weixin-java-mp/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.github.binarywang</groupId>
88
<artifactId>weixin-java-parent</artifactId>
9-
<version>2.4.0-SNAPSHOT</version>
9+
<version>2.5.0-SNAPSHOT</version>
1010
</parent>
1111
<artifactId>weixin-java-mp</artifactId>
1212
<name>WeiXin Java Tools - MP</name>

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import me.chanjar.weixin.common.bean.menu.WxMenu;
44
import me.chanjar.weixin.common.exception.WxErrorException;
5+
import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult;
56

67
/**
78
* 菜单相关操作接口
@@ -56,4 +57,20 @@ public interface WxMpMenuService {
5657
*/
5758
WxMenu menuTryMatch(String userid) throws WxErrorException;
5859

60+
/**
61+
* <pre>
62+
* 获取自定义菜单配置接口
63+
* 本接口将会提供公众号当前使用的自定义菜单的配置,如果公众号是通过API调用设置的菜单,则返回菜单的开发配置,而如果公众号是在公众平台官网通过网站功能发布菜单,则本接口返回运营者设置的菜单配置。
64+
请注意:
65+
1、第三方平台开发者可以通过本接口,在旗下公众号将业务授权给你后,立即通过本接口检测公众号的自定义菜单配置,并通过接口再次给公众号设置好自动回复规则,以提升公众号运营者的业务体验。
66+
2、本接口与自定义菜单查询接口的不同之处在于,本接口无论公众号的接口是如何设置的,都能查询到接口,而自定义菜单查询接口则仅能查询到使用API设置的菜单配置。
67+
3、认证/未认证的服务号/订阅号,以及接口测试号,均拥有该接口权限。
68+
4、从第三方平台的公众号登录授权机制上来说,该接口从属于消息与菜单权限集。
69+
5、本接口中返回的图片/语音/视频为临时素材(临时素材每次获取都不同,3天内有效,通过素材管理-获取临时素材接口来获取这些素材),本接口返回的图文消息为永久素材素材(通过素材管理-获取永久素材接口来获取这些素材)。
70+
* 接口调用请求说明:
71+
http请求方式: GET(请使用https协议)
72+
https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=ACCESS_TOKEN
73+
*</pre>
74+
*/
75+
WxMpGetSelfMenuInfoResult getSelfMenuInfo() throws WxErrorException;
5976
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java

Lines changed: 55 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import me.chanjar.weixin.common.exception.WxErrorException;
44
import me.chanjar.weixin.mp.bean.pay.WxPayJsSDKCallback;
5-
import me.chanjar.weixin.mp.bean.pay.result.WxPayOrderCloseResult;
65
import me.chanjar.weixin.mp.bean.pay.request.WxEntPayRequest;
76
import me.chanjar.weixin.mp.bean.pay.request.WxPayRefundRequest;
87
import me.chanjar.weixin.mp.bean.pay.request.WxPaySendRedpackRequest;
@@ -13,8 +12,9 @@
1312
import 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
*/
2020
public 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

Comments
 (0)