API 概览

星河云验证系统为开发者提供完整的RESTful API接口,支持用户验证、卡密管理、文件分发等核心功能。

RESTful设计 HTTPS加密 多语言支持 实时响应

基本信息

项目 说明
API地址 https://api.didichou.site/api.php
请求方式 POST / GET
返回格式 JSON
编码格式 UTF-8

认证方式

星河云验证系统支持多种认证方式,确保API调用的安全性。

基础认证

使用应用ID(APP ID)进行基础身份验证:

基础请求
POST https://api.didichou.site/api.php?api=userlogon&app=YOUR_APP_ID

数据签名认证

通过MD5签名验证请求数据的完整性:

签名算法
// 1. 将参数按字典序排序
// 2. 拼接成 key1=value1&key2=value2 格式  
// 3. 末尾追加应用密钥
// 4. 计算MD5值转小写

$params = ['user' => 'test', 'password' => '123'];
ksort($params);
$string = http_build_query($params) . $app_key;
$sign = md5($string);
🔐 安全建议

生产环境强烈建议启用数据签名和RC4加密,确保API调用安全。

请求格式

所有API请求都遵循统一的格式规范。

通用参数

参数名 类型 必填 说明
api string 必填 接口名称,如 userlogon、kmlogon
app integer 必填 应用ID,在管理后台获取
sign string 可选 数据签名,开启签名验证时必填

响应格式

标准响应
{
  "code": 200,           // 状态码:200成功,其他为错误
  "msg": "操作成功",      // 响应消息
  "data": {              // 响应数据(可选)
    "user": "testuser"
  },
  "time": 1672531200     // 服务器时间戳
}

POST 用户注册

创建新的用户账号,支持用户名、密码、QQ等信息注册。

请求地址
POST https://api.didichou.site/api.php?api=userreg&app={APP_ID}
请求参数
参数名 类型 必填 说明
user string 必填 用户名,5-11位字母数字
password string 必填 密码,6-18位
qq string 必填 QQ号码
name string 可选 用户昵称
代码示例
PHP 示例
$data = [
    'user' => 'testuser123',
    'password' => 'mypassword',
    'qq' => '123456789',
    'name' => '测试用户'
];

$url = 'https://api.didichou.site/api.php?api=userreg&app=1001';
$result = http_post($url, $data);
$response = json_decode($result, true);
响应示例
注册成功 (200)
{
  "code": 200,
  "msg": "注册成功",
  "time": 1672531200
}
账号已存在 (115)
{
  "code": 115,
  "msg": "账号已存在",
  "time": 1672531200
}

POST 用户登录

使用用户名和密码进行登录验证。

请求参数
参数名 类型 必填 说明
user string 必填 用户名
password string 必填 密码
代码示例
Python 示例
import requests

data = {
    'user': 'testuser123',
    'password': 'mypassword'
}

url = 'https://api.didichou.site/api.php?api=userlogon&app=1001'
response = requests.post(url, data=data)
result = response.json()

if result['code'] == 200:
    print(f"登录成功,用户:{result['data']['user']}")
else:
    print(f"登录失败:{result['msg']}")

POST 卡密登录

使用卡密进行登录验证,支持时间卡、次数卡、永久卡等多种类型。

请求参数
参数名 类型 必填 说明
kami string 必填 卡密字符串
markcode string 必填 机器码/设备标识
⚠️ 重要提醒

卡密登录会绑定机器码,同一卡密在不同设备上使用可能会被拒绝。

卡密类型说明
类型 说明 VIP返回值
时间卡 按时长计费 到期时间戳
次数卡 按使用次数计费 当前时间+1小时
永久卡 永久使用权限 4102243200
代码示例
C# 示例
using System;
using System.Net.Http;
using System.Collections.Generic;
using Newtonsoft.Json;

var client = new HttpClient();
var data = new Dictionary<string, string>
{
    {"kami", "ABCD-1234-EFGH-5678"},
    {"markcode", "PC-12345-WIN10"}
};

var content = new FormUrlEncodedContent(data);
var url = "https://api.didichou.site/api.php?api=kmlogon&app=1001";

var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();

dynamic json = JsonConvert.DeserializeObject(result);

if (json.code == 200)
{
    Console.WriteLine($"登录成功,VIP到期:{json.data.vip}");
}
else
{
    Console.WriteLine($"登录失败:{json.msg}");
}

