UnoPayv1.0.0
  1. خانه
  2. verifyCallback

مرجع API

verifyCallback

متدی روی UnoPay. پرداخت‌کننده‌ای که رها کرده اینجا به‌صورت isSuccessful: false برمی‌گردد، نه به‌صورت استثنا. همین تمایز تعیین می‌کند هندلر را چگونه بنویسید.

methodUnoPay.verifyCallback

پرداخت را نزد درگاه تایید می‌کند و پاسخ را یکسان‌سازی می‌کند. پرداخت‌کننده‌ای که پرداخت را رها کرده به‌صورت نتیجه false برمی‌گردد، نه استثنا.

verifyCallback<K extends keyof TGateways>(
  provider: K,
  request: CallbackRequest
): Promise<VerificationResult>

پارامترها

نامتایپالزامیتوضیح
providerK extends keyof TGatewaysبلهکلیدی از آبجکت adapters که به سازنده داده شده است.
requestCallbackRequestبلهدرخواست فریم‌ورک تخت‌شده به method، query و body.

خروجی

Promise<VerificationResult> — isSuccessful به‌همراه ref_id درگاه، مبلغ بازتابیده و errorReason وقتی پرداخت تایید نشد.

خطاها

  • PaymentError — کد ADAPTER_NOT_FOUND برای درگاه ناشناخته.
  • GatewayProviderError — هر خطای غیر PaymentError را در خود می‌پیچد، از جمله خطای شبکه هنگام تماس با درگاه.
  • PaymentValidationError — از ZarinpalAdapter وقتی Authority یا مبلغ عددی غایب باشد. بدون تغییر دوباره پرتاب می‌شود.
نکته

رویداد verification_completed روی هر فراخوانی resolve‌شده لاگ می‌شود، چه isSuccessful درست باشد چه نادرست. فقط خطای پرتاب‌شده باعث verification_failed می‌شود.

نمونه کد

UnoPay.example.tsts
const result = await unopay.verifyCallback('zarinpal', {
  method: req.method,
  query: req.query as Record<string, string>,
  body: req.body ?? {},
});

if (result.isSuccessful) {
  return res.send(`Paid. Ref ${result.transactionId}`);
}
return res.status(400).send(`Failed: ${result.errorReason}`);