|
|
@@ -4,7 +4,6 @@ import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.AlipayClient;
|
|
|
import com.alipay.api.domain.AlipayFundAuthorizeUniApplyModel;
|
|
|
import com.alipay.api.domain.AlipayFundAuthorizeUniQueryModel;
|
|
|
-import com.alipay.api.domain.BankAuthUserInfo;
|
|
|
import com.alipay.api.request.AlipayFundAuthorizeUniApplyRequest;
|
|
|
import com.alipay.api.request.AlipayFundAuthorizeUniQueryRequest;
|
|
|
import com.alipay.api.response.AlipayFundAuthorizeUniApplyResponse;
|
|
|
@@ -289,13 +288,10 @@ class BatchSubjectServiceTest {
|
|
|
resp.setStatus("AUTHED");
|
|
|
when(alipayClient.certificateExecute(any(AlipayFundAuthorizeUniQueryRequest.class))).thenReturn(resp);
|
|
|
|
|
|
- Map<String, Object> result = service.query("A1");
|
|
|
+ Map<String, String> result = service.query("A1");
|
|
|
|
|
|
assertEquals("AGMT001", result.get("agreement_no"));
|
|
|
assertEquals("AUTHED", result.get("status"));
|
|
|
- // 响应无 authUserInfo 时返回键不存在(前端判空兜底),open_id 恒为空串
|
|
|
- assertEquals("", result.get("open_id"));
|
|
|
- assertFalse(result.containsKey("auth_user_info"));
|
|
|
// 生效授权回写本地: 协议号 + AUTHED
|
|
|
ArgumentCaptor<BatchAuthorizeEntity> cap = ArgumentCaptor.forClass(BatchAuthorizeEntity.class);
|
|
|
verify(batchAuthorizeMapper).updateById(cap.capture());
|
|
|
@@ -303,36 +299,6 @@ class BatchSubjectServiceTest {
|
|
|
assertEquals("AUTHED", cap.getValue().getStatus());
|
|
|
}
|
|
|
|
|
|
- @Test
|
|
|
- void query_returnsAuthUserInfoAndOpenId() throws AlipayApiException {
|
|
|
- // 用户完成授权后支付宝回传授权人信息(BankAuthUserInfo)+ 应用下 openId,需透传给前端渲染
|
|
|
- mockLocalRecord();
|
|
|
- AlipayFundAuthorizeUniQueryResponse resp = new AlipayFundAuthorizeUniQueryResponse();
|
|
|
- resp.setAgreementNo("AGMT001");
|
|
|
- resp.setStatus("AUTHED");
|
|
|
- resp.setOpenId("208800000000000000000001");
|
|
|
- BankAuthUserInfo info = new BankAuthUserInfo();
|
|
|
- info.setAlipayAccountNo("2088111122223333");
|
|
|
- info.setAlipayNickName("张三");
|
|
|
- info.setAlipayOutCardNo("6222000011112222");
|
|
|
- info.setUserCertNo("310101199001011234");
|
|
|
- info.setUserName("张三");
|
|
|
- resp.setAuthUserInfo(info);
|
|
|
- when(alipayClient.certificateExecute(any(AlipayFundAuthorizeUniQueryRequest.class))).thenReturn(resp);
|
|
|
-
|
|
|
- Map<String, Object> result = service.query("A1");
|
|
|
-
|
|
|
- assertEquals("208800000000000000000001", result.get("open_id"));
|
|
|
- @SuppressWarnings("unchecked")
|
|
|
- Map<String, String> authInfo = (Map<String, String>) result.get("auth_user_info");
|
|
|
- assertNotNull(authInfo);
|
|
|
- assertEquals("2088111122223333", authInfo.get("alipay_account_no"));
|
|
|
- assertEquals("张三", authInfo.get("alipay_nick_name"));
|
|
|
- assertEquals("6222000011112222", authInfo.get("alipay_out_card_no"));
|
|
|
- assertEquals("310101199001011234", authInfo.get("user_cert_no"));
|
|
|
- assertEquals("张三", authInfo.get("user_name"));
|
|
|
- }
|
|
|
-
|
|
|
@Test
|
|
|
void query_unbind_doesNotOverwriteLocalStatus() throws AlipayApiException {
|
|
|
mockLocalRecord();
|
|
|
@@ -341,7 +307,7 @@ class BatchSubjectServiceTest {
|
|
|
resp.setStatus("UNBIND");
|
|
|
when(alipayClient.certificateExecute(any(AlipayFundAuthorizeUniQueryRequest.class))).thenReturn(resp);
|
|
|
|
|
|
- Map<String, Object> result = service.query("A1");
|
|
|
+ Map<String, String> result = service.query("A1");
|
|
|
|
|
|
assertEquals("AGMT001", result.get("agreement_no"));
|
|
|
assertEquals("UNBIND", result.get("status"));
|
|
|
@@ -359,13 +325,10 @@ class BatchSubjectServiceTest {
|
|
|
resp.setMsg("Business Failed");
|
|
|
when(alipayClient.certificateExecute(any(AlipayFundAuthorizeUniQueryRequest.class))).thenReturn(resp);
|
|
|
|
|
|
- Map<String, Object> result = service.query("A1");
|
|
|
+ Map<String, String> result = service.query("A1");
|
|
|
|
|
|
assertEquals("", result.get("agreement_no"));
|
|
|
assertEquals("AUTHING", result.get("status"));
|
|
|
- // 未授权分支结构一致: open_id 空串 + auth_user_info 空对象,前端无需分支防御
|
|
|
- assertEquals("", result.get("open_id"));
|
|
|
- assertEquals(Map.of(), result.get("auth_user_info"));
|
|
|
verify(batchAuthorizeMapper, never()).updateById(any());
|
|
|
}
|
|
|
|