GenzShop 官方发布的 API,供合作伙伴在其网站、应用或机器人上自动销售产品。
GET /products.php 获取商品。GET /balance.php 查看钱包余额。POST /purchase.php 下单购买。deliveredAccounts 获取数据交付给客户。.php 后缀(例如 /products.php)。缺少 .php 会返回 HTML 404 页面而非 JSON。HTTPS_REQUIRED)。replay: true,不会重复扣费。OUT_OF_STOCK 错误。errorCode 以了解处理方式。Base URL:
https://genzshop.vn/api/partner/v1
所有请求都必须附带认证请求头(推荐使用 X-API-Key):
X-API-Key: YOUR_API_KEY
或使用 Bearer 标准(等效):
Authorization: Bearer YOUR_API_KEY
/products.php
获取正在售卖的商品列表,含代理价与库存。
curl "https://genzshop.vn/api/partner/v1/products.php" \ -H "X-API-Key: YOUR_API_KEY"
响应(简略):
{
"success": true,
"walletCurrency": "VND",
"products": [
{
"product_id": "CUR-0001",
"name": "Cursor Pro 1 tháng",
"description": "Tài khoản Cursor Pro dùng 1 tháng",
"type": "cursor",
"walletCurrency": "VND",
"walletPricing": 120000,
"walletPricingText": "120.000 VND",
"available": 38
}
]
}
使用 product_id(即 SKU)下单。若产品暂时缺货,购买接口将返回 OUT_OF_STOCK 错误。
/balance.php
查看与该 API 密钥关联账户的当前钱包余额。
curl "https://genzshop.vn/api/partner/v1/balance.php" \ -H "X-API-Key: YOUR_API_KEY"
{
"success": true,
"walletCurrency": "VND",
"balance": 5000000,
"balanceText": "5.000.000 VND"
}
/purchase.php
下单并即时获取账号。从钱包余额扣款,在 deliveredAccounts 中返回账号。
curl -X POST "https://genzshop.vn/api/partner/v1/purchase.php" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "CUR-0001",
"quantity": 1,
"idempotency_key": "don-khach-0001"
}'
请求体参数:
| 参数 | 类型 | 描述 |
|---|---|---|
product_id | string | 产品 SKU,例如 CUR-0001(必填) |
quantity | integer | 数量 1..1000(必填) |
idempotency_key | string | 8..128 个字符 [A-Za-z0-9._:-](必填) |
customer_email | string | 您的客户邮箱,用于对账(可选) |
成功响应:
{
"success": true,
"walletCurrency": "VND",
"orderCode": "GZ260724CUR3F9A2B",
"productType": "cursor",
"quantity": 1,
"amount": 120000,
"amountText": "120.000 VND",
"balance": 4880000,
"balanceText": "4.880.000 VND",
"deliveredAccounts": [
{
"productItemId": "1024",
"user": "[email protected]",
"password": "example-password",
"verifyEmail": "[email protected]"
}
]
}
若使用已用过的 idempotency_key 重新提交,响应将保持原订单不变,并附带 "replay": true——不会再次扣费。
所有错误均返回固定格式的 JSON(HTTP 状态 ≥ 400):
{
"success": false,
"errorCode": "INSUFFICIENT_BALANCE",
"detail": "Số dư ví không đủ. Cần 120.000 VND, số dư hiện tại 50.000 VND."
}
| HTTP | errorCode | 含义 |
|---|---|---|
| 400 | INVALID_BODY | 请求体不是有效的 JSON |
| 401 | MISSING_API_KEY | 缺少 X-API-Key 请求头(或 Authorization: Bearer) |
| 401 | INVALID_API_KEY | 密钥错误或已被吊销 |
| 402 | INSUFFICIENT_BALANCE | 钱包余额不足 |
| 403 | HTTPS_REQUIRED | 在生产环境中使用 HTTP 调用——必须使用 HTTPS |
| 403 | IP_NOT_ALLOWED | IP 不在该密钥的白名单中 |
| 404 | PRODUCT_NOT_FOUND | 找不到该产品 |
| 405 | METHOD_NOT_ALLOWED | 该接口的 HTTP 方法不正确 |
| 409 | PRODUCT_INACTIVE | 该产品目前未上架 |
| 409 | OUT_OF_STOCK | 库存不足 |
| 422 | INVALID_PRODUCT_ID | 缺少 product_id 或格式不正确 |
| 422 | INVALID_QUANTITY | 数量超出 1..1000 范围 |
| 422 | INVALID_IDEMPOTENCY_KEY | idempotency_key 格式不正确 |
| 422 | INVALID_CUSTOMER_EMAIL | customer_email 无效 |
| 429 | RATE_LIMITED | 调用过于频繁(按 IP 或按密钥限流),请稍后重试 |
| 500 | INTERNAL_ERROR | 系统错误,未扣费 |
当触发按密钥限流的 RATE_LIMITED 时,响应会附带 Retry-After、X-RateLimit-Limit 和 X-RateLimit-Remaining 请求头——请等待 Retry-After 中的秒数后再重试。