PHPackages                             westng/doudian-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. westng/doudian-sdk

ActiveLibrary[API Development](/categories/api)

westng/doudian-sdk
==================

抖店（抖音电商）开放平台 PHP SDK，支持710+个API接口，支持 Swoole 协程环境

2.1.5(1mo ago)38461MITPHPPHP &gt;=7.2.0

Since Oct 15Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/westng/doudian-sdk)[ Packagist](https://packagist.org/packages/westng/doudian-sdk)[ Docs](https://github.com/westng/doudian-sdk-php)[ RSS](/packages/westng-doudian-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (10)Versions (20)Used By (0)

抖店 SDK
======

[](#抖店-sdk)

[![PHP Version](https://camo.githubusercontent.com/cd59ba2b0fddd0cb8a2521a4879d8e1f669d27280c478976a54f08dc3bc59db1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e322d626c75652e737667)](https://php.net)[![License](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](LICENSE)[![Tests](https://camo.githubusercontent.com/3ab4882a1b7d64e5eb5168ad0b0b9cdfd53f59f114ee5f727958504214a5789c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74657374732d70617373696e672d627269676874677265656e2e737667)](#%E6%B5%8B%E8%AF%95)[![Coverage](https://camo.githubusercontent.com/54f289b2ddd55455978d6836000be75be44c04f9c524b01c1cab5df4970d3abb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d38352532352d677265656e2e737667)](#%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87)[![Swoole](https://camo.githubusercontent.com/2990af6ac04c59aeee5aa4f5b6152c0a6d9e561c78f4c6b4a23b6027c03a4672/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73776f6f6c652d737570706f727465642d6f72616e67652e737667)](#swoole-%E5%8D%8F%E7%A8%8B%E6%94%AF%E6%8C%81)

抖店（抖音电商）开放平台 PHP SDK，支持 710+ 个 API 接口，**原生支持 Swoole 协程环境和连接池**。

✨ 特性
----

[](#-特性)

- 🚀 **完整的 API 覆盖**: 支持 710+ 个抖店开放平台接口
- 🔒 **安全的签名机制**: 内置 HMAC-SHA256 签名算法
- ⚡ **高性能**: 基于 GuzzleHttp 实现，支持并发请求
- 🌊 **Swoole 协程支持**: 原生支持 Swoole 协程环境，Worker 级别连接池
- 🔗 **连接池**: HTTP 连接复用，避免 "Too many open files" 问题
- 🛡️ **异常处理**: 完善的错误处理和重试机制
- 📦 **易于使用**: 简洁的 API 设计，支持链式调用
- 🧪 **测试覆盖**: 85% 测试覆盖率，核心功能全面验证
- 🔧 **配置灵活**: 支持超时、重试、调试、连接池等多种配置
- 🔄 **令牌管理**: 自动令牌刷新和缓存机制

安装
--

[](#安装)

```
composer require westng/doudian-sdk
```

### Swoole 环境（可选）

[](#swoole-环境可选)

如果在 Swoole 协程环境下使用，推荐安装协程 HTTP 客户端：

```
# 推荐：安装 hyperf/guzzle 获得最佳连接池支持
composer require hyperf/guzzle
```

🏗️ SDK架构说明
----------

[](#️-sdk架构说明)

本SDK采用分层架构设计，遵循单一职责原则：

```
┌─────────────────────────────────────────┐
│              DouDianSdk                 │  ← 门面层：简化API调用
├─────────────────────────────────────────┤
│           DouDianOpClient               │  ← 业务层：处理API请求
├─────────────────────────────────────────┤
│         HttpClientFactory               │  ← 工厂层：环境自适应
├──────────────────┬──────────────────────┤
│   HttpClient     │   SwooleHttpClient   │  ← 传输层：HTTP通信
│   (FPM环境)      │   + ConnectionPool   │
│                  │   (Swoole协程环境)    │
├──────────────────┴──────────────────────┤
│      GlobalConfig/DouDianOpConfig       │  ← 配置层：统一配置管理
└─────────────────────────────────────────┘

```

### 核心组件

[](#核心组件)

- **DouDianSdk** - 门面类，提供简化的API调用接口
- **DouDianOpClient** - 操作客户端，负责处理API请求和签名
- **HttpClientFactory** - HTTP客户端工厂，自动检测环境选择合适的客户端
- **ConnectionPool** - Worker 级别共享的连接池，避免连接泄漏
- **HttpClient** - 标准HTTP客户端，适用于 PHP-FPM 环境
- **SwooleHttpClient** - 协程安全HTTP客户端，使用共享连接池
- **GlobalConfig/DouDianOpConfig** - 配置管理
- **AccessTokenBuilder** - 令牌构建器，支持授权码和店铺ID两种模式

🚀 快速开始
------

[](#-快速开始)

### 1. 基础用法（推荐）

[](#1-基础用法推荐)

SDK 作为 Composer 包使用时，推荐由业务项目自行封装初始化逻辑。
本 SDK 不依赖 `.env` 作为运行时配置来源，也不假设系统里只存在单一应用配置。

```
