آموزش اتصال به درگاه زرین پال با 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 را دامنه خود بدهید .
لیست نظرات
واقعا عالیییییییییییییی