Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

合并develop分支,发布最新正式版 #1730

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 92 commits into from
Aug 23, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
d650bb6
:art: 抽取公共代码
binarywang May 25, 2020
8bb6b02
:art: #1580 企业微信成员信息里性别字段枚举类增加0值
binarywang May 25, 2020
7b641e7
:art: 小程序 Spring Boot Starter 模块优化重构
binarywang May 25, 2020
edf1401
:art: #1583 企业微信读取成员接口增加返回字段:main_department
Ricky-dgs May 26, 2020
da0ce15
:art: #1585 微信支付结果异步通知的解析方法增加可以自行指定signType的重载方法
binarywang May 26, 2020
b95045b
:bug: 修复错误代码
binarywang May 28, 2020
eb6a578
:art: 规范优化部分代码
binarywang May 28, 2020
1720e51
:art: 微信现金红包发送接口信息处理优化,针对处理中的变态错误信息不抛出异常
binarywang May 30, 2020
6e2babd
:art: 规范优化部分代码
binarywang May 30, 2020
17aaba2
:art: 微信模版消息行业获取的代码优化
binarywang May 30, 2020
0a2e4d8
:bookmark: 发布 3.8.1.1.B 测试版本
binarywang May 30, 2020
2446fa6
:art: #1592 实现简单的redis分布式锁 RedisTemplateSimpleDistributedLock
lkqm May 31, 2020
6c3d090
:bug: #1582 use lock.tryLock() to avoid waiting for locks for a long …
lkqm May 31, 2020
1c60839
:art: #571 微信小程序接口请求增加多种http客户端
lkqm Jun 1, 2020
b52e676
:bug: #1600 修复无法切换到初始公众号配置的问题并完善了removeConfigStorage方法
rain7fine11 Jun 3, 2020
f14b33a
:art: #1599 企业微信获取打卡数据接口返回类增加打卡设备id字段
binarywang Jun 4, 2020
9341419
:art: 规范部分代码
binarywang Jun 6, 2020
ddbeda4
:art: 重构补充部分单元测试代码
binarywang Jun 6, 2020
a2f5452
:art: 规范部分代码,增加javadoc
binarywang Jun 7, 2020
58b2617
Merge branch 'master' into develop
binarywang Jun 7, 2020
92c0fd6
:new: #1529 微信支付退款增加支持单品退款和对应查询的接口
binarywang Jun 7, 2020
8467852
:bug: #1608 修复企业微信外部联系人群列表错误参数
sunhao91 Jun 7, 2020
0f8361e
:art: 优化部分代码
binarywang Jun 7, 2020
03d9f2d
:bookmark: 发布 3.8.2.B 测试版本
binarywang Jun 7, 2020
a81550f
:art: 优化部分代码
binarywang Jun 11, 2020
29b4dbd
:art: #1610 换用guava的相应方法实现base64解码,避免因commons-codec版本问题导致解码异常
binarywang Jun 11, 2020
3b37f52
#1620 :art: 公众号模块配置类增加Redisson的实现
wuxingye Jun 15, 2020
8256c46
:art: #1619 企业微信获取用户信息接口优化,处理type为null情况下可能会导致的空指针问题
binarywang Jun 15, 2020
2769f50
Merge branch 'master' into develop
binarywang Jun 16, 2020
1ae00b6
:art: 优化单元测试
binarywang Jun 16, 2020
320f367
:art: #1619 企业微信获取用户信息接口优化,处理type为null情况下可能会导致的空指针问题
binarywang Jun 16, 2020
c2034cb
:art: #1624 企业微信模块更新用户信息相关接口类以适应企业微信私有化版本
sdlszjb Jun 17, 2020
a0c370b
:art: #1627 优化小程序starter,避免依赖jedis
miemieYaho Jun 18, 2020
ba33c9a
:bookmark: 发布 3.8.3.B 测试版本
binarywang Jun 18, 2020
4d44398
:bug: #1649 修复小程序直播间列表接口出现 require https hints 的问题
taneg Jun 30, 2020
eec3f78
:bug: #1653 修复SDK扫码登录签名算法获取 Ticket时的type参数值
CharismaYU Jun 30, 2020
c60fda4
:new: #1651 添加小程序直播间商品相关操作接口
lipengjun92 Jun 30, 2020
a00d67a
:art: 优化规范部分代码
binarywang Jun 30, 2020
7d20aa1
:art: 清理部分冗余代码
binarywang Jun 30, 2020
b755694
:art: #1647 优化公众号redis配置支持,去掉容易导致问题的构造方法
binarywang Jul 2, 2020
978ada7
:new: #1527 微信小程序增加OCR身份证识别和银行卡识别等接口
binarywang Jul 5, 2020
8121a52
:bookmark: 发布 3.8.4.B 测试版本
binarywang Jul 5, 2020
0adca96
:art: #1659 Json解析统一优化
niefy Jul 6, 2020
10c4d45
:art: #1647 优化小程序redis配置支持,去掉容易导致问题的构造方法
binarywang Jul 7, 2020
1650ee2
:art: 修复小程序直播接口获取不到部分字段值的问题
binarywang Jul 7, 2020
b93169e
:bug: #1664 企业微信修复获取联系客户统计数据接口的错误字段:negative_fee_back_cnt
binarywang Jul 10, 2020
4ab5080
:art: 优化代码
binarywang Jul 11, 2020
03c143b
:bookmark: 发布 3.8.5.B 测试版本
binarywang Jul 11, 2020
7c0a38e
:new: #1668 企业微信增加外部联系人发送消息的接口
deanwong Jul 15, 2020
56a271c
:art: #1671 优化微信支付回调通知验证签名的代码
binarywang Jul 16, 2020
3b8c66a
:art: 规范lock.lock()代码,统一放在try代码块之外
arbing Jul 17, 2020
f6f4b89
:new: #1641 企业微信增加OA提交审批申请的接口
binarywang Jul 18, 2020
11974f0
:art: 会员卡相关bean类重构,集中到同一包中
binarywang Jul 18, 2020
4d14409
:bookmark: 发布 3.8.6.B 测试版本
binarywang Jul 19, 2020
04fb35d
:bug: #1604 修复微信开放平台帐号管理相关接口,使用指定appId的access_token
whhya Jul 21, 2020
0758049
:new: #1474 企业微信新增客户联系「联系我」管理接口 修正 / #1590 开放平台刷新AccessToken同步更新Refr…
forfuns Jul 21, 2020
694f2c2
:new: #1493 企业微信增加管理企业客户标签的相关接口
huangxm129 Jul 26, 2020
fbe2dd9
:art: 优化企业微信部分代码
binarywang Jul 26, 2020
6a27b83
:bug: 修复公众号和小程序的OCR相关接口请求方式为post
binarywang Jul 26, 2020
fa24f78
:art: 优化企业微信部分代码
binarywang Jul 26, 2020
7ef9e91
:bug: 修复一个字段值表达转换问题
binarywang Jul 26, 2020
2755bc9
:bookmark: 发布 3.8.7.B 测试版本
binarywang Jul 26, 2020
a776e9c
:art: #1690 企业微信外部联系人客户详情接口增加几个字段
huangxm129 Jul 31, 2020
a9f9e30
:bug: #1699 企业微信模块修复添加企业客户标签接口
huangxm129 Aug 6, 2020
e7f2378
:new: #1639 微信支付增加v3图片上传接口
zhouyongshen Aug 7, 2020
edf8e18
:new: #1706 微信支付增加特约商户进件相关接口
zhouyongshen Aug 7, 2020
c588303
:art: #1700 公众号WxMpConfigStorage接口提供setHostConfig()方法,方便设置相关信息
binarywang Aug 8, 2020
542b633
:art: 重构优化部分包结构
binarywang Aug 8, 2020
14dfe30
:new: #1685 小程序增加图像处理相关接口
binarywang Aug 8, 2020
4bd5b3c
:art: 修复代码
binarywang Aug 8, 2020
9346c17
:art: 抽取oauth2相关接口方法到独立类WxOAuth2Service中
binarywang Aug 9, 2020
4d3346d
:art: #1688 升级jedis依赖版本为3.3.0,已解决部分问题
binarywang Aug 9, 2020
ce8f4f8
:bookmark: 发布 3.8.8.B 测试版本
binarywang Aug 9, 2020
a7ea5f5
:bug: #1713 企业微信修复获取企业已配置的「联系我」方式详情接口
huangxm129 Aug 16, 2020
928ba17
:art: 修复部分拼写错误的变量命名
binarywang Aug 16, 2020
8b7ca9b
:new: #1710 企业微信增加发送新客户欢迎语接口
binarywang Aug 16, 2020
9145628
:art: #1631 SDK最低支持版本设置为JDK8,放弃对JDK7及更旧版本的支持
binarywang Aug 16, 2020
79f0092
:new: #1267 小程序模块增加多账号切换功能支持
binarywang Aug 16, 2020
43633aa
:bookmark: 发布 3.8.9.B 测试版本
binarywang Aug 16, 2020
a278383
:art: #1716 微信支付证书配置读取代码优化,支持本地路径和网络路径
cloudX2019 Aug 17, 2020
17c2042
:new: #1667 微信支付增加电商收付通-二级商户进件相关接口
cloudX2019 Aug 18, 2020
6f95386
:new: #1720 增加企业微信群机器人消息发送接口
xyz9025 Aug 21, 2020
c1c66e9
:bug: #1724 微信支付证书初始化代码去掉不推荐的TLSv1协议,解决退款接口报No appropriate protocol的问题
missionOdd Aug 22, 2020
bd100bf
:bug: #1714 修复小程序初始化时报错的问题
binarywang Aug 22, 2020
aca8dba
:art: 优化规范部分代码
binarywang Aug 22, 2020
817b474
:art: 优化规范统一部分代码格式
binarywang Aug 22, 2020
6d996f2
:art: 优化重构部分代码,抽取公共常量
binarywang Aug 23, 2020
b5956fb
:art: 精简代码,移除无用过期接口代码
binarywang Aug 23, 2020
2797bd6
:art: 重构部分单元测试代码
binarywang Aug 23, 2020
33b13b1
:art: #1591 给部分请求方法导致无限递归调用的代码增加日志,方便排查问题
binarywang Aug 23, 2020
daf0b23
:art: 修复部分单元测试
binarywang Aug 23, 2020
ec7ab21
:bookmark: 发布 3.9.0 正式版本
binarywang Aug 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
🐛 #1713 企业微信修复获取企业已配置的「联系我」方式详情接口
* 外部联系人客户详情新增增加字段

