- خانه
- خانه
یک API تایپشده برای درگاههای پرداخت ایران
UnoPay به همه درگاههای پرداخت اینترنتی دو متد یکسان میدهد. با createPayment پرداخت را آغاز کنید، با verifyCallback آن را تایید کنید. آداپتور را عوض کنید تا درگاه عوض شود — کد فراخوانی شما دستنخورده میماند.
نصب
npm i unopay
const result = await unopay.createPayment('zarinpal', request);
// result.redirectUrl -> https://sandbox.zarinpal.com/pg/StartPay/S000...
// result.transactionId -> S000...
// result.providerToken -> S000...
const result = await unopay.verifyCallback('zarinpal', callback);
if (result.isSuccessful) {
await markOrderPaid(result.transactionId, result.settledAmount);
} else {
await markOrderFailed(result.errorReason);
}
2
متد کلاینت
11
درگاه مستندشده
1
آداپتور منتشرشده
15
نماد صادرشده
unopay 1.0.0 · بدون وابستگی زمان اجرا · فقط fetch
کل یکپارچهسازی در پانزده خط
این تمام ماجراست. فرض بر اپلیکیشن Express است، ولی هیچ چیز دیگری در پروژه شما تغییر نمیکند — همین دو فراخوانی در هر رانتایمی که fetch داشته باشد کار میکنند.
import { UnoPay, ZarinpalAdapter } from 'unopay';
const unopay = new UnoPay({
zarinpal: new ZarinpalAdapter({ merchantId: process.env.ZARINPAL_MERCHANT_ID! }),
});
app.post('/checkout', async (req, res) => {
const payment = await unopay.createPayment('zarinpal', {
amount: 50000,
currency: 'IRT',
callbackUrl: 'https://yoursite.com/api/payment/callback',
metadata: { description: 'Order #1024' },
});
res.redirect(payment.redirectUrl);
});
هر امضای اینجا از پوشه src/ در کامیت 4a04be5 خوانده شده است. سه ادعای README پکیج SDK در برابر کد برقرار نیست، و صفحههای مربوطه بهجای تکرارشان همان را میگویند.
چرا یک لایه آداپتور ارزش دارد
غلط املایی خطای کامپایل است
پول یک بار تبدیل میشود
پنج کلاس خطا، یک ریشه
هرجا fetch هست اجرا میشود
هر درگاه، و آنچه واقعاً وجود دارد
مستقیماً از ماتریس مقایسه خود SDK خوانده شده است. درگاهی که آداپتور ندارد یک مشخصه است، نه یک یکپارچهسازی — کاشیها میگویند کدام کدام است.
زرینپال
ZarinPal
آیدیپی
IDPay
بهپرداخت ملت
Behpardakht Mellat
سامان کیش
Saman SEP
سداد بانک ملی
Sadad Melli
تجارت الکترونیک پارسیان
Parsian PEC
پرداخت الکترونیک پاسارگاد
Pasargad PEP
آسان پرداخت
Asan Pardakht
پرداخت نوین آرین
Pardakht Novin
ایرانکیش
IranKish
سیزپی
SizPay
وضعیت پشتیبانی درگاهها، صادقانه
یک درگاه بهصورت پیادهسازیشده منتشر شده است. سه درگاه در README پکیج SDK بهعنوان برنامهریزیشده نام برده شدهاند. بقیه مجموعه اسناد در درخت docs/ فقط مشخصاتاند — نه آداپتوری وجود دارد و هیچکدام اعلام نشدهاند. صفحه درگاهها تصویر کامل را دارد، از جمله اینکه کدام درگاهها سندباکس واقعی برای تست دارند.
یک آداپتور یعنی یک یکپارچهسازی کارآمد
زرینپال امروز منتشر شده، همراه با سندباکس. پکیج را نصب کنید، آداپتور را وصل کنید، و درگاه دوم یک آرگومان سازنده میشود نه یک بازنویسی.