POST 卡密解绑

解除卡密与设备的绑定关系,需要消耗一定的解绑次数或时长。

请求参数
参数名 类型 必填 说明
kami string 必填 要解绑的卡密
markcode string 必填 当前绑定的机器码
🚨 注意事项

• 解绑会消耗时长或次数
• 解绑有次数和时间间隔限制
• 免费应用禁止解绑操作

GET 获取应用公告

获取应用的最新公告信息。

请求地址
GET https://api.didichou.site/api.php?api=notice&app={APP_ID}
代码示例
JavaScript 示例
fetch('https://api.didichou.site/api.php?api=notice&app=1001')
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            document.getElementById('notice').innerHTML = data.data.app_gg;
        } else {
            console.error('获取公告失败:', data.msg);
        }
    });

GET 获取文件列表

获取应用下的文件下载链接,支持蓝奏云等外链自动解析。

请求地址
GET https://api.didichou.site/api.php?api=getfile&app={APP_ID}&id={FILE_ID}
💡 功能特色

系统支持蓝奏云链接自动解析,会自动处理提取码,返回真实下载地址。

GET 获取应用配置

获取应用的基础配置信息,包括版本号、更新信息、接口调用统计等。

请求地址
GET https://api.didichou.site/api.php?api=ini&app={APP_ID}
响应数据
字段名 类型 说明
version string 应用当前版本号
version_info string 版本更新说明
app_update_show string 更新内容展示
app_update_url string 软件更新下载地址
app_update_must string 是否强制更新 (y/n)
api_total integer 接口调用总次数
代码示例
Python 示例
import requests

url = 'https://api.didichou.site/api.php?api=ini&app=1001'
response = requests.get(url)
result = response.json()

if result['code'] == 200:
    config = result['data']
    print(f"当前版本: {config['version']}")
    print(f"更新说明: {config['version_info']}")
    print(f"是否强制更新: {config['app_update_must']}")
    print(f"下载地址: {config['app_update_url']}")
    print(f"调用次数: {config['api_total']}")
else:
    print(f"获取配置失败: {result['msg']}")
响应示例
获取成功 (200)
{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "version": "2.1.0",
    "version_info": "修复已知问题,优化性能",
    "app_update_show": "新增功能:支持批量操作\n修复BUG:解决登录异常问题",
    "app_update_url": "https://example.com/update.exe",
    "app_update_must": "n",
    "api_total": 15680
  },
  "time": 1672531200
}

GET 版本控制与更新检查

检查软件版本更新,支持强制更新和自动下载功能。通过ini接口获取版本信息后进行版本比对。

更新检查流程
版本检查逻辑
// 1. 获取服务器版本信息
GET /api.php?api=ini&app={APP_ID}

// 2. 比对版本号
local_version = "2.0.0"
server_version = response.data.version

if (server_version > local_version) {
    // 3. 检查是否强制更新
    if (response.data.app_update_must == "y") {
        // 强制更新,阻止程序运行
        force_update(response.data.app_update_url);
    } else {
        // 可选更新,询问用户
        optional_update(response.data.app_update_url);
    }
}
更新类型说明
更新类型 触发条件 用户体验
强制更新 app_update_must = "y" 必须更新才能使用
可选更新 app_update_must = "n" 用户可选择跳过
静默更新 后台自动下载 下载完成后提示重启
⚠️ 更新建议

• 强制更新应谨慎使用,避免影响用户体验
• 建议在程序启动时检查更新
• 支持蓝奏云链接自动解析下载

