kylin987/jd-aces-php-sdk

京东 ACES 数据加密 PHP SDK

Maintainers

Package info

github.com/kylin987/jd-aces-php-sdk

pkg:composer/kylin987/jd-aces-php-sdk

Statistics

Installs: 23

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.7 2026-03-16 08:00 UTC

This package is auto-updated.

Last update: 2026-03-16 08:01:36 UTC


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

📝 注意事项

  1. PHP 版本: 要求 PHP >= 7.4
  2. 必需扩展: curl, json
  3. 推荐缓存: APCu 或 Yac(用于 TDE 密钥缓存)
  4. 生产环境: 建议将 JD_SDK_DEV_MODE 设为 false
  5. 日志权限: 确保日志目录可写

🐛 常见问题

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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request