平台接入指南
任何平台接入 壹证通 后,其用户即可一号通行全平台
一、接入流程(管理员操作)
| 步骤 | 说明 |
|---|---|
| 1 | 管理员在 后台 → 应用管理 添加平台,获得 app_id 与 app_key(key 请妥善保管,仅平台服务端使用) |
| 2 | 平台按下方方式对接 注册/登录 API 或 SSO 跳转(推荐两者都接) |
| 3 | 平台将 SSO 入口 挂到自己的「登录」按钮上,即完成打通 |
二、SSO 一键登录(推荐,体验最好)
平台「登录」按钮指向:
https://uc.3707.wang/sso.php?app_id=你的app_id&back=urlencode(你的回跳地址)
中心确认身份后回跳:back?ticket=...&uid=...&ts=...&sign=...。平台服务端可直接用本地算法校验 sign,也可回中心换令牌:
// 回调签名算法(无需再请求中心): sign = sha256( app_key + "|" + ticket + "|" + uid + "|" + ts ) // 或服务端核验票据(一次性,同时获得 7 天有效 token): POST https://uc.3707.wang/api.php {"action":"ticket.verify","app_id":"...","ts":1710000000,"sign":"...","ticket":"..."}
安全要求:回跳地址必须 https,且在后台为该平台配置的「回跳白名单」前缀内。
三、开放 API(平台服务端调用)
接口地址 POST https://uc.3707.wang/api.php(JSON)。签名算法:
data = 请求字段去掉 action/ts/sign,按 key 排序(ksort) sign = sha256( app_id + "|" + app_key + "|" + ts + "|" + md5(json_encode(data, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES)) )
| action | 参数 | 说明 |
|---|---|---|
user.register | username, password, email?, phone?, nickname? | 注册并绑定该平台;用户名已存在返回 user_exists |
user.login | username, password | 登录校验,通过自动绑定该平台并返回 token |
ticket.verify | ticket | SSO 票据核验(一次性),返回用户信息 + token |
token.verify | token | 校验 7 天令牌,返回用户信息 |
user.info | uid / username / token | 查用户资料(限已绑定本平台的用户) |
user.changepwd | username, old_password, new_password | 改密,全平台同步生效 |
syn.logout | token | 销毁平台令牌(同步登出) |
/synlogin.php | app_id, uid, ts, sign=sha256(app_key|uid|ts) | 同步登录广播(GET):平台密码登录成功后嵌入脚本,写入中心免登 Cookie,其它平台 SSO 免密通行。SDK:echo uc_synlogin_script($uid); |
app.ping | — | 连通性检测 |
返回统一为 {"ok":true,...} 或 {"ok":false,"error":"原因","code":"错误码"}。时间戳 ts 与服务器相差不得超过 300 秒。
四、PHP 平台快速接入(SDK)
下载 SDK:/sdk/uc_client.php.txt(另存为 uc_client.php 放入你的平台),三行完成打通:
require 'uc_client.php';
uc_init('https://uc.3707.wang', '你的app_id', '你的app_key');
// 平台登录按钮:
<a href="<?= uc_sso_url('https://你的平台/sso.php') ?>">登录</a>
// 回跳页(sso.php)开头处理票据 → 建立本地会话:
if (uc_handle_sso($uid, $username)) { $_SESSION['uid']=$uid; header('Location: /'); exit; }
// 平台内注册(可选,走中心统一建档):
$r = uc_register($_POST['username'], $_POST['password']);
五、其它语言平台
按「三」中的签名算法实现即可(Java / Python / Node / Go 均可),核心只有一次 HTTPS POST。接入咨询请联系 壹证通 管理员。