- خانه
- createPayment
مرجع API
createPayment
متدی روی UnoPay. کلید provider از نوع keyof TGateways است، پس غلط املایی درگاه کامپایل نمیشود. این فراخوانی صفحه پرداخت را باز میکند و محل ارسال پرداختکننده را میگوید — هیچ پولی جابهجا نمیشود.
methodUnoPay.createPayment
از درگاه نامبرده میخواهد پرداخت را آغاز کند و محل ارسال پرداختکننده را برمیگرداند. قید K یک درگاه ناشناخته را به خطای کامپایل تبدیل میکند نه خطای زمان اجرا.
createPayment<K extends keyof TGateways>( provider: K, request: PaymentRequest ): Promise<PaymentResult>
پارامترها
| نام | تایپ | الزامی | توضیح |
|---|---|---|---|
provider | K extends keyof TGateways | بله | کلیدی از آبجکت adapters که به سازنده داده شده است. |
request | PaymentRequest | بله | مبلغ، واحد پول، نشانی کالبک و متادیتای اختیاری. |
خروجی
Promise<PaymentResult> — نشانی ریدایرکت، آتوریتی بهعنوان transactionId و توکن درگاه.
خطاها
PaymentError— کد ADAPTER_NOT_FOUND وقتی provider کلیدی از آبجکت adapters نباشد. همگام است؛ پرامیس بازگشتی رد میشود.PaymentError and subclasses— بدون تغییر دوباره پرتاب میشود وقتی خود آداپتور یک PaymentError تولید کند.GatewayProviderError— هر مقدار پرتابشده دیگری را در خود میپیچد، بنابراین باگ درون آداپتور هم با کدی به شکل خطای پرداخت ظاهر میشود.
رویدادهای payment_started و provider_request_sent پشت سر هم و پیش از انتظار آداپتور لاگ میشوند. هیچ رویداد سومی برای پاسخ وجود ندارد — موفقیت در لاگ ساکت است.
بررسی adapter-not-found پیش از payment_started انجام میشود، پس کلید ناشناخته بدون تولید هیچ رویدادی رد میشود. یک لاگر بهتنهایی این اشتباه را به شما نشان نمیدهد.
نمونه کد
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);