Tiện ích 05 / 05
Bán ở đâu cũng đượcQuyền vẫn ở bạn
API phân quyền cho cửa hàng và bot, bàn đại lý trả bằng tín dụng, webhook có ký
Seller APIBán qua đại lý, vẫn nắm quyền
Cách hoạt động
- 01
Tạo khoá API
Chọn quyền, app và dải IP được phép
- 02
Nối cửa hàng
Đơn hàng gọi API, key sinh ra trong một bước
- 03
Mời đại lý
Bạn cấp tín dụng, đại lý tự tạo key trong bàn riêng
Trọn bộ
- Phân quyền từng khoáMỗi khoá chỉ làm đúng việc được giao
- Không lặp đơnIdempotency-Key giữ một đơn là một lần bán
- Giới hạn rõ ràng120 yêu cầu mỗi phút, 600 trên Premium
- Sổ tín dụngMỗi key đại lý tạo đều trừ tín dụng và ghi sổ
- Webhook có kýHMAC-SHA256, gửi lại khoảng 15 lần trong 3 ngày
- OpenAPI đầy đủSinh từ chính schema kiểm tra yêu cầu
Trong code
curl -X POST https://<api host>/seller/v1/apps/app_…/licenses \
-H "Authorization: Bearer $CLAVIS_KEY" \
-H "Idempotency-Key: order-1042" \
-H "Content-Type: application/json" \
-d '{ "policyId": "pol_…", "count": 1, "email": "buyer@example.com" }'
const res = await fetch(`${host}/seller/v1/apps/${appId}/licenses`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CLAVIS_KEY}`,
"Idempotency-Key": "order-1042", // a retry never sells twice
"Content-Type": "application/json",
},
body: JSON.stringify({ policyId, count: 1, email: "buyer@example.com" }),
});
const { data } = await res.json(); // data.keys: shown once
import os, requests
res = requests.post(
f"{host}/seller/v1/apps/{app_id}/licenses",
headers={
"Authorization": f"Bearer {os.environ['CLAVIS_KEY']}",
"Idempotency-Key": "order-1042",
},
json={"policyId": policy_id, "count": 1, "email": "buyer@example.com"},
)
keys = res.json()["data"]["keys"]
Có trong gói nào
- Basic
- 2 khoá API, 1 webhook
- Premium
- Đại lý, 25 khoá API, 50 webhook
Đọc thêm ở Protect Hub