آموزش اتصال به درگاه زرین پال با php + سورس (ویدیویی)

اتصال زرین پال با php – در این آموزش قصد داریم تا با استفاده از restful api که زرین پال در اختیار مان می گذارد صفحه پرداختی را ساخته و پس از پرداخت آن را تایید یا رد کنیم .
کار با api زرین پال بسیار ساده و روان است و کافی است این مقاله را مطالعه کنید تا بعد از آن به راحتی صفحه پرداخت خود را پیاده سازی کنید .
آموزش ویدیویی اتصال به زرین پال با PHP
لینک یوتیوب این آموزش .
ابتدا نیاز است که در زرین پال عضو شده و اطلاعات خود را وارد کنید تا به شما یک Merchant ID بدهد .
2 عمل اصلی request و verify در زرین پال
- با request در واقع اطلاعاتی از جمله merchant و هزینه پرداختی و … را ارسال می کنیم تا یک authority دریافت کنیم و پس از دریافت لینک پرداختی را ساخته و کاربر را به آن هدایت کنیم .
- با verify پس از این که کاربر از صفحه پرداخت مجدد به صفحه خودمان برگشت اطلاعاتی که رزین پال در query string به ما می دهد را گرفته و از آن استفاده می کنیم : از جمله authority که خیلی مهم است .
1- عمل request زرین پال ( فایل index.php )
دریافت مبلغ پرداختی و تنظیم اولیه اطلاعات جهت ارسال به زرین پال .
<?php $GLOBALS['title'] = "رپید کد - آموزش اتصال به زرین پال در PHP"; require_once $_SERVER['DOCUMENT_ROOT'] ."/parts/header.php"; ?> <form class="col-6 m-auto" action="" method="post"> <?php if(!empty($err_zarinpal)): ?> <p class="text-center p-2 rounded fw-bold bg-warning text-dark"><?= $err_zarinpal ?></p> <?php endif; ?> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1">ریال</span> </div> <input type="number" class="form-control text-center mb-3" name="amount" placeholder="قیمت ..."> </div> <input type="hidden" name="ref" value="zarinpal_request"> <center><input type="submit" class="btn btn-success ps-3 pe-3" value="خرید"></center> </form> <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/parts/footer.php"; ?>
و البته در بالای header.php توابع مورد نیاز مان را فراخوانی و همچنین در صورتی که از فرم index.php اطلاعاتی ارسال شد بررسی و اعتبار سنجی کرده و در صورت تایید کاربر را به صفحه پرداخت هدایت می کنیم .
<?php require_once $_SERVER['DOCUMENT_ROOT'] ."/inc/functions.php" ?> <?php if (!empty($_POST['ref'])) { if ($_POST['ref'] == "zarinpal_request") { if (!empty($_POST['amount']) && is_numeric($_POST['amount'])) { $res = requestZarinPal($_POST['amount'] , 194); $authority = $res['data']['authority'] ?? false; if ($res['data'] && $authority) { $url = payZarinPal($authority); header("Location: {$url}"); } else { $err_zarinpal = "خطا در اتصال به زرین پال"; } } } } ?>
2- عمل verify زرین پال ( zarinpal.php )
این فایل زمانی استفاده می شود که کاربر از صفحه پرداخت هدایت می شود به سایت خودمان مجددا .
<?php $GLOBALS['title'] = "رپید کد - آموزش اتصال به زرین پال در PHP"; require_once $_SERVER['DOCUMENT_ROOT'] . "/parts/header.php"; $authority = $_GET['Authority'] ?? null; $amount = $_GET['amount'] ?? null; $message = [ "text" => "", "css_class" => "" ]; if ($authority && ($amount && is_numeric($amount))) { $res = verifyZarinPal($authority, $amount); /* $res['data']['code'] : 100 -> Paid (first time page seen) 101 -> Verified (second time or more) */ if (!empty($res['data']['code']) && ($res['data']['code'] == 100 || $res['data']['code'] == 101)) { $amount_currency = $amount/10 . " تومان"; $message['text'] = "خرید موفق به مبلغ {$amount_currency}"; $message['css_class'] = "bg-success text-white"; } else { $message['text'] = "خرید ناموفق"; $message['css_class'] = "bg-danger"; } } else { $message['text'] = "پارامتر نامعتبر"; $message['css_class'] = "bg-danger"; } ?> <p class="text-center p-2 rounded fw-bold <?= $message['css_class'] ?>"><?= $message['text'] ?></p> <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/parts/footer.php"; ?>
خروجی برنامه پرداخت زرین پال

چند نکته قبل از استفاده از سورس :
- وارد functions شده و مقدار ZARINPAL_MERCHANT_ID را مطابق با مرچنت خود وارد کنید
- مقدار example.com در requestZarinPal را دامنه خود بدهید .
لیست نظرات
واقعا عالیییییییییییییی