stjdydayou 4 роки тому
батько
коміт
2866db3a40

+ 49 - 11
src/main/java/com/zhiqiyun/open/router/apis/Oauth2Api.java

@@ -117,7 +117,7 @@ public class Oauth2Api {
         return this.getResponse(builder);
     }
 
-    @ServiceMethod(method = "oauth2.wechat.mp.login", title = "微信公众号授权登录")
+    @ServiceMethod(method = "oauth2.wechat.login", title = "微信授权登录")
     public OapResponse oauthWechatLogin(Oauth2WechatMpLoginRequest request) throws IOException {
 
         String hostAddress = this.systemConfigService.getStringValue("OAUTH2_API_CONFIG", "hostAddress");
@@ -130,10 +130,18 @@ public class Oauth2Api {
 
 
         Request.Builder builder = new Request.Builder();
-        builder.url(String.format("%s/blade-auth/oauth/callback/%s", hostAddress, request.getSource()));
+
+        String url = String.format("%s/blade-auth/oauth/callback/%s?code=%s&appId=%s",
+                hostAddress,
+                request.getSource(),
+                request.getCode(),
+                request.getAppId()
+        );
+        log.info(url);
+        builder.url(url);
         builder.header("Authorization", "Basic " + clientSecret);
-        builder.header("Content-Type", "application/x-www-form-urlencoded");
-        builder.post(formBuilder.build());
+        builder.header("Content-Type", "application/x-www-form-urlencode");
+        builder.get();
 
         return this.getResponse(builder);
     }
@@ -229,12 +237,12 @@ public class Oauth2Api {
         if (request.getSex() != null) {
             paramValues.put("sex", request.getSex().toString());
         }
-		if (StringUtils.isNotBlank(request.getEmail())){
-			paramValues.put("email", request.getEmail());
-		}
-		if (StringUtils.isNotBlank(request.getPhone())){
-			paramValues.put("phone", request.getPhone());
-		}
+        if (StringUtils.isNotBlank(request.getEmail())) {
+            paramValues.put("email", request.getEmail());
+        }
+        if (StringUtils.isNotBlank(request.getPhone())) {
+            paramValues.put("phone", request.getPhone());
+        }
 
         RequestBody requestBody = RequestBody.create(JSON.toJSONString(paramValues), MediaType.parse("application/json; charset=utf-8"));
 
@@ -248,6 +256,36 @@ public class Oauth2Api {
         return this.getResponse(builder);
     }
 
+    /**
+     * 已经对接成功
+     *
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    @ServiceMethod(method = "oauth2.update.password", title = "修改密码")
+    public OapResponse oauthUpdatePassword(Oauth2UpdatePasswordRequest request) throws IOException {
+
+        String hostAddress = this.systemConfigService.getStringValue("OAUTH2_API_CONFIG", "hostAddress");
+        String clientSecret = this.systemConfigService.getStringValue("OAUTH2_API_CONFIG", "clientSecret");
+
+        Map<String, String> paramValues = new HashMap<>();
+        paramValues.put("oldPassword", DigestUtils.md5Hex(request.getOldPassword()));
+        paramValues.put("newPassword", DigestUtils.md5Hex(request.getNewPassword()));
+
+        FormBody.Builder formBuilder = new FormBody.Builder();
+        paramValues.forEach(formBuilder::add);
+
+        Request.Builder builder = new Request.Builder();
+        builder.url(String.format("%s/blade-user/account/update-password", hostAddress));
+        builder.header("Authorization", "Basic " + clientSecret);
+        builder.header("Blade-Auth", "bearer " + request.getAccessToken());
+        builder.header("Content-Type", "application/x-www-form-urlencode");
+        builder.post(formBuilder.build());
+
+        return this.getResponse(builder);
+    }
+
     private OapResponse getResponse(Request.Builder builder) throws IOException {
         Response resp = this.okHttpClient.newCall(builder.build()).execute();
         if (resp.isSuccessful()) {
@@ -273,7 +311,7 @@ public class Oauth2Api {
                 }
                 return OapResponse.fail("ERROR", msg);
             } else {
-                return OapResponse.fail("NETWORK_ERROR", "网络异常" + resp.message());
+                return OapResponse.fail("NETWORK_ERROR", resp.message());
             }
         }
     }

+ 24 - 0
src/main/java/com/zhiqiyun/open/router/request/oauth2/Oauth2UpdatePasswordRequest.java

@@ -0,0 +1,24 @@
+package com.zhiqiyun.open.router.request.oauth2;
+
+import com.dliyun.oap.framework.annotation.ServiceParamField;
+import com.dliyun.oap.framework.request.AbstractOapRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Oauth2UpdatePasswordRequest extends AbstractOapRequest {
+    @ServiceParamField(describe = "用户认证的Token")
+    @NotBlank
+    private String accessToken;
+
+    @ServiceParamField(describe = "旧密码")
+    @NotBlank
+    private String oldPassword;
+
+    @ServiceParamField(describe = "新密码")
+    @NotBlank
+    private String newPassword;
+}

+ 5 - 1
src/main/java/com/zhiqiyun/open/router/request/oauth2/Oauth2WechatMpLoginRequest.java

@@ -11,10 +11,14 @@ import javax.validation.constraints.NotBlank;
 @EqualsAndHashCode(callSuper = true)
 public class Oauth2WechatMpLoginRequest extends AbstractOapRequest {
 
-	@ServiceParamField(describe = "微信公众号")
+	@ServiceParamField(describe = "固定值;公众号:WECHAT_MP;小程序:WECHAT_MINI")
 	@NotBlank
 	private String source;
 
+	@ServiceParamField(describe = "微信应用id")
+	@NotBlank
+	private String appId;
+
 	@ServiceParamField(describe = "微信公众号授权码")
 	@NotBlank
 	private String code;

+ 61 - 17
src/test/java/com/zhiqiyun/TestSdk.java

@@ -2,6 +2,7 @@ package com.zhiqiyun;
 
 import com.alibaba.fastjson.JSON;
 import com.dliyun.AlgorithmType;
+import com.dliyun.ClientException;
 import com.dliyun.DefaultClient;
 import com.dliyun.Response;
 
@@ -9,23 +10,66 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class TestSdk {
-	public static void main(String[] args) throws Exception {
-		DefaultClient client = new DefaultClient(
-				"http://127.0.0.1:9800/router",
-				"220228000020",
-				"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzg5TgyojZDZpSpUhpXlk6wWOH0OuVjnrOKOl9jdpzgG2fgws59Ue8YMGJpVi7q32mh4cIbNi5YDnH9sIxbFKPAo8HrcopVQfQ3E+z7e4T1yErfzsNk+sWjA3piZMSZOxX/rAZetAXYAT8ZxXUDidpEnjE7QR3uNBtiTS9TvhKxwIDAQAB",
-				AlgorithmType.RSA
-		);
-		Map<String, Object> dataMap = new HashMap<>();
-		dataMap.put("accessToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOm51bGwsInVzZXJfbmFtZSI6InN0amR5ZGF5b3UiLCJyZWFsX25hbWUiOiLmtYvor5VyZWFsTmFtZSIsImF2YXRhciI6IiIsImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwiYWNjb3VudF9pZCI6IjE1MDAxMDA4MTc4MzIzMjEwMjYiLCJwb3N0X2lkIjoiIiwidXNlcl9pZCI6IiIsInJvbGVfaWQiOiIiLCJzY29wZSI6WyJhbGwiXSwibmlja19uYW1lIjoi5rWL6K-VbmFtZSIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjpudWxsLCJleHAiOjE2NDY3NDgyNTAsImRlcHRfaWQiOiIiLCJqdGkiOiI0Yzc4OTZiYy1kMGMxLTRjYzktOGEyYi03ODFkYWQ2M2E1NzgiLCJhY2NvdW50Ijoic3RqZHlkYXlvdSJ9.IMfsrcWrD0lKfddcQ3rD3Tug4d5o74u_AaYF__OxWmg");
-		dataMap.put("name", "测试Name");
-		dataMap.put("realName", "测试realName");
-//		form1.put("sex", "1");
-//		form1.put("email", "测试email");
-//		form1.put("phone", "测试phone");
-		Response<Map<String, Object>> response = client.execute("oauth2.update.info", "1.0.0", dataMap);
-		System.out.println(JSON.toJSONString(response));
-	}
+    public static void main(String[] args) throws Exception {
+        DefaultClient client = new DefaultClient(
+                "http://127.0.0.1:9800/router",
+                "220228000020",
+                "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzg5TgyojZDZpSpUhpXlk6wWOH0OuVjnrOKOl9jdpzgG2fgws59Ue8YMGJpVi7q32mh4cIbNi5YDnH9sIxbFKPAo8HrcopVQfQ3E+z7e4T1yErfzsNk+sWjA3piZMSZOxX/rAZetAXYAT8ZxXUDidpEnjE7QR3uNBtiTS9TvhKxwIDAQAB",
+                AlgorithmType.RSA
+        );
+//		Map<String, Object> dataMap = new HashMap<>();
+//		dataMap.put("accessToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOm51bGwsInVzZXJfbmFtZSI6InN0amR5ZGF5b3UiLCJyZWFsX25hbWUiOiLmtYvor5VyZWFsTmFtZSIsImF2YXRhciI6IiIsImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwiYWNjb3VudF9pZCI6IjE1MDAxMDA4MTc4MzIzMjEwMjYiLCJwb3N0X2lkIjoiIiwidXNlcl9pZCI6IiIsInJvbGVfaWQiOiIiLCJzY29wZSI6WyJhbGwiXSwibmlja19uYW1lIjoi5rWL6K-VbmFtZSIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjpudWxsLCJleHAiOjE2NDY3NDgyNTAsImRlcHRfaWQiOiIiLCJqdGkiOiI0Yzc4OTZiYy1kMGMxLTRjYzktOGEyYi03ODFkYWQ2M2E1NzgiLCJhY2NvdW50Ijoic3RqZHlkYXlvdSJ9.IMfsrcWrD0lKfddcQ3rD3Tug4d5o74u_AaYF__OxWmg");
+//		dataMap.put("oldPassword", "123456");
+//		dataMap.put("newPassword", "654321");
+////		form1.put("sex", "1");
+////		form1.put("email", "测试email");
+////		form1.put("phone", "测试phone");
+//		Response<Map<String, Object>> response = client.execute("oauth2.update.password", "1.0.0", dataMap);
+//		System.out.println(JSON.toJSONString(response));
+        TestSdk.testWechatLogin(client);
+    }
+
+    public static void testlogin(DefaultClient client) throws ClientException {
+
+        Map<String, Object> dataMap = new HashMap<>();
+        dataMap.put("userName", "stjdydayou");
+        dataMap.put("password", "123456");
+        Response<Map<String, Object>> response = client.execute("oauth2.login", "1.0.0", dataMap);
+        System.out.println(JSON.toJSONString(response));
+    }
+
+    public static void testUpdatePassword(DefaultClient client) throws ClientException {
+
+        Map<String, Object> dataMap = new HashMap<>();
+        dataMap.put("accessToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOm51bGwsInVzZXJfbmFtZSI6InN0amR5ZGF5b3UiLCJyZWFsX25hbWUiOiLmtYvor5VyZWFsTmFtZSIsImF2YXRhciI6IiIsImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwiYWNjb3VudF9pZCI6IjE1MDAxMDA4MTc4MzIzMjEwMjYiLCJwb3N0X2lkIjoiIiwidXNlcl9pZCI6IiIsInJvbGVfaWQiOiIiLCJzY29wZSI6WyJhbGwiXSwibmlja19uYW1lIjoi5rWL6K-VTmFtZSIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjpudWxsLCJleHAiOjE2NDY3NTkzNzAsImRlcHRfaWQiOiIiLCJqdGkiOiJkMTJiY2JhZC0xNGUzLTQ3MzQtOTJjOC01ZGNkNjhjODU4NGEiLCJhY2NvdW50Ijoic3RqZHlkYXlvdSJ9.AkmVj1GJZctly2e5cBlmv4YQOAJgevSiLJoIxye85Ko");
+        dataMap.put("oldPassword", "123456");
+        dataMap.put("newPassword", "654321");
+        Response<Map<String, Object>> response = client.execute("oauth2.update.password", "1.0.0", dataMap);
+        System.out.println(JSON.toJSONString(response));
+    }
+
+    public static void testUpdateInfo(DefaultClient client) throws ClientException {
+
+        Map<String, Object> dataMap = new HashMap<>();
+        dataMap.put("accessToken", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOm51bGwsInVzZXJfbmFtZSI6InN0amR5ZGF5b3UiLCJyZWFsX25hbWUiOiLmtYvor5VyZWFsTmFtZSIsImF2YXRhciI6IiIsImNsaWVudF9pZCI6InNhYmVyIiwicm9sZV9uYW1lIjoiIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwiYWNjb3VudF9pZCI6IjE1MDAxMDA4MTc4MzIzMjEwMjYiLCJwb3N0X2lkIjoiIiwidXNlcl9pZCI6IiIsInJvbGVfaWQiOiIiLCJzY29wZSI6WyJhbGwiXSwibmlja19uYW1lIjoi5rWL6K-VTmFtZSIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjpudWxsLCJleHAiOjE2NDY3NTkzNzAsImRlcHRfaWQiOiIiLCJqdGkiOiJkMTJiY2JhZC0xNGUzLTQ3MzQtOTJjOC01ZGNkNjhjODU4NGEiLCJhY2NvdW50Ijoic3RqZHlkYXlvdSJ9.AkmVj1GJZctly2e5cBlmv4YQOAJgevSiLJoIxye85Ko");
+        dataMap.put("name", "123456");
+        dataMap.put("realName", "654321");
+        dataMap.put("sex", "1");
+        dataMap.put("email", "stjdydayou@163.com");
+        dataMap.put("phone", "18073113117");
+        Response<Map<String, Object>> response = client.execute("oauth2.update.info", "1.0.0", dataMap);
+        System.out.println(JSON.toJSONString(response));
+    }
+
+    public static void testWechatLogin(DefaultClient client) throws ClientException {
+
+        Map<String, Object> dataMap = new HashMap<>();
+        dataMap.put("source", "WECHAT_MP");
+        dataMap.put("appId", "wxc01ea0423e91d9e0");
+        dataMap.put("code", "654321");
+        Response<Map<String, Object>> response = client.execute("oauth2.wechat.login", "1.0.0", dataMap);
+        System.out.println(JSON.toJSONString(response));
+    }
 }
 
 /*