จัดการข้อผิดพลาดในการเรียกเก็บเงินและขีดจำกัดการใช้จ่ายของลูกค้า
แยกแยะเครดิตที่ไม่เพียงพอจากขีดจำกัดการใช้จ่ายของแอปพลิเคชัน นำเสนอการกู้คืนที่คำนึงถึงผู้ใช้งาน และจัดการข้อผิดพลาดในการสตรีมอย่างถูกต้อง.
ในหน้านี้
ใช้การเข้าสู่ระบบด้วย ShareAI เพื่อยืนยันตัวตนและการอนุญาต "ชำระเงินด้วย ShareAI" สำหรับการดำเนินการที่ใช้เงินจากบัญชี openid ขอบเขตเพียงอย่างเดียวไม่สามารถอนุญาตการใช้จ่ายได้ การประมวลผล AI จำเป็นต้องมี inference หรือการอนุมัติที่ได้รับการยินยอม surcharge การให้สิทธิ์; payments การร้องขอที่ได้รับการยืนยันการชำระเงินแยกต่างหาก ลูกค้าสามารถควบคุมขีดจำกัด AI รายเดือนใน Console แอปพลิเคชันของคุณไม่สามารถเปลี่ยนแปลงได้.
จัดการข้อผิดพลาดด้วยรหัส#
HTTP 402 · insufficient_credits: บัญชีชำระเงินไม่มีเครดิตที่ยังไม่หมดอายุเพียงพอสำหรับผู้ให้บริการ/โมเดลและคำร้องขอนี้ ขอให้ลูกค้าจัดการเครดิตของพวกเขา เครดิตบางส่วนมีข้อจำกัดสำหรับผู้ให้บริการหรือโมเดล.
HTTP 402 · application_spending_limit_exceeded: ขีดจำกัดรายเดือนถูกใช้จนหมด คำร้องขอที่จองไว้ใช้สิทธิ์ที่มีอยู่ หรือการเรียกเก็บเงินสำหรับคำร้องขอนี้จะเกินขีดจำกัด อย่าปฏิบัติต่อสิ่งนี้เป็นการจำกัดอัตราหรือพยายามใหม่โดยอัตโนมัติ ขอให้ลูกค้าเปลี่ยนแปลงขีดจำกัดหรือรอจนกว่า reset_at.
HTTP 429 · oauth_rate_limit: การจำกัดคำร้องขอ/ความพร้อมใช้งานชั่วคราว ปฏิบัติตาม Retry-After และการถอยกลับที่มีขอบเขต. HTTP 401 · consent_required: การอนุญาตหมดอายุ ถูกเพิกถอน หรือไม่ถูกต้องอีกต่อไป; ขอการอนุญาตใหม่แทนการขอเติมเงิน.
JSON
{
"error": {
"type": "billing_error",
"code": "application_spending_limit_exceeded",
"message": "This application's monthly AI spending limit has been reached or this request would exceed it. Manage the limit or wait for the next month.",
"management_url": "https://console.shareai.now/?shareai_billing_context=OPAQUE_SHORT_LIVED_VALUE",
"help": "https://console.shareai.now/?shareai_billing_context=OPAQUE_SHORT_LIVED_VALUE",
"monthly_limit": "50",
"reset_at": "2026-10-01T00:00:00Z"
}
}ข้อผิดพลาดทางการเงินสองประเภทใช้ error.type = billing_error. management_url เป็นปลายทางการกู้คืนของลูกค้า; help เป็นชื่อแทนที่เข้ากันได้. monthly_limit เป็นสตริงทศนิยม EUR ที่แน่นอนและ reset_at เป็น UTC สิ่งเหล่านี้ปรากฏในข้อผิดพลาดขีดจำกัด และอาจไม่มีในข้อผิดพลาดเครดิตไม่เพียงพอ.
เปิดบัญชีชำระเงินที่ถูกต้อง#
เสนอ จัดการการเรียกเก็บเงิน การดำเนินการที่มองเห็นได้โดยใช้ URL ที่ส่งคืน บริบทที่ไม่โปร่งใสหมดอายุหลังจาก 15 นาที ระบุบัญชีชำระเงินและการเชื่อมต่อเดิม และยังคงอยู่หลังการเปลี่ยนเส้นทางการเข้าสู่ระบบ Console ตรวจสอบสิทธิ์เจ้าของ/ผู้ดูแลระบบของผู้เยี่ยมชมที่ลงชื่อเข้าใช้ก่อนเลือกบัญชีนั้น อย่าแทนที่ด้วยหน้าการเรียกเก็บเงินของเจ้าของแอปพลิเคชัน สร้าง ID ผู้ใช้งาน เพิ่มโทเค็นการเข้าถึง หรือเปลี่ยนเส้นทางลูกค้าโดยอัตโนมัติ.
ใช้รายการอนุญาตสำหรับต้นทาง Console และ rel="noopener noreferrer" หากเปิดแท็บใหม่ ลิงก์นี้เป็นการนำทาง ไม่ใช่การอนุญาตหรือหลักฐานว่าเงินถูกเพิ่ม อย่าเก็บเป็นบุ๊กมาร์กถาวรหรือในบันทึกสาธารณะ เมื่อหมดอายุ ลูกค้าสามารถเปิด Billing ได้โดยตรง คำร้องขอใหม่สามารถส่งคืนลิงก์ใหม่หลังจากที่ลูกค้าขอให้ลองใหม่อย่างชัดเจน.
JavaScript
const response = await fetch("https://api.shareai.now/api/v1/chat/completions", options);
const body = await response.json();
const error = body.error;
if (response.status === 402 && error?.type === "billing_error") {
const message = error.code === "application_spending_limit_exceeded"
? "Your monthly limit for this app has been reached."
: "Your ShareAI account needs eligible credits.";
showBillingMessage(message);
if (error.management_url) {
const target = new URL(error.management_url);
if (target.origin === "https://console.shareai.now") {
// Render a user-activated link; never silently open it or retry spending.
showManageBillingLink(target.href);
}
}
return;
}
if (!response.ok || error) throw new Error(error?.message || "Request failed");
renderAnswer(body);การสตรีมและการชำระเงินขั้นสุดท้าย#
ShareAI ตรวจสอบขีดจำกัดก่อนการยอมรับ/การผูกมัด และตรวจสอบต้นทุนเครือข่ายจริงรวมค่าบริการเพิ่มเติมแบบอะตอมมิกในขั้นตอนการชำระเงิน คำร้องขอพร้อมกันใช้ขีดจำกัดเดียวกัน การประมาณการอินพุตสำรองพื้นที่ว่าง; ความยาวเอาต์พุตไม่สามารถทราบล่วงหน้าได้ การเรียกเก็บเงินขั้นสุดท้ายที่เกินสิทธิ์ที่เหลืออยู่จะถูกปฏิเสธโดยไม่มีการหักการใช้งานหรือเครดิตค่าบริการเพิ่มเติมของ Builder.
สำหรับ Chat Completions SSE จัดการ event: error ด้วย error.code และฟิลด์การกู้คืนเดียวกัน สำหรับ Responses SSE จัดการ response.failed และอ่าน response.error. เมื่อสตรีมเริ่มต้น สถานะ HTTP จะเป็น 200 แล้ว; เนื้อหาบางส่วนไม่ได้หมายถึงการเสร็จสิ้นที่สำเร็จ อย่าทำเครื่องหมายผลลัพธ์ว่าเสร็จสิ้น ดำเนินการที่ต้องชำระเงินต่อ หรือส่งคำร้องขอใหม่โดยอัตโนมัติหลังจากเกิดข้อผิดพลาดขั้นสุดท้าย Chat, Responses, Embeddings และ Images ที่ไม่ใช่การสตรีมจะแสดงข้อผิดพลาดการเรียกเก็บเงินเป็น HTTP 402 root error envelope.
ขอบเขตและการรีเซ็ต#
เดือนปฏิทินจะนับตามเวลา UTC ขีดจำกัดจะถูกกำหนดต่อบัญชีผู้ชำระเงินและแอปพลิเคชัน โดยแชร์ร่วมกันระหว่าง OAuth clients, grants และ tokens ที่รีเฟรช; บริการลูกค้าจะใช้รหัสงานที่เสถียรของตนเองตลอดการหมุนเวียน Production key ค่าใช้จ่ายเครือข่าย AI ที่ชำระแล้วบวกค่าธรรมเนียมเพิ่มเติมเท่านั้นที่จะถูกนับ การสมัครสมาชิกแบบคงที่และการซื้อที่ยืนยันแยกต่างหากจะมีการอนุมัติการชำระเงินของตนเองและจะไม่ใช้ขีดจำกัด AI นี้ การตั้งค่าเป็นศูนย์จะหยุดการใช้จ่าย AI เพิ่มเติม; null หมายถึงไม่มีขีดจำกัด ค่าใช้จ่ายที่ผ่านมาได้รับการเก็บรักษาไว้เมื่อมีการแก้ไขขีดจำกัดหรือมีการอนุญาตการเชื่อมต่อใหม่อีกครั้ง.
สิ่งเหล่านี้เป็นการควบคุมของลูกค้าใน Console ไม่ใช่ endpoint สำหรับนักพัฒนาเพื่อเพิ่มงบประมาณ โปรดดำเนินการบังคับใช้ขอบเขตของ grant, โมเดลที่ได้รับการอนุมัติ, ความชอบของผู้ให้บริการลูกค้า และเงื่อนไขค่าธรรมเนียมเพิ่มเติมที่ยอมรับแล้วต่อไป. คู่มือการเรียกเก็บเงินของลูกค้า · Checkout API ·.
อัปเดตล่าสุด กันยายน 18, 2026