در این قسمت قصد دارم تغییراتی را انجام داده تا اگر یک کاربر اطلاعات خود را به درستی وارد کرد و یا قصد خرید یک محصول را داشت بتوانید پس از انتخاب آن محصول به صفحه پرداخت (درگاه پرداخت در PHP) هدایت شود. آنچه که به صورت اصلی مورد بررسی قرار می گیرد ویرایش صفحه ی ثبت نام کاربران، تایید ایمیل و صفحه پرداخت (checkout.php) است.
ضمنا توجه داشته باشید که یک صفحه جدید با عنوان payment.php خواهیم ساخت و در بخش دیگر در مورد درگاه های پرداخت اینترنتی مستقیم و واسطه ای صحبت می کنیم. در نهایت یک درگاه پرداخت واسط به نام زرین پال را در پروژه خود اعمال خواهیم کرد.
اگر به فایل checkout.php دقت کرده باشید، یک شرط اساسی مطرح شده است، که فلوچارت آن را در تصویر زیر مشاهده می نمایید.
همانگونه که مشاهده می کنید بار اول که ما فایل checkout.php را اجرا می کنیم در متغییر $_ SESSION['customer_email']
مقداری قرار ندارد (یا بهتر بگویم اصلا وجود نداشت) بنابراین کاربر به صفحه customer_login.php هدایت می شود.
حالا فرض کنید که ما می خواهیم کاری کنیم که مشتری پس از وارد کردن اطلاعات و ثبت کردن آنها و تایید ایمیل به صفحه پرداخت بانکی (payment.php) هدایت شود برای انجام اینکار طبق فلوچارت بالا باید متغییر سراسری $_ SESSION['customer_email']
را با مقدار خاصی پر کنیم (با مقدار ایمیل مشتری هنگامی که ثبت نام می کند)؛ اینجاست که اگر به فایل emailconfirm.php که در قسمت قبل ساختیم دقت کرده باشید، پس از تایید ایمیل ما $_ SESSION['customer_email']
را با ایمیل داده شده توسط مشتری پر کرده ایم، برای دیدن این کدها به آدرس C:\wamp\www\ecommerce مراجعه نمایید و فایل emailconfirm.php را با Notepad++ باز کنید.
به کدهای موجود در تصویر زیر دقت کنید.
همانطور که مشاهده می کنید، ما در این دو قسمت $_SESSION['customer_email']
را مقدار دهی کرده ایم.
اگر دقت کرده باشد در تصویر بالا نیز یک شرط اساسی مطرح شده است (شرط اساسی این شرط if($check_cart == 0)
است) . این شرط این موضوع را بیان می کند که آیا در سبد خرید مشتری محصولی وجود دارد یا خیر؟ اگر متغییر $check_cart
برابر صفر باشد (یعنی سبد خرید مشتری خالی باشد) او را به برگه my_account.php هدایت خواهیم کرد و در غیر این صورت او را به برگه checkout.php هدایت می کنیم.
حالا همانطور که در فلو چارت اول داشتیم شرط if(isset($_SESSION['customer_email']))
برقرار می شود و به صفحه payment.php خواهیم رفت.
اما دقت کنید که چون برگه payment.php را نداریم باید آن را بسازیم بنابراین به آدرس C:\wamp\www\ecommerce می رویم و یک فایل php با نام payment.php می سازیم. به تصویر زیر نگاه کنید.
دقت کنید که در فایل payment.php نیز باید درگاه پرداخت در PHP را که با زرین پال نوشته شده است، قرار دهیم. برای درک چرایی این موضوع به توضیحات زیر دقت نمایید.
هر کسب و کار اینترنتی حتما باید درگاه پرداخت اینترنتی داشته باشد تا بتواند تراکنش های مالی را بین سایت خودش با مشتری برقرار کند. همه بانک های کشور ما درگاه پرداخت اینترنتی دارند و برای اینکه بتوانید این درگاه های را در سایت خود، مورد استفاده قرار دهید، کار سختی پیش رو نخواهید داشت، کافی است که نماد اعتماد الکترونیکی (enamad) را برای سایت خودتان تهیه نمایید.
البته گرفتن enamad نیاز به مجوزهای مربوطه و مراحل اداری خودش دارد که تقریبا زمانگیر است ولی یک کسب و کاری که تازه راه اندازی شده است و اگر قرار باشد دنبال کامل کردن مدارک خودش باشد تا بتواند نماد اعتماد الکترونیکی (enamad) را دریافت کند، قدری معطل می شود و ممکن است مشتریان خود را نیز از دست بدهد. در نتیجه نمی تواند درگاه پرداخت مستقیم از بانک را بگیرد بنابراین تنها راه استفاده از درگاه پرداخت واسطه ایی می باشد.
یکی از درگاههای پرداخت واسطه ایی بسیار معروف زرین پال می باشد. البته درگاههای پرداخت واسطه متعددی وجود دارد. ولی ما قصد داریم بر روی زرین پال تمرکز کنیم.
گرفتن درگاه پرداخت واسطه ایی مثل زرین پال بسیار راحت است؛ در عوض درصد ناچیزی از تراکنش مالی را در هنگام رد و بدل شدن پول برداشت می کند.
من هم تصمیم دارم در این دوره آموزشی نحوی استفاده از این درگاه پرداخت واسطه ای (زرین پال) را آموزش دهم.
اولین کاری که باید انجام دهید این است که وارد آدرس ثبت نام سایت زرین پال شوید و مراحل ثبت نام را طی کنید.
بعد از ثبت نام باید به پنل کاربری خودتان وارد شوید، در منوی بالای صفحه یک تب به نام درگاه دارد که باید به آنجا مراجعه نمایید. در این قسمت مدارک خاصی از شما درخواست می گردد، مثل کارت ملی، تصویر کارت بانکی ، شماره شبا و ... که مدارک خاصی نیستند. شما وقتی این مدارک را به سایت ارائه دادید، بعد از چند ساعت که معمولا نباید پیش از 24 ساعت کاری شود به شما یک کلید داده می شود (به این کلید اصطلاحا MerchantID گفته می شود) که آن کلید در واقع کلید شناسایی شما است که باید در کدهای خودتان از آن کلید شناسایی استفاده کنید.
دقت کنید که درگاه پرداخت بانک ها بر روی ip کار می کنند. این یعنی اینکه هنگامی که می خواهند به شما درگاه پرداخت اینترنتی بدهند، از شما ip سرور را درخواست می کنند زیرا هنگامی که درخواستی برای آنها می آید بررسی می کنند که آیا درخواست از این ip بوده است یا خیر؟
اگر درخواست از ip سرور بود، جواب درخواست را می دهند در غیر اینصورت درخواست را پاسخ نمی دهند. بنابراین امکان تست این نوع درگاهها در حالت localhost وجود ندارد (در نتیجه اگر بخواهیم برنامه ایی را که نوشته ایم مورد تست قرار دهیم، امکان انجام آن برای ما مقدور نخواهد بود، چون ip ما valid نیست).
اما زرین پال اینگونه نیست و بعد از اینکه کلید شناسایی (همان MerchantID ) خود را دریافت کردید می توانید به سادگی از آن در کدهای خود استفاده نمایید و در حالت localhost نیز قابل استفاده است.
دقت نمایید که همه سایت های بانکی (که درگاه پرداخت مستیم به ما می دهند) و سایت های ارائه دهنده درگاه پرداخت واسطه ایی (نظیر زرین پال)، یک قسمت تحت عنوان آزمایشگاه یا نمونه کدها دارند که شما باید وارد این بخش شوید . به تصاویر زیر نگاه کنید که به طور خاص این قسمت ها را در زرین پال به شما نمایش می دهد.
ابتدا وارد سایت زرین پال شوید و در منوی بالای صفحه، تب آزمایشگاه را انتخاب کنید.
و بعد از آن نمونه کدها را انتخاب کنید.
همانطور که در تصویر زیر مشاهده می کنید تعداد زیادی نمونه کد دیده می شود، این نمونه کدها تقریبا تمام زبانهای برنامه نویسی را پوشش می دهند. ولی ما دنبال نمونه کد php هستیم، بنابراین گزینه " نمونه کد استفاده از وب سرويس نوشته شده به زبان PHP" را انتخاب می کنیم و بر روی دکمه "دانلود راهنما" کلیک کنید.
سپس می توانید فایل های راهنما ( فیلم آموزشی، کتابچه و کدهای مورد نیاز ) را دانلود نمایید.
دقت کنید که فایل های راهنما را حتما دانلود کنید و فیلم های آموزشی و کتابچه را به دقت چندین بار مطالعه نمایید، چرا که من دوست دارم به نحو احسن قسمت آینده را درک کنید.
خب دوستان عزیزم به پایان این قسمت از آموزش رسیدیم، انشاالله در قسمت آینده سعی می کنم که کدهای زرین پال را در میان کدهای payment.php سایت خودمان قرار دهم و با هم یک بار برنامه را تست کنیم. تا قسمت آینده شما را به خدای بزرگ می سپارم . موفق باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.