C# 完整示例
C# 版本检查示例
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class UpdateChecker
{
    private readonly string apiUrl = "https://api.didichou.site/api.php";
    private readonly int appId = 1001;
    private readonly string currentVersion = "2.0.0";
    
    public async Task<bool> CheckUpdate()
    {
        try
        {
            using var client = new HttpClient();
            var url = $"{apiUrl}?api=ini&app={appId}";
            var response = await client.GetStringAsync(url);
            dynamic result = JsonConvert.DeserializeObject(response);
            
            if (result.code == 200)
            {
                string serverVersion = result.data.version;
                string updateUrl = result.data.app_update_url;
                bool mustUpdate = result.data.app_update_must == "y";
                string updateInfo = result.data.app_update_show;
                
                if (CompareVersion(serverVersion, currentVersion) > 0)
                {
                    return HandleUpdate(updateUrl, updateInfo, mustUpdate);
                }
            }
            
            return false;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"检查更新失败: {ex.Message}");
            return false;
        }
    }
    
    private int CompareVersion(string v1, string v2)
    {
        var version1 = new Version(v1);
        var version2 = new Version(v2);
        return version1.CompareTo(version2);
    }
    
    private bool HandleUpdate(string url, string info, bool mustUpdate)
    {
        if (mustUpdate)
        {
            // 强制更新逻辑
            MessageBox.Show($"检测到新版本,必须更新才能继续使用\n\n{info}");
            DownloadUpdate(url);
            return true;
        }
        else
        {
            // 可选更新
            var result = MessageBox.Show($"检测到新版本,是否立即更新?\n\n{info}", 
                                       "版本更新", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                DownloadUpdate(url);
                return true;
            }
        }
        
        return false;
    }
    
    private void DownloadUpdate(string url)
    {
        // 下载更新文件逻辑
        System.Diagnostics.Process.Start(url);
    }
}

GET 获取RC4密钥

获取应用的RC4加密密钥,用于数据加密传输。仅应用所有者可获取。

请求地址
GET https://api.didichou.site/api.php?api=getrc4&appid={APP_ID}&app={APP_ID}
请求参数
参数名 类型 必填 说明
appid integer 必填 目标应用ID
app integer 必填 请求方应用ID(必须为应用所有者)
🔐 安全警告

• RC4密钥极其重要,请妥善保管
• 仅应用所有者可获取密钥
• 请勿在客户端硬编码密钥

响应示例
获取成功 (200)
{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "rc4key": "MySecretRC4Key123456"
  },
  "time": 1672531200
}
权限不足 (200)
{
  "code": 200,
  "msg": "无法获取他人RC4Key",
  "time": 1672531200
}

POST 违规信息上报

当检测到用户存在抓包、破解等违规行为时,可通过此接口向应用所有者发送邮件警告。

请求地址
POST https://api.didichou.site/api.php?api=violationsinfo&app={APP_ID}
请求参数
参数名 类型 必填 说明
msg string 必填 违规详情描述
⚠️ 使用说明

• 此接口会发送邮件到应用所有者邮箱
• 请勿频繁调用,避免邮件轰炸
• 建议只在确认违规时调用

代码示例
检测异常时上报
// 检测到抓包工具时上报
if (detectPacketCapture()) {
    $data = [
        'msg' => '检测到用户使用Fiddler等抓包工具,IP:' . $_SERVER['REMOTE_ADDR']
    ];
    
    $url = 'https://api.didichou.site/api.php?api=violationsinfo&app=1001';
    http_post($url, $data);
}

GET 获取SDK示例代码

获取各种编程语言的对接示例代码包,包含完整的集成代码和配置文件。

请求地址
GET https://api.didichou.site/api.php?api=automaticsample&app={APP_ID}&type={TYPE}
请求参数
参数名 类型 必填 说明
type string 必填 示例类型:andlua1, andlua2,易语言等
支持的示例类型
类型值 说明 包含文件
andlua1 AndLua 示例(版本1) main.lua, cg5.aly等
andlua2 AndLua 示例(版本2) 完整项目文件
易语言 易语言对接示例 源码文件和模块
💡 功能特色

• 示例代码会自动填入您的应用配置信息
• 包含完整的错误处理和加密逻辑
• 支持一键下载ZIP压缩包
• 代码经过实际项目验证

响应说明

成功时返回ZIP文件下载,失败时返回JSON错误信息。

POST 获取用户应用列表

用户登录后获取其拥有的应用列表,用于管理多个应用的场景。

请求地址
POST https://api.didichou.site/api.php?api=logongetapp&app={APP_ID}
请求参数
参数名 类型 必填 说明
user string 必填 用户名
pass string 必填 用户密码
响应数据
字段名 类型 说明
name string 应用名称
id integer 应用ID
appkey string 应用密钥
switch string 应用状态 (y/n)
代码示例
获取应用列表
$data = [
    'user' => 'myusername',
    'pass' => 'mypassword'
];

$url = 'https://api.didichou.site/api.php?api=logongetapp&app=1001';
$result = http_post($url, $data);
$response = json_decode($result, true);

