diff --git a/mailbox-outer/src/main/java/com/biutag/outer/config/XybProperties.java b/mailbox-outer/src/main/java/com/biutag/outer/config/XybProperties.java new file mode 100644 index 0000000..ef1dcdf --- /dev/null +++ b/mailbox-outer/src/main/java/com/biutag/outer/config/XybProperties.java @@ -0,0 +1,19 @@ +package com.biutag.outer.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Setter +@Getter +@Configuration +@ConfigurationProperties( + prefix = "xyb" +) +public class XybProperties { + + private String clinetId; + + private String publicKey; +} diff --git a/mailbox-outer/src/main/java/com/biutag/outer/domain/vo/XybUserInfo.java b/mailbox-outer/src/main/java/com/biutag/outer/domain/vo/XybUserInfo.java new file mode 100644 index 0000000..0dc0552 --- /dev/null +++ b/mailbox-outer/src/main/java/com/biutag/outer/domain/vo/XybUserInfo.java @@ -0,0 +1,38 @@ +package com.biutag.outer.domain.vo; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class XybUserInfo { + + private String id; + + // 身份证 + private String certificateNum; + + // 身份证开始时间 + private String certEffDate; + + // 身份证结束时间 + private String certExpDate; + + // 身份证类型 + private String certificateType; + + // 姓名 + private String name; + + // 电话 + private String phone; + + // 实名认证等级 + private String realLvl; + + // 性别 + private String sex; + + // 用户类型 + private String userType; +} diff --git a/mailbox-outer/src/main/java/com/biutag/outer/util/XybApi.java b/mailbox-outer/src/main/java/com/biutag/outer/util/XybApi.java new file mode 100644 index 0000000..d042a83 --- /dev/null +++ b/mailbox-outer/src/main/java/com/biutag/outer/util/XybApi.java @@ -0,0 +1,43 @@ +package com.biutag.outer.util; + +import cn.hutool.crypto.asymmetric.KeyType; +import cn.hutool.crypto.asymmetric.RSA; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.biutag.outer.config.XybProperties; +import com.biutag.outer.domain.vo.XybUserInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class XybApi { + + private static XybProperties xybProperties; + + public XybApi(XybProperties properties) { + XybApi.xybProperties = properties; + } + + public static XybUserInfo getXybUserInfo(String accessLink) { + // https://mycs.csbtv.com + String url = String.format("https://mycs.csbtv.com/my-exclusive-api/xyb/getXybUserInfo?accessLink=%s&clientId=%s", accessLink, + xybProperties.getClinetId()); + log.info(url); + HttpResponse httpResponse = HttpUtil.createGet(url) + .execute(); + log.info(httpResponse.body()); + if (!httpResponse.isOk()) { + log.error("湘易办服务异常: {}", httpResponse.body()); + throw new RuntimeException("湘易办服务异常"); + } + JSONObject response = JSON.parseObject(httpResponse.body()); + RSA rsaPri = new RSA(null, xybProperties.getPublicKey()); + String jsonStr = rsaPri.decryptStr(response.getString("data"), KeyType.PublicKey); + // String jsonStr = rsaPri.decryptStr("HdLGrWa3fg1hBdYpQHhpG9L1QMi2FnhN6ZsXzEXumXnPnwDauG7t2efZ2eFIM7kifFurXU6DftULecezi2ouUVzWyqMffBfZDzlPrapQgQcAVpV8N8VMEH8FwgiAg0yjP9AwdKpsfOGhiEGkascaj2U99gpqNL4P02Vdz67sbnVmkjD3VWOZkh6P5h1i12ldEZTdoLmYT24V5n4QnK7O63oSIDMzaOH1A8ZhBKpYuG0XqzvklpHpllthqajMsAtXN3RFcXmvzQX8aIm9QHDECHl4syl1SJgegdJuyngbFzOkmUrBLVSRrBBRsHXMTg/Iydb9cC3CkyNlLEHqCgJwGg==", KeyType.PublicKey); + return JSON.parseObject(jsonStr, XybUserInfo.class); + } + +} diff --git a/mailbox-outer/src/main/resources/application.yml b/mailbox-outer/src/main/resources/application.yml index 29b1a0b..54bafdb 100644 --- a/mailbox-outer/src/main/resources/application.yml +++ b/mailbox-outer/src/main/resources/application.yml @@ -32,4 +32,8 @@ spring: mybatis-plus: configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +xyb: + clinet-id: VON6F9E15L + public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFBLOuFMyRN9QR2oqAwaWbrICn83E0JEP5n+8LFet0Dlj11nvzCmJTUCuy0Dx2YDa2lhr/b+CvjWy/qqdb7wbKJSo9z8MvkAAC/uEWaKsludTL8EUWttlwiXJZmMfj5QMOVfCbVCpI91+rBcWRR8Vg5MQGqDh0ZA4ym5j6mGYyRwIDAQAB