#Dart
یه سؤال ساده شروعش کرد: چرا هر درگاه پرداخت ایرانی باید یه SDK کاملاً جدا داشته باشه؟
زرینپال یه شکل جواب میده، زیبال یه شکل دیگه، پیپینگ اسم فیلدهاش فرق داره، وندار احراز هویتش با بقیه یکی نیست... نتیجه؟ هر بار که بخوای درگاه عوض کنی یا دومی رو اضافه کنی، عملاً داری از صفر مینویسی.
برای همین pardakht رو ساختم — یه پکیج Dart که ۷ درگاه پرداخت ایرانی رو پشت یه interface واحد میبره:
زرینپال، زیبال، آیدیپی، پیپینگ، پی.آیآر، وندار، ایراندرگاه
چیزی که برام مهم بود، نه فقط «کار کنه» بلکه «قابل اعتماد باشه»:
نوع داده Money که واحد پول (ریال/تومان) رو صریح نگه میداره — دقیقاً همون جایی که خطای «ده برابر شدن قیمت» از اونجا شروع میشه.
وریفای تکراری = موفقیت، نه شکست. خیلی از مرچنتها پرداخت واقعی رو استرداد میزنن چون verify دوم رو اشتباه fail میخونن. اینجا این حالت یه state جدا و صریحه.
بدون وابستگی به Flutter — یعنی همون کد روی بکاند هم اجرا میشه، جایی که verify واقعاً باید انجام بشه (نه سمت کلاینت، که هرکسی میتونه callback رو جعل کنه).
هر درگاه یه سند مشخصات جداگانه داره: هر claim با URL منبع و تاریخ تأیید. هیچ فیلدی حدسی نیست.
۷۹۸ تست، ۱۰۰٪ پوشش خط، صفر warning.
کد، مستندات و همهچیز باز و در دسترس:
https://pub.dev/packages/pardakht
https://github.com/naeimlotfali/pardakht
@DevTwitter | <Naeim Lotfali/>
Post #12884
5.99K
- 👍 68
- 🔥 9
- 🍌 9