增加字段:remark_corp_name,addWay,oper_userid

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改测试类

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 客户标签组查询列表功能修改

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改测试类

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改 add_way字段错误

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改添加企业客户标签后无返回信息

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 外部联系人客户详情新增增加字段

增加字段:remark_corp_name,addWay,oper_userid

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改测试类

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改测试类

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改 add_way字段错误

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改添加企业客户标签后无返回信息

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改错误

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 修改冲突

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 获取企业已配置的「联系我」方式:添加二维码字段

Signed-off-by: huangxiaoming <huangxm129@163.com>

* 获取企业已配置的「联系我」方式对象无返回信息BUG

Signed-off-by: huangxiaoming <huangxm129@163.com>
  • Loading branch information
huangxm129 authored Aug 16, 2020
commit a7ea5f5bf3de0967d41808cc5653b71fcb2b9472
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
@Override
public WxCpContactWayResult addContactWay(@NonNull WxCpContactWayInfo info) throws WxErrorException {

if (info.getUsers() != null && info.getUsers().size() > 100) {
if (info.getContactWay().getUsers() != null && info.getContactWay().getUsers().size() > 100) {
throw new RuntimeException("「联系我」使用人数默认限制不超过100人(包括部门展开后的人数)");
}

final String url = this.mainService.getWxCpConfigStorage().getApiUrl(ADD_CONTACT_WAY);
String responseContent = this.mainService.post(url, info.toJson());
String responseContent = this.mainService.post(url, info.getContactWay().toJson());

return WxCpContactWayResult.fromJson(responseContent);
}
Expand All @@ -45,21 +45,20 @@ public WxCpContactWayInfo getContactWay(@NonNull String configId) throws WxError

final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CONTACT_WAY);
String responseContent = this.mainService.post(url, json.toString());

