配置已保存

天城智控 OpenAPI 测试工具

完整的 API 测试工具和 SDK 示例代码

# SDK 示例 本文档提供多种编程语言的完整 SDK 客户端实现示例。 ## 可用 SDK ### Python 客户端 查看完整的 Python SDK 实现和使用示例: **[查看 Python SDK →](/sdk/python)** ### Go 客户端 查看完整的 Go SDK 实现和使用示例: **[查看 Go SDK →](/sdk/go)** ### Node.js 客户端 查看完整的 Node.js SDK 实现和使用示例: **[查看 Node.js SDK →](/sdk/nodejs)** ### PHP 客户端 查看完整的 PHP SDK 实现和使用示例: **[查看 PHP SDK →](/sdk/php)** ### Java 客户端 查看完整的 Java SDK 实现和使用示例: **[查看 Java SDK →](/sdk/java)** ## 快速开始 ### 1. 初始化客户端 ```python # Python client = WLWOpenAPIClient( base_url="https://api.example.com", access_key="ak_xxxxxxxxxx", secret_key="sk_xxxxxxxxxx" ) ``` ```go // Go client := NewWLWOpenAPIClient( "https://api.example.com", "ak_xxxxxxxxxx", "sk_xxxxxxxxxx" ) ``` ```javascript // Node.js const client = new WLWOpenAPIClient( 'https://api.example.com', 'ak_xxxxxxxxxx', 'sk_xxxxxxxxxx' ); ``` ```php // PHP $client = new WLWOpenAPIClient( 'https://api.example.com', 'ak_xxxxxxxxxx', 'sk_xxxxxxxxxx' ); ``` ```java // Java WLWOpenAPIClient client = new WLWOpenAPIClient( "https://api.example.com", "ak_xxxxxxxxxx", "sk_xxxxxxxxxx" ); ``` ### 2. 调用接口 ```python # Python try: card_info = client.get_card_info("CARD123456789") print(f"余额: {card_info['balance']}") except APIError as e: print(f"错误: {e.message}") ``` ```go // Go cardInfo, err := client.GetCardInfo("CARD123456789") if err != nil { log.Printf("错误: %v", err) } else { fmt.Printf("余额: %.2f\n", cardInfo.Balance) } ``` ```javascript // Node.js try { const cardInfo = await client.getCardInfo('CARD123456789'); console.log(`余额: ${cardInfo.balance}`); } catch (error) { console.error(`错误: ${error.message}`); } ``` ```php // PHP try { $cardInfo = $client->getCardInfo('CARD123456789'); echo "余额: " . $cardInfo['balance']; } catch (APIError $e) { echo "错误: " . $e->getMessage(); } ``` ```java // Java try { CardInfo cardInfo = client.getCardInfo("CARD123456789"); System.out.println("余额: " + cardInfo.getBalance()); } catch (APIError e) { System.err.println("错误: " + e.getMessage()); } ``` ## 主要功能 所有 SDK 都提供以下核心功能: ### 基础功能 - ✅ HMAC-SHA256 签名生成 - ✅ 自动参数排序和签名 - ✅ 请求/响应处理 - ✅ 错误处理和异常封装 ### 接口方法 - `heartbeat()` - 心跳检测 - `getCardInfo(cardNo)` - 查询卡板信息 - `restartCard(cardNo)` - 卡板复机 - `stopCard(cardNo)` - 卡板停机 - `orderPackage(cardNo, packageId, strategy)` - 套餐订购 ## 错误处理 所有 SDK 都实现了统一的错误处理机制: | 错误类型 | 错误码 | 说明 | |---------|--------|------| | 认证失败 | `InvalidSignature`、`InvalidTimestamp`、`InvalidAccessKey` | 检查签名、时间戳和密钥 | | 权限不足 | `PermissionDenied`、`Forbidden` | 联系管理员配置权限 | | 频率限制 | `RateLimited` | 降低请求频率或实现重试 | | 业务错误 | 其他错误码 | 查看错误消息详情 | ## 最佳实践 1. **密钥管理** - 使用环境变量存储密钥 - 不要在代码中硬编码密钥 - 定期轮换密钥 2. **错误处理** - 捕获并处理所有异常 - 实现重试逻辑(指数退避) - 记录详细的错误日志 3. **性能优化** - 复用客户端实例 - 设置合理的超时时间 - 实现连接池(适用于高并发场景) 4. **监控告警** - 监控 API 调用成功率 - 监控响应时间 - 设置异常告警 ## 更多资源 - [认证机制](2.认证机制.md) - 了解签名算法详情 - [接口详情](3.接口详情.md) - 查看所有 API 接口文档 - [常见问题](7.常见问题.md) - 问题排查和解决方案