if ($response['code'] == 200) {
    foreach ($response['data'] as $app) {
        echo "应用:{$app['name']} (ID: {$app['id']})\n";
        echo "状态:" . ($app['switch'] == 'y' ? '正常' : '关闭') . "\n";
    }
}
响应示例
获取成功 (200)
{
  "code": 200,
  "msg": "获取成功",
  "data": [
    {
      "name": "测试应用1",
      "id": 1001,
      "appkey": "abc123def456",
      "switch": "y"
    },
    {
      "name": "测试应用2", 
      "id": 1002,
      "appkey": "xyz789uvw012",
      "switch": "n"
    }
  ],
  "time": 1672531200
}

POST 易验证兼容接口

提供与易验证系统兼容的卡密登录接口,方便从易验证迁移的用户。

请求地址
POST https://api.didichou.site/api.php?api=yyzkmdenglu&app={APP_ID}
⚠️ 兼容说明

• 此接口为易验证迁移用户提供
• 返回格式与易验证保持一致
• 建议新项目使用标准卡密登录接口
• 部分高级功能可能不支持

响应格式

返回易验证格式的数据,包含中文字段名:

易验证格式响应
{
  "登录验证": "成功",
  "卡密ID": 42,
  "创建时间": "2024-01-01 12:00",
  "到期时间": "2024-01-02 12:00", 
  "卡密类型": "天卡",
  "卡密价值": "一天",
  "识别码": "a1b2c3d4e5f6..."
}

常见错误代码

以下是API可能返回的常见错误代码及其含义。

错误码 含义 解决方案
100 应用配置未加载 检查APP ID是否正确
110 请输入账号 添加user参数
111 请输入密码 添加password参数
113 账号密码不正确 检查用户名密码
115 账号已存在 使用其他用户名
149 卡密不存在 检查卡密是否正确
150 卡密已被使用 卡密已绑定其他设备
200 操作成功 -
201 操作失败 查看具体错误信息

多语言SDK示例

我们为常用编程语言提供了完整的SDK示例代码。

易语言 SDK

易语言示例
.版本 2

.程序集 星河API类
.程序集变量 API地址, 文本型, , , "https://api.didichou.site/api.php"
.程序集变量 应用ID, 整数型

.子程序 _初始化, , 公开, 
.参数 appid, 整数型
应用ID = appid

.子程序 用户登录, 文本型, 公开, 
.参数 用户名, 文本型
.参数 密码, 文本型
.局部变量 参数, 文本型
.局部变量 返回值, 文本型

参数 = "user=" + 用户名 + "&password=" + 密码
返回值 = 网页_访问S (API地址 + "?api=userlogon&app=" + 到文本 (应用ID), 1, 参数, , , , )
返回 (返回值)

.子程序 卡密登录, 文本型, 公开, 
.参数 卡密, 文本型
.参数 机器码, 文本型
.局部变量 参数, 文本型
.局部变量 返回值, 文本型

参数 = "kami=" + 卡密 + "&markcode=" + 机器码
返回值 = 网页_访问S (API地址 + "?api=kmlogon&app=" + 到文本 (应用ID), 1, 参数, , , , )
返回 (返回值)

Java SDK

Java示例
import java.io.*;
import java.net.*;
import java.util.*;

public class XingHeAPI {
    private String apiUrl = "https://api.didichou.site/api.php";
    private int appId;
    
    public XingHeAPI(int appId) {
        this.appId = appId;
    }
    
    // 用户登录
    public String userLogin(String user, String password) {
        Map<String, String> params = new HashMap<>();
        params.put("user", user);
        params.put("password", password);
        
        return post("userlogon", params);
    }
    
    // 卡密登录
    public String cardLogin(String kami, String markcode) {
        Map<String, String> params = new HashMap<>();
        params.put("kami", kami);
        params.put("markcode", markcode);
        
        return post("kmlogon", params);
    }
    
    private String post(String api, Map<String, String> params) {
        try {
            String url = String.format("%s?api=%s&app=%d", apiUrl, api, appId);
            // HTTP POST 实现...
            return "响应结果";
        } catch (Exception e) {
            return "错误: " + e.getMessage();
        }
    }
}
💡 技术支持

如遇到问题,可通过以下方式获取支持:
• 邮箱:sdwxgzh@126.com
• 官网:https://api.didichou.site
• 客服热线:13772895146