ابتدا فایل Index.php را با اطلاعات مربوط به تراکنش اجرا مینماییم.
در صورت استفاده از سندباکس مقدار api را برابر مقدار sandbox و در غیر اینصورت برابر با کد درگاه مربوطه قرار میدهیم.
<?php
include_once("functions.php");
$api = 'sandbox';
$amount = 10000;
$mobile = "09123456789";
$email = "example@gmail.com";
$description = "خرید کالا";
$callback = 'http://loclhost/verify.php';
$result = token($api, $amount, $callback, $mobile, $email, $description);
$result = json_decode($result);
if (!empty($result->success)) {
$_SESSION['token'] = $result->result->token;
header("Location:" . $result->result->url);
} else {
echo "<h1>تراکنش با خطا مواجه شد</h1>";
}
جهت verify کردن تراکنش بعد از پرداخت فایل verify.php را اجرا میکنیم.
<?php
include_once("functions.php");
if (!empty($_GET["status"]) && $_GET["status"] == "success") {
$api = 'sandbox';
$token = @$_SESSION['token'];
$amount = 10000;
$result = json_decode(verify($api, $token, $amount));
if (!empty($result->success)) {
echo "<h1>تراکنش با موفقیت انجام شد</h1>";
} else {
print_r($result->errors);
echo "<h1>تراکنش با خطا مواجه شد</h1>";
}
} else {
echo "<h1>تراکنش با خطا مواجه شد</h1>";
}
در فایل functions.php توابع مربوطه قرار دارد:
<?php
/**
* Created by PhpStorm.
* User: Shepa
* Date: 6/19/2019
* Time: 4:25 PM
*/
session_start();
function token($api, $amount, $callback, $mobile, $email, $description)
{
return curl_post('https://sandbox.shepa.com/api/v1/token', [
'api' => $api,
'amount' => $amount,
'callback' => $callback,
'mobile' => $mobile,
'email' => $email,
'description' => $description,
]);
}
function verify($api, $token, $amount)
{
return curl_post('https://sandbox.shepa.com/api/v1/verify', [
'api' => $api,
'token' => $token,
'amount' => $amount,
]);
}
function curl_post($url, $params)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
در صورت استفاده از سندباکس آدرس زیر:
https://sandbox.shepa.com
و در غیر این صورت آدرس زیر را قرار می دهیم:
http://merchant.shepa.com/