معالجة أخطاء الفوترة وحدود إنفاق العملاء
ميّز بين نقص الرصيد وحدود الإنفاق للتطبيق، قدّم رابط استرداد مخصص للمستخدم وتعامل مع فشل البث بشكل صحيح.
في هذه الصفحة
استخدم تسجيل الدخول عبر ShareAI للتحقق من الهوية وتفويض الدفع عبر ShareAI بشكل صريح للإجراءات الممولة من الحساب. openid النطاق وحده لا يصرح بالإنفاق. استنتاجات الذكاء الاصطناعي تتطلب inference أو منحة موافق عليها ومصرح بها. surcharge الطلبات يتم تأكيدها بشكل منفصل عند الدفع. يتحكم العميل في حد الذكاء الاصطناعي الشهري عبر Console. لا يمكن لتطبيقك تغييره.; payments HTTP 402 ·.
التعامل مع الأخطاء حسب الكود#
: الحساب الدافع يفتقر إلى رصيد غير منتهي الصلاحية مؤهل لهذا المزود/النموذج والطلب. اطلب من العميل إدارة أرصدته. بعض الأرصدة لديها قيود على المزود أو النموذج. insufficient_credits: تم الوصول إلى الحد الشهري، الطلبات المحجوزة تستخدم المخصص المتاح، أو أن تكلفة هذا الطلب ستتجاوز الحد. لا تعامل هذا كحد معدل أو تعيد المحاولة تلقائيًا. اطلب من العميل تغيير الحد أو الانتظار حتى.
: الحساب الدافع يفتقر إلى رصيد غير منتهي الصلاحية مؤهل لهذا المزود/النموذج والطلب. اطلب من العميل إدارة أرصدته. بعض الأرصدة لديها قيود على المزود أو النموذج. application_spending_limit_exceededHTTP 429 · reset_at.
: حد مؤقت للطلبات/التزامن. اتبع 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 هو بتوقيت UTC. تظهر هذه المعلومات في أخطاء الحد، وقد تكون غائبة في أخطاء نقص الرصيد. reset_at قدّم إجراء.
فتح الحساب الدافع الصحيح#
إدارة الفواتير مرئي باستخدام الرابط المُعاد. السياق الغامض ينتهي بعد 15 دقيقة، يحدد الحساب الدافع الأصلي والاتصال، ويستمر بعد إعادة التوجيه لتسجيل الدخول. يتحقق Console من أذونات المالك/المسؤول للزائر المسجل قبل اختيار ذلك الحساب. لا تستبدله بصفحة الفواتير الخاصة بمالك التطبيق، أو تخترع معرف مستخدم، أو تضيف رمز وصول، أو تعيد توجيه العميل تلقائيًا. استخدم قائمة السماح لأصل Console و.
إذا كنت تفتح علامة تبويب جديدة. الرابط هو للتنقل، وليس تفويضًا أو دليلًا على إضافة الأموال. لا تخزنه كإشارة مرجعية دائمة أو في سجلات عامة. عند انتهاء الصلاحية، يمكن للعميل فتح الفواتير مباشرة. يمكن لطلب جديد أن يعيد رابطًا جديدًا بعد أن يطلب العميل صراحة إعادة المحاولة. rel="noopener noreferrer" يتحقق ShareAI من الحد قبل القبول/الربط ويتحقق من التكلفة الفعلية للشبكة بالإضافة إلى الرسوم الإضافية بشكل ذري عند التسوية. الطلبات المتزامنة تشترك في نفس الحد. تقديرات الإدخال تحجز مساحة إضافية؛ طول الإخراج غير معروف مسبقًا. يتم رفض الرسوم النهائية التي تتجاوز المخصص المتبقي دون خصم استخدام أو إضافة رصيد رسوم إضافية للمطور.
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);البث والتسوية النهائية#
بالنسبة لـ Chat Completions SSE، تعامل مع.
بنفس event: error وحقول الاسترداد. بالنسبة لـ Responses SSE، تعامل مع error.code واقرأ response.failed . بمجرد بدء البث، تكون حالة HTTP بالفعل 200؛ المحتوى الجزئي لا يعني إكمالًا ناجحًا. لا تحدد النتيجة ككاملة، أو تنفذ إجراءات مدفوعة لاحقًا، أو تعيد الإرسال تلقائيًا بعد خطأ نهائي. تعرض Chat غير المتدفقة، Responses، Embeddings وImages خطأ الفواتير كـ HTTP 402 root response.error. envelope. error ظرف.
النطاق وإعادة التعيين#
الشهر الميلادي يعمل بتوقيت UTC. الحد الأقصى يكون لكل حساب دفع وتطبيق، ويتم مشاركته عبر عملاء OAuth، التصاريح والرموز المحدثة؛ تستخدم خدمة العميل معرف العمل الثابت الخاص بها عبر دورات تدوير المفتاح الإنتاجي. يتم احتساب تكلفة شبكة الذكاء الاصطناعي المستقرة بالإضافة إلى الرسوم الإضافية فقط. الاشتراكات الثابتة والمشتريات المؤكدة بشكل منفصل لها تفويض خاص بها عند الدفع ولا تستهلك من هذا الحد الخاص بالذكاء الاصطناعي. الصفر يوقف الإنفاق الإضافي على الذكاء الاصطناعي؛ والقيمة null تعني عدم وجود حد. يتم الاحتفاظ بالرسوم السابقة عند تعديل الحد أو إعادة تفويض الاتصال.
هذه هي أدوات التحكم الخاصة بالعملاء في Console، وليست نقطة نهاية للمطورين لزيادة الميزانيات. استمر في تطبيق نطاقات التصريح، النماذج المعتمدة، تفضيلات مزودي العملاء وشروط الرسوم الإضافية المقبولة. دليل فواتير العملاء · واجهة برمجة تطبيقات الدفع.
آخر تحديث سبتمبر 18, 2026