shenrongliang
2025-05-23 25b5dc537bba2e583ec4e978d9d0ae06c2f92b57
获取DUIXtoken
已修改1个文件
已添加3个文件
123 ■■■■■ 文件已修改
yudao-module-system/yudao-module-system-api/pom.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-system/yudao-module-system-api/pom.xml
@@ -28,6 +28,14 @@
            <artifactId>spring-boot-starter-validation</artifactId>
            <optional>true</optional>
        </dependency>
<!--        å¼•å…¥DUIXpom依赖-->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.8.3</version>
        </dependency>
    </dependencies>
</project>
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.system.api.duix;
import java.util.Map;
/**
 * duix接口API
 */
public interface DuixApi {
    /**
     * èŽ·å–APP实时并发号
     * æŸ¥è¯¢æŒ‡å®š APP ä¸‹çš„并发号
     * appId åº”用程序    å­—符串    æŸ¥è¯¢    ä»Žå¹³å°åˆ›å»ºçš„ APPID
     */
    Map<String, Object> getAppConcurrent(String appId);
}
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package cn.iocoder.yudao.module.system.api.duix;
import org.springframework.stereotype.Service;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
@Service
public class DuixApiImpl implements DuixApi{
    /**
     * ç”Ÿæˆtouken
     * appId    string    ä¼šè¯æ ‡è¯†ï¼Œä¼šè¯åˆ›å»ºæˆåŠŸåŽèŽ·å–    xxxxxxx
     * appKey    string    ä¼šè¯å¯†é’¥ï¼Œä¼šè¯åˆ›å»ºæˆåŠŸåŽèŽ·å–    xxxxxxx
     * sigExp    Integer    ç­¾åæœ‰æ•ˆæ—¶é—´ï¼Œå•位秒    18000
     */
    public static String createSig(String appId, String appKey, int sigExp) {
        Calendar nowTime = Calendar.getInstance();
        nowTime.add(Calendar.SECOND, sigExp);
        Date expiresDate = nowTime.getTime();
        return JWT.create()
                //Release date
                .withIssuedAt(new Date())
                //effective time
                .withExpiresAt(expiresDate)
                //load
                .withClaim("appId", appId)
                //encryption
                .sign(Algorithm.HMAC256(appKey));
    }
    /**
     * èŽ·å–APP实时并发号
     * æŸ¥è¯¢æŒ‡å®š APP ä¸‹çš„并发号
     * appId åº”用程序    å­—符串    æŸ¥è¯¢    ä»Žå¹³å°åˆ›å»ºçš„ APPID
     *
     * @param appId
     */
    @Override
    public Map<String, Object> getAppConcurrent(String appId) {
        String urlString = "https://your-domain.com/duix-openapi-v2/sdk/v2/getconcurrentNumber?appId=" + appId;
        try {
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            // è®¾ç½®è¯·æ±‚方法为 GET
            conn.setRequestMethod("GET");
            // è®¾ç½®è¯·æ±‚头(如果需要身份验证,比如token,可以添加如下内容)
            // conn.setRequestProperty("Authorization", "Bearer your_token");
            int responseCode = conn.getResponseCode();
            System.out.println("Response Code: " + responseCode);
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    conn.getInputStream()));
            String inputLine;
            StringBuilder response = new StringBuilder();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            // æ‰“印返回结果
            System.out.println("Response: " + response.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.duix;
import cn.iocoder.yudao.module.system.api.duix.DuixApiImpl;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/system/duix")
@RestController
public class DuixController {
    @GetMapping("/sign")
    public String sign() {
        String sig = DuixApiImpl.createSig("1375476628657934336", "5a067196-e493-4141-9ded-275f242212a3", 3600);
        return sig;
    }
}