parsisolution / gateway

Iranian Payment Gateways
MIT License
19 stars 7 forks source link

تنظیم واحد پول کجاست #12

Closed aliqasemzadeh closed 5 years ago

aliqasemzadeh commented 5 years ago

سلام وقت بخیر

تنظیم واحد پول بین ریال و تومان کجاست؟ باید یک جایی بشه این گزینه را مدیریت کد و خیلی هم مهم است به نظرم توی تنظیمات یک گزینه داشته باشیم عالیه

hamed-ehtesham commented 5 years ago

با سلام تنظیم نیاز نیست از دید کاربر اگر فرد از درگاهی استفاده کند که نیاز به ریال یا تومان دارد که در حال حاضر تمام درگاه ها همینطور هستند از هر واحدی برای پول استفاده کند همان واحد در پایگاه داده ذخیره میشود و از دید شخصی که میخواهد درگاه به سیستم اضافه کند این شخص باید همیشه واحد مورد نیاز خود را از کلاس Amount دریافت کند یعنی اگر درگاه با تومان کار میکند به این شکل:

$transaction->getAmount()->getToman()

و اگر هم با ریال کار میکند به شکل زیر

$transaction->getAmount()->getRiyal()

اقدام به دریافت کند

aliqasemzadeh commented 5 years ago

@hamed-ehtesham این روند اشتباه است باید سیستم تنظیم داشته باشد. چرا که اگر نرم افزار چند نرخی بود بشه کنترل داشت ولی اگر کنترلی نیست

hamed-ehtesham commented 5 years ago

فکر نمیکنم درست متوجه روند شده باشید یا این که من اشکال شما رو متوجه نمیشم یعنی چی اگر چند نرخی بود بشه کنترل داشت؟ کاربر هر دفعه با هر نرخی (ریال یا تومان) میتونه درخواست بده و به همین شکل درخواست داده شده در پایگاه داده ذخیره میشه اما در پشت پرده اگه واحدی که درگاه با اون کار میکنه متفاوت از واحد درخواست داده شده باشه تبدیل انجام میشه و اگه یکسان باشه خودش به درگاه داده میشه

aliqasemzadeh commented 5 years ago

الان توی دیتابیس یک واحد پول هست که خیلی عالیه حالا اگر rate

اضافه بشه تبدیل هم به سیستم اضافه می شود حالا فرض کنید من دلار زدم

usd. rate:116000 ثبت میشه ولی باید یک جای باشه که من واحد را بزنم
حتی اگر لازمه جدول currency اضافه بشه

aliqasemzadeh commented 5 years ago

باید بشه default واحد را هم مشخص کرد

hamed-ehtesham commented 5 years ago

تبدیل واحد فقط روی ریال و تومان انجام میشه به خاطر این هست که تبدیل این دو یک نرخ ثابت داره شبیه به تبدیل cent به دلار در بقیه ی حالت ها دلیلی برای تبدیل در این سیستم و افزودن پیچیدگی نیاز نیست و اگه نیاز به اون قسمت هست باید توسط خود برنامه مدیریت بشه

شما نمیتونید برای درگاه های ایرانی از دلار استفاده کنید دلیلی برای اضافه کردن rate نمیبینم در بقیه ی حالت ها باید از واحدی استفاده بشه که درگاه ازش استفاده میکنه و به همین شکل هم در پایگاه داده ذخیره میشه

aliqasemzadeh commented 5 years ago

اگر واحد را بهش اضافه کنیم عالی میشه

$transaction->getAmount()->getCurrency('USD');

بعد از جدول currencies نرخ تبدیل خوانده میشه

عملا همه نوع تراکنشی ممکن میشود این فوق العاده هست

hamed-ehtesham commented 5 years ago

شاید بعدا این رو به عنوان optional به سیستم اضافه کنیم اما چیزی نیست که همه به اون نیاز داشته باشن هر کسی که از پرداخت غیر ریالی داره لزوما نیازی به تبدیل واحد نداره و حتی اگه داشته باشه لزوما در جدولی نیست میتونه یک api call باشه یا توی redis باشه یا ...