kylin987 / jd-aces-php-sdk
京东 ACES 数据加密 PHP SDK
v1.0.7
2026-03-16 08:00 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- monolog/monolog: ^1.24 || ^2.0 || ^3.0
- netresearch/jsonmapper: ^1.6 || ^2.0 || ^3.0 || ^4.0
Requires (Dev)
- phpunit/phpunit: ^9.0 || ^10.0
README
京东 ACES 数据加密 PHP SDK - 标准 Composer 包版本
📦 安装
方式一:Composer 安装(推荐)
composer require kylin987/jd-aces-php-sdk
方式二:直接引用
git clone git@gitee.com:kylin987/jd-aces-php-sdk.git
cd jd-aces-php-sdk
composer install
🚀 快速开始
1. 基础使用
<?php require_once __DIR__ . '/vendor/autoload.php'; use JdSdk\JdClient; use JdSdk\request\JosVoucherInfoGetRequest; // 初始化客户端 $client = new JdClient(); $client->appKey = "YOUR_APP_KEY"; $client->appSecret = "YOUR_APP_SECRET"; $client->accessToken = "YOUR_ACCESS_TOKEN"; $client->serverUrl = "https://api.jd.com/routerjson"; // 创建请求 $req = new JosVoucherInfoGetRequest(); $req->putOtherTextParam("voucher_id", "123456"); // 执行请求 $resp = $client->execute($req, $client->accessToken); print_r($resp);
2. 数据加密/解密(TDE)
<?php require_once __DIR__ . '/vendor/autoload.php'; use ACES\TDEClient; // 初始化 TDE 客户端 $tdeClient = TDEClient::getInstance( $accessToken, $appKey, $appSecret, 'https://api.jd.com/routerjson' ); // 加密数据 $encrypted = $tdeClient->encrypt($sensitiveData); // 解密数据 $decrypted = $tdeClient->decrypt($encrypted);
3. 使用 Bootstrap(可选)
<?php require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/src/Bootstrap.php'; // 现在可以使用默认配置 use JdSdk\JdClient; $client = new JdClient(); // ...
⚙️ 配置说明
常量配置
在引入 SDK 前可定义以下常量:
// SDK 工作目录(存放日志、缓存) define("JD_SDK_WORK_DIR", "/path/to/your/workdir/"); // 开发模式(生产环境设为 false 提高性能) define("JD_SDK_DEV_MODE", false); // 日志级别 define("LOGLEVEL", \Monolog\Logger::INFO); // 日志文件路径 define("LOGCONSOLE", "/path/to/your/tde.log");
JdClient 配置
| 参数 | 说明 | 默认值 |
|---|---|---|
serverUrl |
API 网关地址 | https://api.jd.com/routerjson |
appKey |
应用 AppKey | 必填 |
appSecret |
应用 AppSecret | 必填 |
accessToken |
用户访问令牌 | 选填 |
connectTimeout |
连接超时 (秒) | 0 (不限制) |
readTimeout |
读取超时 (秒) | 0 (不限制) |
version |
API 版本 | 2.0 |
format |
返回格式 | json |
📁 目录结构
jd-aces-php-sdk/
├── src/
│ └── Bootstrap.php # 引导文件(可选)
├── security/ # 加密安全模块 (ACES 命名空间)
│ ├── TDEClient.php # 加密/解密主入口
│ ├── Core/ # 核心组件
│ └── Common/ # 通用组件
├── jd/ # JD API 客户端 (JdSdk 命名空间)
│ ├── JdClient.php # API 客户端
│ └── request/ # API 请求类
├── lotusphp_runtime/ # LotusPHP 框架运行时
├── composer.json
└── JdSdk.php # SDK 入口文件
🔧 开发模式
运行测试
composer test
代码规范
composer check-style composer fix-style
📝 注意事项
- PHP 版本: 要求 PHP >= 7.4
- 必需扩展: curl, json
- 推荐缓存: APCu 或 Yac(用于 TDE 密钥缓存)
- 生产环境: 建议将
JD_SDK_DEV_MODE设为false - 日志权限: 确保日志目录可写
🐛 常见问题
1. 缓存扩展未启用
RuntimeException: neither yac nor apcu enable
解决: 安装并启用 APCu 或 Yac 扩展
# APCu pecl install apcu # 或 Yac pecl install yac
2. 日志目录无权限
chmod -R 755 /path/to/workdir/
📄 License
MIT License
🔗 相关链接
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request