第 4 篇
开发
ESign(易能签) 接口集成与加密适配指南
本文档提供给开发者用于通过浏览器或第三方 App 唤起 ESign 执行自动化操作,并包含最新的软件源加密适配方案。
ESign(易能签) 接口集成协议
本文档提供给开发者用于通过 Web 浏览器或第三方 App 唤起 ESign 并执行自动化操作,包含最新的软件源加密适配方案。
1. 快速添加软件源
用户点击链接后将直接跳转至 ESign(易能签) 并添加指定的 App 软件源。
- 协议格式:
enq-app://source/[软件源URL] - 示例代码:
<a href="enq-app://source/https://ipa.yhios.cn/appstore">一键添加官方源</a>
2. 远程下载与安装 (兼容模式)
通过浏览器唤起 enq-app 访问特定网址。如果网址指向 .ipa 文件,enq-app 将自动触发下载任务。
- 协议格式:
enq-app://install/[资源URL] - 示例代码:
<a href="enq-app://install/https://example.com/test.ipa">使用 enq-app 下载并导入至资源库内</a>
3. 快速导入证书 (开发中)
支持通过 URL 参数一键导入 P12 证书及配套的描述文件。
- 协议格式:
enq-app://import-certificate?p12=[Base64]&mobileprovision=[Base64]&password=[Base64]
4. 软件源加密适配方案 (服务端)
为保护软件源数据不被恶意抓取,服务端需通过 User-Agent 识别 与 特定参数校验 来动态决定是否启用加密。
4.1 修改位置
文件路径:/application/index/controller/App.php
4.2 逻辑实现
在获取基础配置后,添加以下适配代码:
// 找到这一行
$opencry = Db::name('config')->where(['name'=>'opencry'])->value('value');
// --- 易能签加密适配逻辑开始 ---
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$browser_signatures = [
'Mozilla', 'Chrome', 'Safari', 'Firefox', 'Edge', 'Opera',
'MSIE', 'Trident', 'Gecko', 'WebKit', 'Presto', 'Blink',
'OPR', 'Maxthon', 'UCBrowser', 'QQBrowser', '360Browser',
'Brave', 'Vivaldi', 'SeaMonkey', 'Chromium'
];
$is_browser = false;
foreach($browser_signatures as $signature) {
if(strpos($user_agent, $signature) !== false) {
$is_browser = true;
break;
}
}
if($is_browser) {
// 场景:普通浏览器访问,强制开启加密混淆
$opencry = '1';
} elseif(isset($_GET['udid'])) {
// 场景:ESign 客户端通过带参数请求,关闭加密,返回明文数据供 App 解析
$opencry = '0';
}
5. 开发须知
环境要求:必须在 iOS 设备上通过 Safari 或其他浏览器打开,且设备需预装 易能签 ESign。
HTTPS 强制:出于安全性考虑,所有传入的 URL 资源及加密传输必须支持 HTTPS 协议。
系统支持:协议已适配 iOS 16 - iOS 26.x 各个版本。