- خانه
- همه کلاسهای خطا
مرجع
مرجع خطا
هر کلاس خطا یعنی چه، معمولاً چه چیزی باعثش شده، و بعدش چه کنید. دو تا از مهمترین نتایج SDK اصلاً خطا نیستند.
پیش از نوشتن catch، این دو را بررسی کنید
پرداختکنندهای که رها کرده هیچ درخواست و هیچ خطایی تولید نمیکند — با مغایرتگیری پیدایش کنید. پرداختی که رد شده یعنی isSuccessful: false همراه errorReason، نه استثنا. فقط خرابی واقعی استثنا هستند.
| کلاس | کد | مفهوم | علت معمول | اقدام پیشنهادی |
|---|---|---|---|---|
PaymentValidationError | VALIDATION_ERROR | SDK ورودی را پیش از تماس با درگاه یا بهجای آن رد کرده است. | شناسه پذیرنده خالی، یا کالبک بدون Authority یا بدون مبلغ عددی. | ورودی را اصلاح کنید. تلاش مجدد بدون تغییر همانطور شکست میخورد. |
GatewayNetworkError | NETWORK_ERROR | درگاه هرگز پاسخ HTTP تولید نکرد. | خطای DNS، قطع اتصال، یا خاتمه ثابت ۱۰ ثانیهای. | با backoff نمایی و jitter تلاش مجدد کنید. این تنها کلاس قابل تلاش مجدد است. |
InvalidSignatureError | INVALID_SIGNATURE | کالبک رسید ولی احراز هویت نشد. | عدم تطابق امضا — فقط در آداپتورهایی که خودتان مینویسید، امروز. | با مقایسه زمان-ثابت اعتبارسنجی کنید. هرگز آن را رد شدن پرداخت تلقی نکنید. |
GatewayProviderError | PROVIDER_ERROR | درگاه پاسخ داد و پاسخ موفق نبود. | شناسه پذیرنده یا مبلغ نادرست، وضعیت غیر ۲xx، یا هر خطای غیر PaymentError که آداپتور شما پرتاب کند. | err.cause را بررسی کنید — داده خام درگاه را حمل میکند. تلاش مجدد نکنید. |
PaymentError | ADAPTER_NOT_FOUND | کلید درگاه در نگاشت adapters نیست. | غلط املایی، یا آداپتوری که هرگز به سازنده اضافه نشد. | کلید را بررسی کنید. این پیش از payment_started رخ میدهد، بنابراین اصلاً لاگی تولید نمیکند. |
زنجیره کامل وراثت
یک ریشه، چهار فرزند مستقیم. یک catch (err) { if (err instanceof PaymentError) } همه خرابیهای UnoPay را میگیرد، از جمله ADAPTER_NOT_FOUND که مستقیم پرتاب میشود.
PaymentError
ریشه — code, cause, nameمستقیماً با ADAPTER_NOT_FOUND پرتاب میشود؛ همچنین پایه همه زیرکلاسهاست.
└─ PaymentValidationError
PaymentValidationErrorاز PaymentError ارثبری میکند
└─ GatewayNetworkError
GatewayNetworkErrorاز PaymentError ارثبری میکند
└─ InvalidSignatureError
InvalidSignatureErrorاز PaymentError ارثبری میکند
└─ GatewayProviderError
GatewayProviderErrorاز PaymentError ارثبری میکند