Control del propietario de la suscripción
Propósito: permitir a los propietarios de cuentas inspeccionar planes y ejecutar acciones del ciclo de vida de la suscripción.
Flujo de interfaz de usuario
- El usuario abre la página de facturación de la cuenta seleccionada con el token.
- La interfaz de usuario carga
GET /api/subscriptions. - La interfaz de usuario carga
GET /api/subscriptions/features. - La interfaz de usuario carga
GET /api/subscriptions/identity. - La interfaz de usuario carga
GET /api/subscriptions/merchants. - La interfaz de usuario crea sesiones de pago o de portal cuando el propietario inicia las acciones de facturación.
- La interfaz de usuario ejecuta acciones de sincronización/cambio/cancelación a partir de acciones explícitas del propietario.
Flujo de la biblioteca del cliente
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",
});
Flujo 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}\"}"
Notas
- Las rutas de suscripción no tienen cuenta; El contexto de la cuenta proviene de JWT
acc. - La autorización del propietario se aplica mediante endpoints de suscripción de autenticación ascendentes.
inbox-managerreenvía el token bearer del usuario directamente.- Las devoluciones de llamadas de webhook de Stripe no se envían mediante proxy a través de
inbox-manager.