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

مرجع API

createPayment

متدی روی UnoPay. کلید provider از نوع keyof TGateways است، پس غلط املایی درگاه کامپایل نمی‌شود. این فراخوانی صفحه پرداخت را باز می‌کند و محل ارسال پرداخت‌کننده را می‌گوید — هیچ پولی جابه‌جا نمی‌شود.

methodUnoPay.createPayment

از درگاه نام‌برده می‌خواهد پرداخت را آغاز کند و محل ارسال پرداخت‌کننده را برمی‌گرداند. قید K یک درگاه ناشناخته را به خطای کامپایل تبدیل می‌کند نه خطای زمان اجرا.

createPayment<K extends keyof TGateways>(
  provider: K,
  request: PaymentRequest
): Promise<PaymentResult>

پارامترها

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

خروجی

Promise<PaymentResult> — نشانی ریدایرکت، آتوریتی به‌عنوان transactionId و توکن درگاه.

خطاها

  • PaymentError — کد ADAPTER_NOT_FOUND وقتی provider کلیدی از آبجکت adapters نباشد. همگام است؛ پرامیس بازگشتی رد می‌شود.
  • PaymentError and subclasses — بدون تغییر دوباره پرتاب می‌شود وقتی خود آداپتور یک PaymentError تولید کند.
  • GatewayProviderError — هر مقدار پرتاب‌شده دیگری را در خود می‌پیچد، بنابراین باگ درون آداپتور هم با کدی به شکل خطای پرداخت ظاهر می‌شود.
نکته

رویدادهای payment_started و provider_request_sent پشت سر هم و پیش از انتظار آداپتور لاگ می‌شوند. هیچ رویداد سومی برای پاسخ وجود ندارد — موفقیت در لاگ ساکت است.

نکته

بررسی adapter-not-found پیش از payment_started انجام می‌شود، پس کلید ناشناخته بدون تولید هیچ رویدادی رد می‌شود. یک لاگر به‌تنهایی این اشتباه را به شما نشان نمی‌دهد.

نمونه کد

UnoPay.example.tsts
const payment = await unopay.createPayment('zarinpal', {
  amount: 50000,
  currency: 'IRT',
  callbackUrl: 'https://yoursite.com/api/payment/callback',
  metadata: { description: 'Order #1024' },
});
return Response.redirect(payment.redirectUrl, 302);