抖店(抖音电商)开放平台 PHP SDK,支持 710+ 个 API 接口。
- 🚀 完整的 API 覆盖: 支持 710+个抖店开放平台接口
- 🔒 安全的签名机制: 内置 HMAC-SHA256 签名算法
- ⚡ 高性能: 基于 GuzzleHttp 实现
- 🛡️ 异常处理: 完善的错误处理机制
- 📦 易于使用: 简洁的 API 设计
composer require westng/doudian-sdk<?php
use DouDianSdk\Core\Client\DouDianSdk;
// 初始化SDK
$sdk = new DouDianSdk('your_app_key', 'your_app_secret');
// 获取访问令牌
$accessToken = $sdk->getAccessToken('your_shop_id', ACCESS_TOKEN_SHOP_ID);
// 调用API
$result = $sdk->callApi(
'afterSale_List\AfterSaleListRequest',
'afterSale_List\param\AfterSaleListParam',
[
'page' => 1,
'size' => 20,
'start_time' => '2024-01-01 00:00:00',
'end_time' => '2024-01-31 23:59:59'
],
$accessToken
);
print_r($result);<?php
use DouDianSdk\Core\Client\DouDianSdk;
use DouDianSdk\Core\Logger\FileLogger;
// 创建SDK实例
$sdk = new DouDianSdk();
// 设置应用凭证
$sdk->setCredentials('your_app_key', 'your_app_secret');
// 启用调试模式和日志记录
$sdk->setDebug(true)
->setLogger(new FileLogger('/path/to/logs/sdk.log'));
// 设置HTTP客户端配置
$sdk->setHttpConfig([
'timeout' => 30,
'connect_timeout' => 10,
'retry' => 3,
'retry_delay' => 1000
]);
// 获取访问令牌
$accessToken = $sdk->getAccessToken('your_shop_id', ACCESS_TOKEN_SHOP_ID);
// 调用API
$result = $sdk->callApi(
'order_orderDetail\OrderOrderDetailRequest',
'order_orderDetail\param\OrderOrderDetailParam',
['order_id' => '123456789'],
$accessToken
);<?php
use DouDianSdk\Core\Token\AccessTokenBuilder;
use DouDianSdk\Core\Token\ACCESS_TOKEN_CODE;
use DouDianSdk\Core\Token\ACCESS_TOKEN_SHOP_ID;
// 通过店铺ID获取访问令牌
$accessToken = AccessTokenBuilder::build('your_shop_id', ACCESS_TOKEN_SHOP_ID);
// 通过授权码获取访问令牌
$accessToken = AccessTokenBuilder::build('authorization_code', ACCESS_TOKEN_CODE);
// 检查令牌是否有效
if ($accessToken->isSuccess()) {
echo "Token: " . $accessToken->getAccessToken();
echo "有效期: " . $accessToken->getExpireIn() . " 秒";
} else {
echo "获取令牌失败: " . $accessToken->getErrMsg();
}<?php
use DouDianSdk\Core\Exception\DouDianException;
use DouDianSdk\Core\Exception\ApiException;
use DouDianSdk\Core\Exception\HttpException;
try {
$result = $sdk->callApi($apiClass, $paramClass, $params, $accessToken);
if ($result['code'] === 0) {
// 成功处理
$data = $result['data'];
} else {
// API 返回错误
echo "API 错误: " . $result['msg'];
}
} catch (HttpException $e) {
// HTTP 请求错误
echo "HTTP 错误: " . $e->getMessage();
} catch (ApiException $e) {
// API 调用错误
echo "API 错误: " . $e->getMessage();
} catch (DouDianException $e) {
// 其他 SDK 错误
echo "SDK 错误: " . $e->getMessage();
}// 获取订单详情
$result = $sdk->callApi(
'order_orderDetail\OrderOrderDetailRequest',
'order_orderDetail\param\OrderOrderDetailParam',
['order_id' => '123456789'],
$accessToken
);
// 查询订单列表
$result = $sdk->callApi(
'order_searchList\OrderSearchListRequest',
'order_searchList\param\OrderSearchListParam',
[
'page' => 1,
'size' => 20,
'start_time' => '2024-01-01 00:00:00',
'end_time' => '2024-01-31 23:59:59'
],
$accessToken
);// 获取商品详情
$result = $sdk->callApi(
'product_detail\ProductDetailRequest',
'product_detail\param\ProductDetailParam',
['product_id' => '123456789'],
$accessToken
);
// 查询商品列表
$result = $sdk->callApi(
'product_listV2\ProductListV2Request',
'product_listV2\param\ProductListV2Param',
[
'page' => 1,
'size' => 20,
'status' => 1
],
$accessToken
);// 获取售后列表
$result = $sdk->callApi(
'afterSale_List\AfterSaleListRequest',
'afterSale_List\param\AfterSaleListParam',
[
'page' => 1,
'size' => 20,
'start_time' => '2024-01-01 00:00:00',
'end_time' => '2024-01-31 23:59:59'
],
$accessToken
);<?php
use DouDianSdk\Core\Token\AccessTokenBuilder;
use DouDianSdk\Core\Config\GlobalConfig;
// 初始化配置
$globalConfig = GlobalConfig::getGlobalConfig();
$globalConfig->appKey = 'your_app_key';
$globalConfig->appSecret = 'your_app_secret';
// 获取访问令牌
$accessToken = AccessTokenBuilder::build('your_shop_id', ACCESS_TOKEN_SHOP_ID);
// 调用API(使用传统方式)
$request = new \DouDianSdk\Api\afterSale_List\AfterSaleListRequest();
$param = new \DouDianSdk\Api\afterSale_List\param\AfterSaleListParam();
$param->page = 1;
$param->size = 20;
$result = $request->request($param, $accessToken);src/
├── Api/ # API 接口类 (710+ 个接口)
├── Core/ # 核心功能模块
│ ├── Client/ # 客户端相关类
│ ├── Config/ # 配置管理类
│ ├── Token/ # 访问令牌管理
│ ├── Response/ # 响应处理
│ ├── Exception/ # 异常处理
│ ├── Http/ # HTTP 客户端
│ ├── Logger/ # 日志记录
│ └── Validator/ # 参数验证
└── Utils/ # 工具类
composer install --devcomposer testcomposer cs-fixer-check
composer cs-fixer-fixcomposer phpstan- 订单管理: 订单查询、物流管理、售后服务等
- 商品管理: 商品发布、库存管理、价格设置等
- 店铺管理: 店铺信息、资质管理等
- 营销工具: 优惠券、满减活动等
- 数据统计: 销售数据、流量分析等
- 更多模块: 查看
src/Api/目录了解完整列表
- 🗂️ 目录结构优化: 重新组织 Core 目录结构,按功能模块分类
- 🔧 命名空间重构: 更新所有相关类的命名空间,提高代码组织性
- 📚 文档更新: 更新 README 文档以反映新的目录结构
- 🧹 清理冗余文件: 删除不必要的开发脚本文件
- 🎨 新增 PHP CS Fixer 支持: 提供更强大的代码风格检查和自动修复功能
- 🧹 代码结构优化: 删除冗余的 SPI 相关类,统一响应处理
- 🔧 统一单例模式: 使用 SingletonTrait 统一所有单例类的实现
- ✨ 新增完整的异常处理体系
- ✨ 新增自动重试机制
- ✨ 新增完善的日志记录功能
- 🔄 重构 HTTP 客户端: 使用 GuzzleHttp 替代 cURL
- ✨ 新增便捷的 SDK 入口类
- 🧪 新增完整的测试套件
- 🎉 初始版本发布
- 📦 支持 710+ 个抖店开放平台 API
- 🔒 完整的签名和认证机制
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
欢迎提交 Issue 和 Pull Request 来改进这个项目。
- 项目地址: https://github.com/westng/doudian-sdk
- 问题反馈: Issues
- 邮箱: [email protected]