return WxCpContactWayInfo.fromJson(responseContent);
}

@Override
public WxCpBaseResp updateContactWay(@NonNull WxCpContactWayInfo info) throws WxErrorException {
if (StringUtils.isBlank(info.getConfigId())) {
if (StringUtils.isBlank(info.getContactWay().getConfigId())) {
throw new RuntimeException("更新「联系我」方式需要指定configId");
}
if (info.getUsers() != null && info.getUsers().size() > 100) {
if (info.getContactWay().getUsers() != null && info.getContactWay().getUsers().size() > 100) {
throw new RuntimeException("「联系我」使用人数默认限制不超过100人(包括部门展开后的人数)");
}

final String url = this.mainService.getWxCpConfigStorage().getApiUrl(UPDATE_CONTACT_WAY);
String responseContent = this.mainService.post(url, info.toJson());
String responseContent = this.mainService.post(url, info.getContactWay().toJson());

return WxCpBaseResp.fromJson(responseContent);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import me.chanjar.weixin.cp.util.json.WxCpConclusionAdapter;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;

Expand All @@ -18,124 +20,168 @@
@NoArgsConstructor
public class WxCpContactWayInfo {

/**
* 联系方式的配置id
*/
@SerializedName("config_id")
private String configId;

/**
* <pre>
* 必填
* 联系方式类型,1-单人, 2-多人
* </pre>
*/
private TYPE type;

/**
* <pre>
* 必填
* 场景,1-在小程序中联系,2-通过二维码联系
* </pre>
*/
private SCENE scene;

/**
* <pre>
* 非必填
* 在小程序中联系时使用的控件样式
* <b>单人样式(type=1)时可选1,2,3</b>
* <b>多人样式(type=2)时可选1,2</b>
* </pre>
*/
private Integer style;

/**
* <pre>
* 非必填
* 联系方式的备注信息,用于助记,不超过30个字符
* </pre>
*/
private String remark;

/**
* <pre>
* 非必填
* 外部客户添加时是否无需验证,默认为true
* </pre>
*/
@SerializedName("skip_verify")
private Boolean skipVerify = Boolean.TRUE;

/**
* <pre>
* 非必填
* 企业自定义的state参数,用于区分不同的添加渠道,在调用“获取外部联系人详情(WxCpExternalContactService.getContactDetail)” 时会返回该参数值,不超过30个字符
* </pre>
*/
private String state;

/**
* <pre>
* 使用该联系方式的用户userID列表,在type为1时为必填,且只能有一个
* </pre>
*/
@SerializedName("user")
private List<String> users;


/**
* <pre>
* 非必填
* 使用该联系方式的部门id列表,只在type为2时有效
* </pre>
*/
@SerializedName("party")
private List<String> partys;

/**
* <pre>
* 非必填
* 是否临时会话模式,true表示使用临时会话模式,默认为false
* </pre>
*/
@SerializedName("is_temp")
private Boolean isTemp = Boolean.FALSE;

/**
* <pre>
* 非必填
* 临时会话二维码有效期,以秒为单位。该参数仅在is_temp为true时有效,默认7天
* </pre>
*/
@SerializedName("expires_in")
private Integer expiresIn;

/**
* <pre>
* 非必填
* 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时
* </pre>
*/
@SerializedName("chat_expires_in")
private Integer chatExpiresIn;

/**
* <pre>
* 非必填
* 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制
* </pre>
*/
@SerializedName("unionid")
private String unionId;

/**
* <pre>
* 非必填
* 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效
* </pre>
*/
private Conclusion conclusions;
@SerializedName("contact_way")
private ContactWay contactWay;

@Getter
@Setter
public static class ContactWay {
/**
* 联系方式的配置id
*/
@SerializedName("config_id")
private String configId;

/**
* <pre>
* 必填
* 联系方式类型,1-单人, 2-多人
* </pre>
*/
private TYPE type;

/**
* <pre>
* 必填
* 场景,1-在小程序中联系,2-通过二维码联系
* </pre>
*/
private SCENE scene;

/**
* <pre>
* 非必填
* 在小程序中联系时使用的控件样式
* <b>单人样式(type=1)时可选1,2,3</b>
* <b>多人样式(type=2)时可选1,2</b>
* </pre>
*/
private Integer style;

/**
* <pre>
* 非必填
* 联系方式的备注信息,用于助记,不超过30个字符
* </pre>
*/
private String remark;

/**
* <pre>
* 非必填
* 外部客户添加时是否无需验证,默认为true
* </pre>
*/
@SerializedName("skip_verify")
private Boolean skipVerify = Boolean.TRUE;

/**
* <pre>
* 非必填
* 企业自定义的state参数,用于区分不同的添加渠道,在调用“获取外部联系人详情(WxCpExternalContactService.getContactDetail)” 时会返回该参数值,不超过30个字符
* </pre>
*/
private String state;

/**
* <pre>
* 联系二维码的URL,仅在scene为2时返回
* </pre>
*/
@SerializedName("qr_code")
private String qrCode;

/**
* <pre>
* 使用该联系方式的用户userID列表,在type为1时为必填,且只能有一个
* </pre>
*/
@SerializedName("user")
private List<String> users;


/**
* <pre>
* 非必填
* 使用该联系方式的部门id列表,只在type为2时有效
* </pre>
*/
@SerializedName("party")
private List<String> partys;

/**
* <pre>
* 非必填
* 是否临时会话模式,true表示使用临时会话模式,默认为false
* </pre>
*/
@SerializedName("is_temp")
private Boolean isTemp = Boolean.FALSE;

/**
* <pre>
* 非必填
* 临时会话二维码有效期,以秒为单位。该参数仅在is_temp为true时有效,默认7天
* </pre>
*/
@SerializedName("expires_in")
private Integer expiresIn;

/**
* <pre>
* 非必填
* 临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时
* </pre>
*/
@SerializedName("chat_expires_in")
private Integer chatExpiresIn;

/**
* <pre>
* 非必填
* 可进行临时会话的客户unionid,该参数仅在is_temp为true时有效,如不指定则不进行限制
* </pre>
*/
@SerializedName("unionid")
private String unionId;

/**
* <pre>
* 非必填
* 结束语,会话结束时自动发送给客户,可参考“结束语定义”,仅在is_temp为true时有效
* </pre>
*/
private Conclusion conclusions;

public static WxCpContactWayInfo.ContactWay fromJson(String json) {
return WxCpGsonBuilder.create().fromJson(json, WxCpContactWayInfo.ContactWay.class);
}

public String toJson() {
return WxCpGsonBuilder.create().toJson(this);
}

/**
* 结束语定义
*/
@Data
@JsonAdapter(WxCpConclusionAdapter.class)
public static class Conclusion {
private String textContent;
private String imgMediaId;
private String imgPicUrl;
private String linkTitle;
private String linkPicUrl;
private String linkDesc;
private String linkUrl;
private String miniProgramTitle;
private String miniProgramPicMediaId;
private String miniProgramAppId;
private String miniProgramPage;
}

}


public static WxCpContactWayInfo fromJson(String json) {
return WxCpGsonBuilder.create().fromJson(json, WxCpContactWayInfo.class);
Expand All @@ -145,25 +191,6 @@ public String toJson() {
return WxCpGsonBuilder.create().toJson(this);
}

/**
* 结束语定义
*/
@Data
@JsonAdapter(WxCpConclusionAdapter.class)
public static class Conclusion {
private String textContent;
private String imgMediaId;
private String imgPicUrl;
private String linkTitle;
private String linkPicUrl;
private String linkDesc;
private String linkUrl;
private String miniProgramTitle;
private String miniProgramPicMediaId;
private String miniProgramAppId;
private String miniProgramPage;
}

public enum TYPE {
/**
* 单人
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
*
* @author element
*/
public class WxCpConclusionAdapter implements JsonSerializer<WxCpContactWayInfo.Conclusion>, JsonDeserializer<WxCpContactWayInfo.Conclusion> {
public class WxCpConclusionAdapter implements JsonSerializer<WxCpContactWayInfo.ContactWay.Conclusion>, JsonDeserializer<WxCpContactWayInfo.ContactWay.Conclusion> {
@Override
public WxCpContactWayInfo.Conclusion deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
public WxCpContactWayInfo.ContactWay.Conclusion deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject jsonObject = json.getAsJsonObject();

WxCpContactWayInfo.Conclusion conclusion = new WxCpContactWayInfo.Conclusion();
WxCpContactWayInfo.ContactWay.Conclusion conclusion = new WxCpContactWayInfo.ContactWay.Conclusion();

if (jsonObject.get("text") != null) {
JsonObject jsonText = jsonObject.get("text").getAsJsonObject();
Expand Down Expand Up @@ -77,7 +77,7 @@ public WxCpContactWayInfo.Conclusion deserialize(JsonElement json, Type typeOfT,
}

@Override
public JsonElement serialize(WxCpContactWayInfo.Conclusion src, Type typeOfSrc, JsonSerializationContext context) {
public JsonElement serialize(WxCpContactWayInfo.ContactWay.Conclusion src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject json = new JsonObject();
if (StringUtils.isNotBlank(src.getTextContent())) {
JsonObject jsonText = new JsonObject();
Expand Down
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.