ماژول درگاه همه بانک ها برای whmcs
توجه : در صورتی که ورژن قدیم را استفاده می کنید اینجا را مطالعه کنید
تقریبا همه همکاران برای هر بانک از ماژول درگاه ان بانک برای WHMCS خود استفاده می کنند
از معایب تعدد درگاه می توان به موارد زیر اشاره کرد:
پرداخت هزینه بالا برای تهیه همه ماژول ها
عدم وجود سیستم یکپارچه برای بررسی پرداخت ها
و……
با فعال سازی ماژول در گاه پرداخت می توانید از همه شرکت های طرف قرار داد شاپرک به همراه
سیستم ثبت فیش بانکی استفاده نمایید.
سفارش ماژول :
ابتدا از لینک زیر ماژول را خریداری نمایید:
بعد از خرید از منوی سرویس ها >> لایسنس های من ماژول را باز کنید.( کد انحصاری سایت شما به صورت Licenseha_MG_XXXX می باشد )
ماژول را با توجه به اطلاعات سرور خود از قسمت فایل دانلود و در whmcs خود از حالت فشرده خارج کنید و فایل zip را پاک نمایید
مجدد از قسمت System Setting به Addon Modules بروید
مطابق تصویر Multi Gateways Portal را فعال کنید و سپس کد لایسنس خریداری شده را در قسمت شماره ۳ قرار دهید
با انتخاب گزینه ۲ در زمانی که ماژول را غیر فعال می کنید اطلاعات و تراکنش ها پاک نمی شود
باکس شماره ۳ محل درج کد لایسنس می باشد ( هر کد لایسنس برای یک سایت می باشد)
گزینه های شماره ۴ سطح دسترسی به ماژول را مشخص می کند
از منوی Addons روی Multi Gateways Portal کلیک کنید، ( مطابق تصویر زیر)
در این صفحه سه زبانه ی :
۱- لیست پرداخت ۲-مدیریت درگاه ۳-تنظیمات را پیش روی خود دارید.
۱ – لیست پرداخت
یک جدول از تمامی تراکنش های صورت گرفته توسط کاربران شماست. این تراکنش ها در ۶ وضعیت مختلف میتوانند قرار بگیرند که این وضعیت ها اعم اند از :
- payment : زمانی که کاربر بر روی دکمه ی پرداخت میزند پس از تایید صورتحساب آن ، وضعیت تراکنش به payment تبدیل میشود.
- payment_pending : کاربر به صفحه ی درگاه فرستاده شده و در حال پرداخت میباشد.
- pending_verify : کاربر پرداخت خود را انجام داده است و منتظر تاییدیه ی بانک هستیم.
- done : تراکنش با موفقیت پرداخت شده است.
- reject : تراکنش نا موفق بوده است.
* اگر تراکنش به هر دلیلی ناموفق بود علاوه در قسمت system logs در همین جدول در ستون علت رد نوشته خواهد شد.
و) pending_accounter : اگر پرداخت به صورت غیر درگاهی باشد ( کارت به کارت ، شبا ، انتقال پول به حساب ) وضعیت تراکنش اینگونه میماند تا حسابدار تراکنش را تایید و یا رد کند. دکمه های تایید / رد در صورتی که وضعیت تراکنش pending_accounter باشد در ستون فعالیت ظاهر خواهد شد. متن رد تراکنش بصورت یک پاپ آپ از ایشان گرفته میشود و علاوه بر ذخیره در جدول در قسمتی از متن تیکتی که در ادامه توضیح خواهیم داد نیز نشان داده میشود.
جدول لیست پرداخت ۱۰۰۰ تراکنش آخر را نشان میدهد و در قسمت سرچ جدول میتوانید در میان این تعداد از رکوردهای خود جست و جو کنید، در صورت نیاز به جست و جو در تمامی رکوردهای پایگاه داده میتوانید از Search/Filter بالای جدول استفاده نمایید. با کلیک بر روی نام هر یک از ستون ها میتوانید جدول را بر اساس آن ستون مرتب کنید.
۲-مدیریت درگاه :
در این قسمت درگاه های بانکی مورد نظر خود را اضافه میکنید. بدین صورت که با کلیک بر روی درگاه جدید یک پاپ آپ در صفحه باز میشود ، نام درگاه مورد نظر خود را از لیست درگاه ها انتخاب میکنید و پس از آن بنا بر نیاز بانک مقصد تنظیمات مربوطه به شما نمایش داده خواهد شد ؛ کافی است مقادیر دریافتی از بانک را جایگذاری نمایید تا درگاه به لیست درگاه ها اضافه شود.
- نام دلخواه درگاه : برای مدیریت و کنترل درگاه های مختلف و یا یکسان از یک بانک نام های دلخواه بگذارید تا کاربران نیز آسوده تر دسترسی داشته باشند.
- ضریب : بعنوان مثال اگر واحد پولی شما تومان است و واحد پولی درگاه انتخابی ریال می باشد باید نرخ تبدیل تومان به ریال که ۱۰ است را بعنوان ضریب وارد نماید.
- اولویت : درگاه های شما بر اساس اولویت در صفحه ی پرداخت کاربر چینش میشوند پس اگر درگاهی برای شما اولویت اول است عدد ۱ و درگاه بعدی را ۲ وارد نمایید.
- واحد پولی : بر اساس تنظیمات خود در قسمت system setting>currencies واحد پولی درگاه خود را انتخاب نمایید.
- رسمی : با انتخاب این گزینه درگاه ساخته شده را بعنوان درگاه رسمی خود معرفی میکنید و این بدین معناست که کاربر با پرداخت توسط این درگاه میتواند از شما درخواست صورتحساب رسمی کند؛ متعاقبا بر روی مبلغ صورتحساب مبالغ ارزش برافزوده و مالیات بر اساس تنظیماتsystem setting>Tax Configuration>Tax Rules محاسبه میشود. ( نکته مهم : در صورتکی شما به صورت کلی تمامی فاکتور ها را رسمی یا غیر رسمی صادر می کنید این گزینه را انتخاب نکنید ، برای حذف عبارت “”برخلاف درخواست شما”” کد های موجود در فایل در مسیر modules\addons\multiGateWay\templates\customer\official_gateway_alert.tpl را حذف کنید )
- لازمه ی انتخاب گزینه ی رسمی انجام تنظیمات رسمی در زبانه ی تنظیمات میباشد که جلوتر آن را توضیح خواهیم داد.
وضعیت درگاه ها به سه صورت فعال ، غیر فعال و موقتا غیر فعال میباشد؛ وضعیت موقتا غیر فعال هنگامی رخ میدهد که اشکالی در درگاه و پرداخت از طرف بانک پیش آید و به تعداد مشخصی درگاه خطای اتصال به بانک بدهد. این تعداد مشخص در بخش تنظیمات قابل تنظیم است. وضعیت های فعال و غیر فعال هم بصورت دستی در اختیار شماست بدیهی است در صفحه ی پرداخت کاربر فقط درگاه های فعال نمایش داده میشوند.
هم چنین میتوانید برای درگاه ها از کشورهای مختلفی عدم دسترسی قرار دهید (توجه داشته باشید این قابلیت فقط برای درگاه هایی قابل تنظیم است که منحصرا برای آی پی های ایران یا اصطلاحا ایران اکسس نباشد.)
۳-تنظیمات :
این قسمت به سه بخش تقسیم میشود که عبارتند از :
الف) تنظیمات صدور صورتحساب رسمی :
مهم و ضروری : در ابتدا باید توجه داشته باشید در صورتی تنظیمات صدور صورتحساب رسمی را فعال کنید که می خواهید کاربران حق انتخاب پرداخت به صورت رسمی (با ارزش افزوده) یا غیر رسمی (بدون ارزش افزوده) را داشته باشند ( اگر همه صورتحساب ها به صورت رسمی یا به صورت غیر رسمی می باشد نباید این تنظیمات را فعال کنید )
ابتدا در قسمت system setting> Custom Client Fields یک فیلد از نوع checkBox برای صورتحساب های رسمی خود انتخاب کنید تا کاربر با انتخاب این گزینه در پروفایل خود تمایلش را برای دریافت صورتحساب رسمی اعلام نماید سپس از لیست ، فیلد رسمی خود را انتخاب نمایید. شما میتوانید برای صدور صورتحساب رسمی یک حداقل مبلغ شارژ تنظیم کنید و در نهایت میتوانید صدور صورتحساب های رسمی خود را به نوع افزایش اعتبار منتهی کنید. ( فرضا به کاربر خود اطلاع می دهد فاکتور رسمی برای شارژ های بالا ۱۰۰۰۰۰ تومان صادر می شود )
ب) تنظیمات درگاه
در صورت بروز خطا از سمت درگاه و عدم پذیرش کاربر در صفحه ی پرداخت یک خطا ذخیره میشود و پس از یک تعداد خاص(پیشفرض ۳ بار)وضعیت درگاه به حالت موقتا غیر فعال تبدیل میشود، در اینجا شما میتوانید تعداد مجاز برای بروز این خطا ها را تنظیم نمایید.
سیستم به صورت خودکار در هر بار اجرای کران بررسی می کنید و در صورت رفع شدن مشکل توسط شرکت PSP در گاه را مجدد فعال خواهد کرد
ج) تنظیمات تیکت
در این قسمت تیکتی را که برای کاربر پس از رد شدن پرداخت غیر آنلاین (کارت به کارت و … ) توسط ادمین مالی یا حسابدار می رود را میتوانید قالب دهی کنید. نحوه ی قالب دهی بدین صورت است که اطلاعات پرداخت و کاربر را بصورت زیر در اختیار دارید و میتوانید با ادغام آنها با متن دلخواه خود یک تیکت پویا و یکسان برای تمام مشترکین خود داشته باشید.
شماره صورتحساب : @invoiceId@ – نام و نام خانوادگی کاربر : @username@
مبلغ صورتحساب : @amount@ – علت رد کردن :@refund_note@
بصورت مثال
موضوع : @username@ عزیز پرداخت کارت به کارت شما رد شد.
متن پیام : پرداخت کارت به کارت شما به مبلغ @amount@ برای صورتحساب شماره ی @invoiceId@ رد شد
علت رد : @refund_note@
نکات اختصاصی در خصوص درگاه ها
درگاه پاسارگاد لطفا فایل certificate را در هاست خود بارگذاری کنید و در افزودن/ویرایش در گاه در فیلد certificate ادرس فایل را قرار دهید (مثل /home/domain/public_html/certificate.crt )
درگاه ایرانکیش لطفا کد های PUBLIC KEY را در فایلی قرار دهید و فایل PUBLIC KEY را در هاست خود بارگذاری کنید و در افزودن/ویرایش در گاه در فیلد PUBLIC KEY ادرس فایل را قرار دهید (مثل /home/domain/public_html/PUBLICKEY.txt )
سخنی با توسعه دهندگان
قالب های و متن های درج شده در هر صفحه به صورت فایل tpl می باشد و شما می توانید هر تغییر لازم است روی انها اعمال کنید
برای افزودن درایور درگاه به لیست درایورهای موجود ابتدا یک فولدر با نام درایور خود در modolues>addons>gateway>Drivers>Yourdriver بسازید. درون فولدر ساخته شده سه فایل باید بگذارید :
۱-icon.* : این فایل حتما بایستی به همین نام باشد اما پسوند فایل اهمیتی ندارد. برای آیکون درگاه شما استفاده میشود.
۲- یک کلاس php برای نوشتن متدهای پرداخت همنام با فولدر ساخته شده بسازید. در کلاس خود حتما متدهای verify pay ,purchase, __construct, را باید تعریف نمایید.
برای راحتی کار یک متد هم برای ترجمه ی کد خطای بانک تعریف نمایید.
*به کوچک و بزرگ بودن نام ها دقت نمایید و برای راحتی کار به درایورهای موجود رجوع کنید.
۳- یک فایل php به نام config.php به فرمت زیر بسازید.
return [
'drivers' => [
‘yourdriver’ => [
‘key1’ => ‘value1’,
‘key2’ => ”,
‘key3’ => ”,
],
],
‘map’ => [
‘ yourdriver ‘ => \multiGateWay\gateWay\Drivers\Yourdriver\Yourdriver::class,
]
];
توجه: key های که بدون value باشد را در زمان فعال سازی از مدیر whmcs دریافت می کند – در هر بار در خواست driver ماژول اطلاعات فایل config به همراه اطلاعات ذخیره شده توسط مدیر سایت را به driver می دهد
نکات مهم و ضروری دیگر:
- زمانی که در خواست تراکنش توسط کاربر ایجاد می شود ماژول یک کد یکتا برای این درخواست ایجاد می کند ( این کد توسط ماژول به شما داده می شود) ، شما باید با این کد callback را به لینک whmcs کاربر برگردانید
whmcsURL.tld/modules/gateways/callback/multi_gateWay.php?uuid=uuidcodexampleforbaclbackاین کد در دیتابیس منحصر به تراکنش می باشد و شما در هر مرحله می توانید با این کد ردیف تراکنش را در جدول
mod_multigateway_transaction
پیدا و بروز رسانی کنید - در زمان برگشت کاربر از بانک همه دیتاهای که بانک برای ماژول ارسال می کند در ستون json_response به صورت json ذخیره می شود ، شما با uuid به این اطلاعات دسترسی دارید لطفا تغییرات دلخواه را روی دیتا انجام دهید و در صورت نیاز تراکنش را رد کنید در صورت تایید تراکنش لطفا مقدار ستون های card_num و fee را در صورت نیاز تغییر دهید
در صورت نیاز از فایل نمونه که برای به پرداخت نوشته شده است استفاده نمایید
مستندات به پرداخت بانک ملترمز: licenseha.com
موفق باشید
آخرین تغییرات ماژول
نسخه ۲.۲ : (۱۴۰۲/۰۲/۲۰)
بروزرسانی با تغییرات اعمال شده در گاه ها
افزودن خطا های بیشتر برای درگاه ها
نسخه ۲.۱ : (۱۴۰۲/۰۸/۰۱)
رفع مشکلات گذارش شده توسط کاربر .
بهینه سازی قسمت پرداخت
نسخه ۲.۰ : (۱۴۰۲/۰۲/۰۱)
منتشر شد .
نسخه ۱.۰ : (۱۴۰۱/۱۰/۰۸)
منتشر شد .