parsisolution / gateway

Iranian Payment Gateways
MIT License
19 stars 7 forks source link

تنظیمات default #3

Closed aliqasemzadeh closed 5 years ago

aliqasemzadeh commented 5 years ago

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

hamed-ehtesham commented 5 years ago

منظورتون از تنظمات داخلی فایل config/gateways.php هست؟

aliqasemzadeh commented 5 years ago

بله مثلا من می خواهم ملت را صدا بزنم بدون نیاز به تنظیمات

hamed-ehtesham commented 5 years ago

بله وقتی

Gateway::of('mellat')

رو صدا بزنید از همون فایل میخونه اما اگه بخواهید خودتون کلاس ملت رو instantiate کنید اونوقت باید خودتون تنظیمات رو بهش بدید

new Mellat(app(), config('gateways.mellat'))

که به شکل بالا باز هم میتونید از فایل تنظیمات داخلی بخونید یا این که از یک آرایه استفاده کنید به شکل زیر

new Mellat(app(), [
    'username'     => '',
    'password'     => '',
    'terminalId'   => 0000000,
    'callback-url' => '/'
]);
aliqasemzadeh commented 5 years ago

بسیار عالی

حالا یک چیز دیگری که به نظرم نیاز است اسم درگاه ها به فارسی در فایل تنظیمات هست اگر داشته باشیم بسیار عالی هست

و همچنین این که فعال هستند یا نه

hamed-ehtesham commented 5 years ago

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

aliqasemzadeh commented 5 years ago
new Mellat(app(), [
    'name' => 'بانک ملت',
    'active' => true,
    'username'     => '',
    'password'     => '',
    'terminalId'   => 0000000,
    'callback-url' => '/'
]);

این دو مورد را برای همه درگاه ها داشته باشیم.

hamed-ehtesham commented 5 years ago

کاربردش چی هست؟ منظورم این هست که باید از این پارامتر های جدید یک جایی استفاده بشه در ضمن فایل تنظیمات ما یک نسخه ی مثال هست هر کس میتونه این تنظیمات یا هر تنظیمات دیگه ای رو اضافه کنه

aliqasemzadeh commented 5 years ago

شاید به نظر بیاد که کاربرد خاصی ندارد اما معمولا همه ما از چند درگاه بانک استفاده می کنیم وقتی فعال بودن یا فعال نبود در تنظیمات باشه می توان به سادگی آن هایی که فعال هستند را نمایش داد و همچنین نام صحیح و فارسی را داشت

حتی به نظرم یک Order هم لازمه که بتوان بر اساس آن مرتب سازی را انجام داد.

hamed-ehtesham commented 5 years ago

متوجه منظورتون شدم داشتن همچین کاربردهایی به جا و خوب هست تنها نکته اش این هست که ذخیره ی تنظیمات active بودن یا نبودن و مرتب سازی بیشتر به کار پایگاه داده میخوره تا فایل config و تنظیم نام هم بیشتر به فایلهای lang میخوره اضافه کردنشون به تنظیمات تا زمانی که کاربری براشون داخل سیستم نداشته باشیم شاید موجب سردرگمی افرادی که نمیدونند اینها برای چی هست بشه

aliqasemzadeh commented 5 years ago

@hamed-ehtesham اسم که کاملا واضح هست برای چه کاری هست و اصلا توضیحات نیاز ندارد اما در مورد ترتیب و فعال بودن وقتی از این ماژول استفاده می شود کسی دیگر اطلاعات را در دیتابیس ذخیره نمی کند برای همین بهتره در این پکیج باشه

راستی برای مبنا 2 کاری نکردید؟

hamed-ehtesham commented 5 years ago

اگه اینطور فکر میکنید اشکالی نداره اضافه میکنیم

نه هنوز فرصت نکردم برای مبنا 2 کاری کنم

hamed-ehtesham commented 5 years ago

در نسخه ی جدید کد زیر

$activeDrivers = Gateway::activeDrivers();

یک آرایه بر میگردونه که درگاه های فعال به صورت مرتب شده توسط order در فایل config/gateways رو شامل میشه و برای هر درگاه یک key, name میگیریم که key نام درگاه هست که با استفاده از

$gateway = Gateway::of($key);

میتونیم بسازیمش و name هم رشته ی ورودی همون تابع activeDrivers که به صورت پیش فرض درگاه هست رو به ابتدای نام اضافه میکنه و برمیگردونه

یعنی آماده ی استفاده توسط select/option هست