Sama gateway library for Laravel. Some test chnages
rmazarei/sama-laravel-payment-rmazarei is a Laravel package for sama gateway library for laravel. some test chnages.
It currently has 0 GitHub stars and 7 downloads on Packagist.
Install it with composer require rmazarei/sama-laravel-payment-rmazarei.
Discover more Laravel packages by rmazarei
or browse all Laravel packages to compare alternatives.
Last updated
Sama Gateway library for Laravel based on Sama API
کتابخانه درگاه پرداخت سما برای لاراول براساس ایپیآی سما
Use composer to install this package
برای نصب و استفاده از این پکیج می توانید از کامپوزر استفاده کنید
composer require sama-ir/sama-laravel-payment
Add your token to .env file
توکن خود را اضافه کنید
SAMA_GATEWAY_TOKEN=abcd
You can also set token at runtime.
امکان تعیین توکن در حین اجرا نیز وجود دارد که در ادامه توضیح داده خواهد شد.
$response = sama()
// ->token('abcd') // تعیین توکن در حین اجرا - اختیاری
->amount(10000) // مبلغ تراکنش
->request()
->clientId('0a1dca49-96bb-4318-a7cb-ebf2a6281003') // مقدار شناسه تراکنش در فروشگاه (باید یکتا باشد)
->callbackUrl('http://localhost:8000/api/payment_callback') // آدرس برگشت پس از پرداخت
->mobile('09123456789') // شماره موبایل مشتری - اختیاری
->send();
if (!$response->success()) {
return [
$response->error()->code(),
$response->error()->detail(),
$response->error()->message(),
$response->error()->extra()
];
}
// ذخیره اطلاعات در دیتابیس
// ...
// هدایت مشتری به درگاه پرداخت
return $response->redirect();
$price = request()->post('price'); // دریافت پارامتر ارسال شده توسط سما
$requestId = request()->post('request_id'); // دریافت پارامتر ارسال شده توسط سما
$resultCode = request()->post('result_code'); // دریافت پارامتر ارسال شده توسط سما
$processId = request()->post('process_id'); // دریافت پارامتر ارسال شده توسط سما
$savedPriceInDb = 10000;
$clientId = '0a1dca49-96bb-4318-a7cb-ebf2a6281003';
if ($resultCode != 0 || $price != $savedPriceInDb) {
// Payment was not successful or someone tampered with the data
return ["status" => "failed", "message" => "پرداخت ناموفق"];
}
// Successful payment, lets verify with Sama Gateway
$response = sama()
// ->token('abcd') // تعیین توکن در حین اجرا - اختیاری
->verification()
->requestId($requestId)
->clientId($clientId)
->send();
if (!$response->success() || $response->isPaid() === false) {
// $response->error()->code(),
// $response->error()->detail(),
return ["status" => "failed", "message" => "پرداخت ناموفق"];
}
if($savedPriceInDb != $response->$price) {
// Someone tampered with the data, prices do not match
return ["status" => "failed", "message" => "پرداخت ناموفق"];
}
// پرداخت موفقیت آمیز بود
echo $response->isPaid(); // === true means successful payment
echo $response->paymentId();
echo $response->requestId();
// دریافت شماره پیگیری تراکنش و انجام امور مربوط به دیتابیس
// Save referenceNumber and transactionCode in the database
echo $response->referenceNumber();
echo $response->transactionCode();
return ["status" => "ok", "message" => "پرداخت موفق"];