ایجاد یک روش پرداخت سفارشی در اپن کارت: قسمت سوم

تاریخ : ۱۶ بهمن ۱۳۹۴ | دسته بندی : اپن کارت | برچسب ها : ,,,

اگر تا اینجای مجموعه آموزشی با ما همراه بوده باشید ، با نوع ساختار فایل که برای روش پرداخت سفارشی مان در back-end نصب کردیم ، آشنا شده اید . اگر هنوزقسمت های پیشین را نخوانده اید ، توصیه می کنم حتما پیش از خواندن این مقاله ، قسمت های پیشین را بخوانید .

ما از یک نصب ساده برای بخش front-end هم استفاده می کنیم .

نصب کنترلر

در اینجا فایل کنترلر را در catalog/controller/payment/custom.php ایجاد کنید . محتویات زیر را در فایل کنترلر custom.php تازه ایجاد شده جایگذاری کنید .

همان طور که می توانید ببینید ، دو روش متفاوت داریم . کار روش index نصب داده ها در زمانی است که فرم به درگاه پرداخت شخص ثالث تحویل داده می شود ، و روش callback برای رسیدگی به داده های پاسخ ارسالی از سوی درگاه پرداخت به کار می رود . همان طور که پیشتر هم گفتیم ، در صورت نیاز می توانید روش های پرداخت بیشتری تعریف کنید.  دراین مثال ، روند کار را تا حد امکان ساده نگه داشته ایم .

حال هر بخش را به تفصیل توضیح می دهیم . کارمان را با روش index شروع می کنیم .

ابتدا ما فایل زبانی را بارگذاری کرده و مقدار دکمه Confirm را تنظیم کرده ایم . علاوه براین ، مشخصه attribute را هم تنظیم کرده ایم که فرم ارسال پرداخت از آن استفاده می کند . شما باید این را به عنوان درگاه پرداخت خودتان تغییر دهید .

سپس ، اطلاعات سفارش مربوط به جلسه فعال کاربر را بارگذای کرده ایم .

درصورتی که اطلاعات سفارش در دسترس بود ، جلوتر رفته و داده های مربوط به متغیرهای مخفی را که برای ارسال فرم به URL درگاه پرداخت به کار می روند ، نصب می کنیم . اگر به دقت کد را بررسی کنید ، متوجه می شوید که ما از پارامترهای سفارشی مان یعنی text_config_one وtext_config_two  که در فرم پیکربندی admin در قسمت پیشین این مجموعه آموزشی نصب کردیم نیز استفاده کرده ایم .

متغیر مهم دیگری که باید به آن توجه کنیم ، callbackurl است که آن URL را نگه می دارد که درگاه پرداخت از آن برای بازگرداندن کاربر به فروشگاه ما پس از فرآیند پرداخت استفاده می کند . و بله ، با نگاهی به URL مربوط به payment/custom/callback متوجه می شوید که آن روش callback  را فراخوانی خواهد کرد ، که در این لحظه خواهیم دید .

در پایان ، فایل قالب سفارشی مان یعنی custom.tpl  را تخصیص داده و view را نمایش می دهیم .

حال کد روش callback را بازبینی می کنیم . این روش در زمانی که کاربر از سایت درگاه پرداخت به فروشگاه بازمی گردد ، فراخوانی خواهد شد .

ابتدا پیش از اینکه جلوتر برویم ، بررسی می کنیم که متغیر orderid موجود باشد . در غیر این صورت ، پیشروی مان را متوقف می کنیم .

سپس ، اطلاعات سفارش را از پایگاه داده ها بارگذاری می کنیم . و در پایان ، بررسی می کنیم که نشانگرsuccess را از پاسخ درگاه پرداخت دریافت کرده ایم یا خیر . در صورت  دریافت ، اطلاعات وضعیت سفارش را طبق آن به روز رسانی می کنیم .

این روند نصب کنترلر بود . ساده است !

مدل قراردادی

همان طور که به طور احتمال می دانید ، OpenCart برای رسیدگی به کارهای داخلی فروشگاه قراردادها و استانداردهای خاص خودش را دارد . درخصوص نصب مدل مربوط به شناسایی روش پرداخت هم به همین صورت است . شما آن را با توجه به قراردادها نصب می کنید و آن به طور خودکار انتخاب خواهد شد .

