IM
ID
Beranda dokumentasi
Menu
Panduan

Kontrol Pemilik Langganan

mengelola tindakan siklus hidup langganan sebagai pemilik akun melalui api.inbox-manager.com.

inbox-manager subscriptions client-flow

Kontrol Pemilik Langganan

Tujuan: memungkinkan pemilik akun memeriksa rencana dan menjalankan tindakan siklus hidup langganan.

Aliran UI

  1. Pengguna membuka halaman penagihan untuk akun yang dipilih token.
  2. UI memuat GET /api/subscriptions.
  3. UI memuat GET /api/subscriptions/features.
  4. UI memuat GET /api/subscriptions/identity.
  5. UI memuat GET /api/subscriptions/merchants.
  6. UI membuat sesi checkout atau portal saat pemilik memulai tindakan penagihan.
  7. UI menjalankan tindakan sinkronisasi/ubah/batalkan dari tindakan pemilik eksplisit.

Alur Perpustakaan Klien

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",
});

Alur 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}\"}"

Catatan

  • Rute berlangganan tidak dapat dipertanggungjawabkan; konteks akun berasal dari JWT acc.
  • Otorisasi owner diberlakukan oleh endpoint langganan pada layanan auth upstream.
  • inbox-manager meneruskan token bearer pengguna secara langsung.
  • Callback webhook Stripe tidak diproksikan melalui inbox-manager.