订阅所有者控制
目的:允许帐户所有者检查计划并执行订阅生命周期操作。
用户界面流程
- 用户打开所选令牌帐户的计费页面。
- UI 加载
GET /api/subscriptions。 - UI 加载
GET /api/subscriptions/features。 - UI 加载
GET /api/subscriptions/identity。 - UI 加载
GET /api/subscriptions/merchants。 - 当所有者开始计费操作时,UI 创建结帐或门户会话。
- UI 从显式所有者操作运行同步/更改/取消操作。
客户端库流程
const subs = await api.subscriptions.list();
const features = await api.subscriptions.features();
const merchants = await api.subscriptions.merchants();
const checkout = await api.subscriptions.createCheckoutSession({
price_id,
success_url,
cancel_url,
});
await api.subscriptions.change(subscriptionId, {
interval: "year",
});
HTTP/curl 流程
API_BASE_URL="https://api.inbox-manager.com"
curl -sS "${API_BASE_URL}/api/subscriptions" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/subscriptions/features" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/subscriptions/identity" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/subscriptions/merchants" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/stripe/checkout-session" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"price_id\":\"${PRICE_ID}\",\"success_url\":\"${SUCCESS_URL}\",\"cancel_url\":\"${CANCEL_URL}\"}"
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/stripe/portal-session" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"return_url\":\"${RETURN_URL}\"}"
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/sync?allow_deletes=false" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{}'
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/${SUBSCRIPTION_ID}/change" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"interval":"month"}'
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/${SUBSCRIPTION_ID}/cancel" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"timing":"period_end"}'
curl -sS -X POST "${API_BASE_URL}/api/subscriptions/stripe/checkout-session-sync" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"session_id\":\"${SESSION_ID}\"}"
注释
- 订阅途径无需账号;帐户上下文来自 JWT
acc。 - 所有者授权由上游身份验证订阅端点强制执行。
inbox-manager直接转发用户承载令牌。- Stripe webhook 回调不通过
inbox-manager代理。