Skip to content

Commit c6b23d2

Browse files

File tree

6 files changed

+123
-10
lines changed

6 files changed

+123
-10
lines changed

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,12 @@ public interface WxMaService {
179179
*/
180180
WxMaSettingService getSettingService();
181181

182+
/**
183+
* 返回分享相关查询服务
184+
* @return WxMaShareService
185+
*/
186+
WxMaShareService getShareService();
187+
182188
/**
183189
* 初始化http请求对象.
184190
*/
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package cn.binarywang.wx.miniapp.api;
2+
3+
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
4+
5+
/**
6+
* 分享信息相关操作接口.
7+
*
8+
* @author zhfish
9+
*/
10+
public interface WxMaShareService {
11+
12+
/**
13+
* 解密分享敏感数据.
14+
*
15+
* @param sessionKey 会话密钥
16+
* @param encryptedData 消息密文
17+
* @param ivStr 加密算法的初始向量
18+
*/
19+
WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr);
20+
21+
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Map;
77
import java.util.concurrent.locks.Lock;
88

9+
import cn.binarywang.wx.miniapp.api.*;
910
import org.apache.http.HttpHost;
1011
import org.apache.http.client.config.RequestConfig;
1112
import org.apache.http.client.methods.CloseableHttpResponse;
@@ -15,16 +16,6 @@
1516
import org.slf4j.Logger;
1617
import org.slf4j.LoggerFactory;
1718

18-
import cn.binarywang.wx.miniapp.api.WxMaAnalysisService;
19-
import cn.binarywang.wx.miniapp.api.WxMaCodeService;
20-
import cn.binarywang.wx.miniapp.api.WxMaJsapiService;
21-
import cn.binarywang.wx.miniapp.api.WxMaMediaService;
22-
import cn.binarywang.wx.miniapp.api.WxMaMsgService;
23-
import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
24-
import cn.binarywang.wx.miniapp.api.WxMaService;
25-
import cn.binarywang.wx.miniapp.api.WxMaSettingService;
26-
import cn.binarywang.wx.miniapp.api.WxMaTemplateService;
27-
import cn.binarywang.wx.miniapp.api.WxMaUserService;
2819
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
2920
import cn.binarywang.wx.miniapp.config.WxMaConfig;
3021
import com.google.common.base.Joiner;
@@ -65,6 +56,7 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl
6556
private WxMaCodeService codeService = new WxMaCodeServiceImpl(this);
6657
private WxMaSettingService settingService = new WxMaSettingServiceImpl(this);
6758
private WxMaJsapiService jsapiService = new WxMaJsapiServiceImpl(this);
59+
private WxMaShareService shareService = new WxMaShareServiceImpl(this);
6860

6961
private int retrySleepMillis = 1000;
7062
private int maxRetryTimes = 5;
@@ -335,4 +327,9 @@ public WxMaJsapiService getJsapiService() {
335327
public WxMaSettingService getSettingService() {
336328
return this.settingService;
337329
}
330+
331+
@Override
332+
public WxMaShareService getShareService() {
333+
return this.shareService;
334+
}
338335
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package cn.binarywang.wx.miniapp.api.impl;
2+
3+
import cn.binarywang.wx.miniapp.api.WxMaService;
4+
import cn.binarywang.wx.miniapp.api.WxMaShareService;
5+
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
6+
import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
7+
8+
/**
9+
* @author zhfish
10+
*/
11+
public class WxMaShareServiceImpl implements WxMaShareService {
12+
private WxMaService service;
13+
14+
public WxMaShareServiceImpl(WxMaService service) {
15+
this.service = service;
16+
}
17+
18+
@Override
19+
public WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr) {
20+
return WxMaShareInfo.fromJson(WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr));
21+
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package cn.binarywang.wx.miniapp.bean;
2+
3+
import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;
4+
import lombok.Data;
5+
6+
import java.io.Serializable;
7+
8+
/**
9+
* @author zhfish
10+
*/
11+
@Data
12+
public class WxMaShareInfo implements Serializable {
13+
private static final long serialVersionUID = -8053613683499632226L;
14+
15+
private String openGId;
16+
17+
public static WxMaShareInfo fromJson(String json) {
18+
return WxMaGsonBuilder.create().fromJson(json, WxMaShareInfo.class);
19+
}
20+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package cn.binarywang.wx.miniapp.api.impl;
2+
3+
import cn.binarywang.wx.miniapp.api.WxMaService;
4+
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
5+
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
6+
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
7+
import cn.binarywang.wx.miniapp.test.ApiTestModule;
8+
import cn.binarywang.wx.miniapp.test.TestConfig;
9+
import com.google.common.collect.ImmutableMap;
10+
import com.google.inject.Inject;
11+
import me.chanjar.weixin.common.error.WxErrorException;
12+
import org.testng.annotations.Guice;
13+
import org.testng.annotations.Test;
14+
15+
import static org.testng.Assert.assertNotNull;
16+
import static org.testng.Assert.assertTrue;
17+
18+
/**
19+
* 测试分享相关的接口
20+
*
21+
* @author zhfish
22+
*/
23+
@Test
24+
@Guice(modules = ApiTestModule.class)
25+
public class WxMaShareServiceImplTest {
26+
27+
@Inject
28+
private WxMaService wxService;
29+
30+
@Test
31+
public void testGetSessionKey() throws Exception {
32+
assertNotNull(this.wxService.getUserService().getSessionInfo("aaa"));
33+
}
34+
35+
/**
36+
* TODO 测试数据有问题,需要替换为正确的数据
37+
*/
38+
@Test
39+
public void testGetShareInfo() {
40+
WxMaShareInfo shareInfo = this.wxService.getShareService().getShareInfo("tiihtNczf5v6AKRyjwEUhQ==",
41+
"CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZMQmRzooG2xrDcvSnxIMXFufNstNGTyaGS9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+3hVbJSRgv+4lGOETKUQz6OYStslQ142dNCuabNPGBzlooOmB231qMM85d2/fV6ChevvXvQP8Hkue1poOFtnEtpyxVLW1zAo6/1Xx1COxFvrc2d7UL/lmHInNlxuacJXwu0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn/Hz7saL8xz+W//FRAUid1OksQaQx4CMs8LOddcQhULW4ucetDf96JcR3g0gfRK4PC7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns/8wR2SiRS7MNACwTyrGvt9ts8p12PKFdlqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYVoKlaRv85IfVunYzO0IKXsyl7JCUjCpoG20f0a04COwfneQAGGwd5oa+T8yO5hzuyDb/XcxxmK01EpqOyuxINew==",
42+
"r7BXXKkLb8qrSNn05n0qiA==");
43+
assertNotNull(shareInfo);
44+
System.out.println(shareInfo.toString());
45+
}
46+
}

0 commit comments

Comments
 (0)