mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 02:28:25 +08:00 
			
		
		
		
	This commit is contained in:
		| @ -179,6 +179,12 @@ public interface WxMaService { | |||||||
|    */ |    */ | ||||||
|   WxMaSettingService getSettingService(); |   WxMaSettingService getSettingService(); | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 返回分享相关查询服务 | ||||||
|  |    * @return WxMaShareService | ||||||
|  |    */ | ||||||
|  |   WxMaShareService getShareService(); | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 初始化http请求对象. |    * 初始化http请求对象. | ||||||
|    */ |    */ | ||||||
|  | |||||||
| @ -0,0 +1,21 @@ | |||||||
|  | package cn.binarywang.wx.miniapp.api; | ||||||
|  |  | ||||||
|  | import cn.binarywang.wx.miniapp.bean.WxMaShareInfo; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 分享信息相关操作接口. | ||||||
|  |  * | ||||||
|  |  * @author zhfish | ||||||
|  |  */ | ||||||
|  | public interface WxMaShareService { | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 解密分享敏感数据. | ||||||
|  |    * | ||||||
|  |    * @param sessionKey    会话密钥 | ||||||
|  |    * @param encryptedData 消息密文 | ||||||
|  |    * @param ivStr         加密算法的初始向量 | ||||||
|  |    */ | ||||||
|  |   WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr); | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -6,6 +6,7 @@ import java.util.HashMap; | |||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.concurrent.locks.Lock; | import java.util.concurrent.locks.Lock; | ||||||
|  |  | ||||||
|  | import cn.binarywang.wx.miniapp.api.*; | ||||||
| import org.apache.http.HttpHost; | import org.apache.http.HttpHost; | ||||||
| import org.apache.http.client.config.RequestConfig; | import org.apache.http.client.config.RequestConfig; | ||||||
| import org.apache.http.client.methods.CloseableHttpResponse; | import org.apache.http.client.methods.CloseableHttpResponse; | ||||||
| @ -15,16 +16,6 @@ import org.apache.http.impl.client.CloseableHttpClient; | |||||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||||
|  |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaAnalysisService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaCodeService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaJsapiService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaMediaService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaMsgService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaQrcodeService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaSettingService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaTemplateService; |  | ||||||
| import cn.binarywang.wx.miniapp.api.WxMaUserService; |  | ||||||
| import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | ||||||
| import cn.binarywang.wx.miniapp.config.WxMaConfig; | import cn.binarywang.wx.miniapp.config.WxMaConfig; | ||||||
| import com.google.common.base.Joiner; | import com.google.common.base.Joiner; | ||||||
| @ -65,6 +56,7 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl | |||||||
|   private WxMaCodeService codeService = new WxMaCodeServiceImpl(this); |   private WxMaCodeService codeService = new WxMaCodeServiceImpl(this); | ||||||
|   private WxMaSettingService settingService = new WxMaSettingServiceImpl(this); |   private WxMaSettingService settingService = new WxMaSettingServiceImpl(this); | ||||||
|   private WxMaJsapiService jsapiService = new WxMaJsapiServiceImpl(this); |   private WxMaJsapiService jsapiService = new WxMaJsapiServiceImpl(this); | ||||||
|  |   private WxMaShareService shareService = new WxMaShareServiceImpl(this); | ||||||
|  |  | ||||||
|   private int retrySleepMillis = 1000; |   private int retrySleepMillis = 1000; | ||||||
|   private int maxRetryTimes = 5; |   private int maxRetryTimes = 5; | ||||||
| @ -335,4 +327,9 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl | |||||||
|   public WxMaSettingService getSettingService() { |   public WxMaSettingService getSettingService() { | ||||||
|     return this.settingService; |     return this.settingService; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMaShareService getShareService() { | ||||||
|  |     return this.shareService; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,23 @@ | |||||||
|  | package cn.binarywang.wx.miniapp.api.impl; | ||||||
|  |  | ||||||
|  | import cn.binarywang.wx.miniapp.api.WxMaService; | ||||||
|  | import cn.binarywang.wx.miniapp.api.WxMaShareService; | ||||||
|  | import cn.binarywang.wx.miniapp.bean.WxMaShareInfo; | ||||||
|  | import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * @author zhfish | ||||||
|  |  */ | ||||||
|  | public class WxMaShareServiceImpl implements WxMaShareService { | ||||||
|  |   private WxMaService service; | ||||||
|  |  | ||||||
|  |   public WxMaShareServiceImpl(WxMaService service) { | ||||||
|  |     this.service = service; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr) { | ||||||
|  |     return WxMaShareInfo.fromJson(WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr)); | ||||||
|  |  | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | package cn.binarywang.wx.miniapp.bean; | ||||||
|  |  | ||||||
|  | import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import java.io.Serializable; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * @author zhfish | ||||||
|  |  */ | ||||||
|  | @Data | ||||||
|  | public class WxMaShareInfo implements Serializable { | ||||||
|  |   private static final long serialVersionUID = -8053613683499632226L; | ||||||
|  |  | ||||||
|  |   private String openGId; | ||||||
|  |  | ||||||
|  |   public static WxMaShareInfo fromJson(String json) { | ||||||
|  |     return WxMaGsonBuilder.create().fromJson(json, WxMaShareInfo.class); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1,46 @@ | |||||||
|  | package cn.binarywang.wx.miniapp.api.impl; | ||||||
|  |  | ||||||
|  | import cn.binarywang.wx.miniapp.api.WxMaService; | ||||||
|  | import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; | ||||||
|  | import cn.binarywang.wx.miniapp.bean.WxMaShareInfo; | ||||||
|  | import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; | ||||||
|  | import cn.binarywang.wx.miniapp.test.ApiTestModule; | ||||||
|  | import cn.binarywang.wx.miniapp.test.TestConfig; | ||||||
|  | import com.google.common.collect.ImmutableMap; | ||||||
|  | import com.google.inject.Inject; | ||||||
|  | import me.chanjar.weixin.common.error.WxErrorException; | ||||||
|  | import org.testng.annotations.Guice; | ||||||
|  | import org.testng.annotations.Test; | ||||||
|  |  | ||||||
|  | import static org.testng.Assert.assertNotNull; | ||||||
|  | import static org.testng.Assert.assertTrue; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 测试分享相关的接口 | ||||||
|  |  * | ||||||
|  |  * @author zhfish | ||||||
|  |  */ | ||||||
|  | @Test | ||||||
|  | @Guice(modules = ApiTestModule.class) | ||||||
|  | public class WxMaShareServiceImplTest { | ||||||
|  |  | ||||||
|  |   @Inject | ||||||
|  |   private WxMaService wxService; | ||||||
|  |  | ||||||
|  |   @Test | ||||||
|  |   public void testGetSessionKey() throws Exception { | ||||||
|  |     assertNotNull(this.wxService.getUserService().getSessionInfo("aaa")); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * TODO 测试数据有问题,需要替换为正确的数据 | ||||||
|  |    */ | ||||||
|  |   @Test | ||||||
|  |   public void testGetShareInfo() { | ||||||
|  |     WxMaShareInfo shareInfo = this.wxService.getShareService().getShareInfo("tiihtNczf5v6AKRyjwEUhQ==", | ||||||
|  |       "CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZMQmRzooG2xrDcvSnxIMXFufNstNGTyaGS9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+3hVbJSRgv+4lGOETKUQz6OYStslQ142dNCuabNPGBzlooOmB231qMM85d2/fV6ChevvXvQP8Hkue1poOFtnEtpyxVLW1zAo6/1Xx1COxFvrc2d7UL/lmHInNlxuacJXwu0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn/Hz7saL8xz+W//FRAUid1OksQaQx4CMs8LOddcQhULW4ucetDf96JcR3g0gfRK4PC7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns/8wR2SiRS7MNACwTyrGvt9ts8p12PKFdlqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYVoKlaRv85IfVunYzO0IKXsyl7JCUjCpoG20f0a04COwfneQAGGwd5oa+T8yO5hzuyDb/XcxxmK01EpqOyuxINew==", | ||||||
|  |       "r7BXXKkLb8qrSNn05n0qiA=="); | ||||||
|  |     assertNotNull(shareInfo); | ||||||
|  |     System.out.println(shareInfo.toString()); | ||||||
|  |   } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 zhfish
					zhfish