开发者 API v1
通过 API 自动化浏览商品、使用钱包余额下单、获取数字商品卡密。
接口基础地址:https://myapicazi.zh.pro/api/v1
身份认证
所有接口通过 X-API-Key 请求头认证。在上方输入你的密钥即可在线测试。
X-API-Key: pxk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
密钥格式
密钥以 pxk_ 为前缀,后接 40 位随机字符。完整密钥仅在创建时显示一次,服务端仅存储 SHA-256 哈希值。
权限范围
| 权限 | 说明 |
|---|---|
products:read | 浏览分类和商品 |
orders:read | 查看订单和发货状态 |
orders:write | 创建新订单 |
wallet:read | 查看钱包余额和交易记录 |
webhooks:read | 查看已注册的 Webhook |
webhooks:write | 注册/删除/测试 Webhook |
频率限制
默认 60 次/分钟(可自定义 10~120)。每次响应包含:
| 请求头 | 说明 |
|---|---|
X-RateLimit-Limit | 最大请求数 |
X-RateLimit-Remaining | 剩余请求数 |
X-RateLimit-Reset | 窗口重置时间戳 |
Retry-After | 重试等待秒数(仅 429) |
错误处理
{ "error": { "code": "错误码", "message": "描述" } }
| 状态码 | 错误码 | 说明 |
|---|---|---|
| 401 | INVALID_API_KEY | 密钥无效/过期/已删除 |
| 402 | INSUFFICIENT_BALANCE | 余额不足 |
| 403 | INSUFFICIENT_PERMISSIONS | 缺少权限 |
| 404 | NOT_FOUND | 资源不存在 |
| 422 | VALIDATION_ERROR | 参数校验失败 |
| 429 | RATE_LIMIT_EXCEEDED | 请求过于频繁 |
密钥管理
密钥管理使用登录态(Sanctum)认证。您可以在网站「个人中心 → API 密钥」页面管理。
创建密钥
POST
/api/v1/auth/keys
auth:sanctum
密钥列表
GET
/api/v1/auth/keys
auth:sanctum
删除密钥
DELETE
/api/v1/auth/keys/{id}
auth:sanctum
钱包
查询余额
GET
/api/v1/wallet/balance
wallet:read
无需额外参数
返回示例:
{ "available_currency": 128.50, "available_points": 12850, "point_rate": 100 }
交易记录
GET
/api/v1/wallet/transactions
wallet:read
分类
分类列表
GET
/api/v1/categories
products:read
分类详情
GET
/api/v1/categories/{id}
products:read
商品
商品列表
GET
/api/v1/products
products:read
商品详情
GET
/api/v1/products/{id}
products:read
批量库存查询
GET
/api/v1/products/stock?ids=1,2,3
products:read
订单
创建订单
POST
/api/v1/orders
orders:write
原子操作:验证库存 → 扣除钱包余额 → 自动发货。仅支持钱包支付。会实际扣款,请谨慎操作!
注意:此操作会真实扣款和发货!
订单列表
GET
/api/v1/orders
orders:read
订单详情
GET
/api/v1/orders/{tracking_number}
orders:read
发货
发货状态
GET
/api/v1/orders/{tracking}/delivery
orders:read
提取卡密
GET
/api/v1/orders/{tracking}/items/{item_id}/codes
orders:read
Webhooks(回调通知)
注册 Webhook
POST
/api/v1/webhooks
webhooks:write
支持的事件
| 事件 | 说明 |
|---|---|
order.completed | 订单发货完成 |
order.delivering | 部分商品待发货 |
order.failed | 订单失败 |
* | 所有事件 |
Webhook 列表
GET
/api/v1/webhooks
webhooks:read
删除 Webhook
DELETE
/api/v1/webhooks/{id}
webhooks:write
发送测试事件
POST
/api/v1/webhooks/{id}/test
webhooks:write
签名验证
每次回调包含 X-Pixer-Signature 请求头:
X-Pixer-Signature: sha256=<HMAC-SHA256(请求体, secret)>
// PHP
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $signature)) abort(403);
# Python
import hmac, hashlib
expected = 'sha256=' + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(expected, header)
代码示例
cURL
# 查询余额
curl -H "X-API-Key: pxk_你的密钥" \
https://myapicazi.zh.pro/api/v1/wallet/balance
# 浏览商品
curl -H "X-API-Key: pxk_你的密钥" \
"https://myapicazi.zh.pro/api/v1/products?per_page=10&sort=price"
# 创建订单
curl -X POST \
-H "X-API-Key: pxk_你的密钥" \
-H "Content-Type: application/json" \
-d '{"items":[{"product_id":123,"quantity":1}]}' \
https://myapicazi.zh.pro/api/v1/orders
Python
import requests
API_KEY = "pxk_你的密钥"
BASE = "https://myapicazi.zh.pro/api/v1"
H = {"X-API-Key": API_KEY}
# 查询余额
r = requests.get(f"{BASE}/wallet/balance", headers=H)
print(f"余额: ¥{r.json()['available_currency']}")
# 商品列表
r = requests.get(f"{BASE}/products", headers=H, params={"per_page": 5})
for p in r.json()["data"]:
print(f"{p['id']}: {p['name']} - ¥{p['price']}")
# 下单
r = requests.post(f"{BASE}/orders", headers=H, json={
"items": [{"product_id": 123, "quantity": 1}]
})
if r.status_code == 201:
order = r.json()["order"]
print(f"订单: {order['tracking_number']}")
for item in order["items"]:
print(f" 卡密: {item.get('codes', [])}")
PHP
<?php
$apiKey = 'pxk_你的密钥';
$base = 'https://myapicazi.zh.pro/api/v1';
function api($method, $url, $data = null) {
global $apiKey;
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey", 'Content-Type: application/json'],
]);
if ($method === 'POST') {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
$res = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ['code' => $code, 'body' => json_decode($res, true)];
}
// 查询余额
$r = api('GET', "$base/wallet/balance");
echo "¥" . $r['body']['available_currency'] . "\n";
// 下单
$r = api('POST', "$base/orders", ['items' => [['product_id' => 123, 'quantity' => 1]]]);
if ($r['code'] === 201) {
echo "订单: " . $r['body']['order']['tracking_number'] . "\n";
}
Zh.pro|全球账户&卡密即买即发 开发者 API v1 · 如有疑问请联系管理员