Usage webhooks
Prism ส่ง event ที่เซ็นแล้วไปยัง endpoint ของคุณทุกครั้งที่มีการเรียกที่คิดเงิน
ใช้กระทบยอดค่าใช้จ่าย ทำ chargeback ภายใน หรือป้อนแดชบอร์ดของคุณเองได้ โดยไม่ต้อง
poll usage API
ตั้งค่าเองได้ในคอนโซลที่ Team → Usage webhook ระบบจะสร้าง signing secret ให้
และแสดงครั้งเดียวตอนสร้าง
สิ่งที่ส่งมา
หนึ่ง POST ต่อหนึ่ง usage event, content-type: application/json:
cost_credits_minor เป็นหน่วยย่อย — 143 คือ ฿1.43
Header:
เป็นรูปแบบ Standard Webhooks ดังนั้น
verifier ของ Standard Webhooks ที่มีอยู่แล้วใช้ได้เลย
การตรวจสอบลายเซ็น
ข้อความที่เซ็นคือ {webhook-id}.{webhook-timestamp}.{raw body}
ต้องเซ็นจาก raw request body ก่อน parse JSON การแปลง object ที่ parse แล้ว
กลับเป็น JSON ใหม่ทำให้ลำดับ key และช่องว่างเปลี่ยน ลายเซ็นจะไม่ตรง
ตัวอย่าง Python และ Go อยู่ในฉบับภาษาอังกฤษ
การตอบกลับ
ตอบ 2xx ทันทีที่บันทึก event แล้ว งานที่เหลือค่อยทำต่อ — handler ที่ช้าจะกิน
โควตา retry ของคุณเอง
สถานะอื่นถือว่าล้มเหลวและจะ retry แบบ exponential backoff (1 นาที, 2, 4, 8 …
สูงสุด 1 ชั่วโมง) จนครบจำนวนครั้ง แล้วจึงมาร์กเป็น dead และแสดง error ล่าสุด
ในคอนโซล
Idempotency
การ retry ทำให้ event_id เดิมมาถึงได้มากกว่าหนึ่งครั้ง ให้ใช้ event_id เป็น
primary key ฝั่งคุณและข้ามตัวซ้ำ อย่าบวกยอดสะสมทุกครั้งที่ได้รับ
ลำดับ
delivery ไม่รับประกันลำดับ event ที่ retry อาจมาถึงหลัง event ที่ใหม่กว่า
ถ้าลำดับสำคัญให้ใช้ occurred_at แทนลำดับการมาถึง
การหมุน secret
secret แสดงครั้งเดียวและเก็บแบบเข้ารหัส Prism แสดงให้อีกไม่ได้ ถ้าจะหมุน ให้
เพิ่ม endpoint ตัวที่สองที่ URL เดิม deploy ตัวรับที่ยอมรับได้ทั้งสอง secret
แล้วค่อยลบตัวเก่า
English version