در اینجا فایل مدل را در catalog/model/payment/custom.php ایجاد کنید . محتوای زیر را در فایل مدل تازه ایجاد شده custom.php جایگذاری کنید .

OpenCart از این کد در زمان فهرست بندی روش های پرداخت فعال در طول دوره وارسی استفاده می کند . در طول این روند ، OpenCart فهرست روش های پرداخت فعال را از back-end جمع آوری می کند و برای هر یک از آن ها بررسی می کند که آیا کلاس مدل مناسب موجود است یا خیر . روش پرداخت تنها در صورتی فهرست بندی می شود که یک کلاس مدل مرتبط موجود باشد .

آیتم مهم دراین روند نصب ،مقدار متغیرcode است . در مثال ما ، آن را به صورت custom تعیین کرده ایم ، به این معنی که هرگاه روش پرداخت را انتخاب می کنید و Continue را فشار می دهید ، URL مربوط به payment/custom را فراخوانی می کند ، که سرانجام فرم را برای درگاه پرداخت ما نصب می کند .

به طور خلاصه ، می توانیم بگوییم که وجود آن فایل برای شناسایی و عملکرد صحیح روش پرداخت در front-end اجباری است .

فایل های قالب و زبان

حال فقط باید فایل های زبانی و view را ایجاد کنیم . فایل زبانی را در catalog/language/english/payment/custom.php ایجاد کنید . محتوای زیر را در فایل زبانی تازه ایجاد شده custom.php جایگذاری کنید .

درک این روند آسان است : ما برچسب هایی را نصب کرده ایم که در طول وارسی در front-end به کار خواهند رفت .

حال جلوتر رفته و فایل قالب را در catalog/view/theme/default/template/payment/custom.tpl  ایجاد کنید . محتوای زیر را در فایل قالب custom.tpl تازه ایجاد شده جایگذاری کنید .

همان طور که ممکن است حدس زده باشید ، این همان فرمی است که زمانی که کاربر روی دکمه Confirm Button کلیک می کند ، ارسال می شود . ما متغیرهای مخفی و مقدارهای آن ها را که پیشتر در روش index کنترلر تعریف شده اند ، نصب کرده ایم .

حال نظری بر ظاهر آن در Front-end می اندازیم .

Front-end Checkout View

دراینجا روند کلی کار را مرور می کنیم :

  • ابتدا باید فایل مدل را برای روش پرداخت خود نصب کنید ، به طوری که بتوان آن را در زبانه Step 5 : Payment Method فهرست بندی کرد .
  • سپس هرگاه کاربر Custom Payment Method در زبانه پنجم را انتخاب می کند و روی دکمه Continue کلیک می کند ، OpenCart به طور ذاتی URL مربوط به payment/custom را فراخوانی می کند ، که این سرانجام روش index را فراخوانی می کند و فایل tpl را در زبانه ششم نمایش می دهد .
  • درپایان ، هنگامی که کاربر بر روی دکمه Confirm Order کلیک می کند ، فرم ارسال می شود و کاربر به سایت درگاه پرداخت منتقل می شود که فرآیند پرداخت در آن شروع می شود . پس از تکمیل فرآیند پرداخت ، کاربر به لطف وجود متغیر مخفی callbackurl به سایت ما بازگردانی می شود . البته اگر همه کارها آن طور که انتظار داریم پیش رود ، وضعیت سفارش به عنوان قسمتی از روش callback به روزرسانی می شود .

نتیجه گیری

دراین مجموعه آموزشی ، تقریبا نحوه نصب هر نوع روش پرداخت از طریق ایجاد ماژول روش پرداخت خودتان را شرح داده ایم . امیدواریم از این مجموعه لذت برده باشید و نکات مفیدی را هم آموخته باشید .

حسن موحد

عاشق طراحی وب سایت هستم و 8 سال هست در این زمینه فعالیت می کنم و تمرکزم بر روی خرسند نگه داشتن مشتری است .

ارسال نظر