shopid
shopid
خواندن ۴ دقیقه·۳ سال پیش

درگاه پرداخت زرین پال برای لاراول

این آموزش فقط برای لاراول نیست و شما با هر فریم ورک php یا بدون فریم ورک میتونید از این پکیچ استفاده کنید

برای فهمیدن این آموزش شما باید آشنایی نسبی با لاراول یا php و شئ گرایی داشته باشید و درواقع این برای مرحله ای هست که کاربر سفارش ثبت کرده و فاکتور صادر شده حالا میخواید به درگاه پرداخت متصل بشید

نسخه آپارات این آموزش در اینجا مشاهده کنید

نسخه یوتوب این آموزش در اینجا مشاهده کنید

https://www.aparat.com/v/8pHjt

https://www.youtube.com/watch?v=5sWpvaOKEhw

شروع:

برای ایجاد قابلیت درگاه پرداخت زرین پال توی سایت یا اپ شما اول نیاز دارید که توی سایت زرین پال اکانت داشته باشید و سایت یا اپلیکیشنتونو ثبت کنید و تایید بشید

ما اینجا تصور میکنیم که شما همه ی مراحلو انجام دادین و کد درگاه هم گرفتین

کد درگاه توی زرین پال یه همچین چیزیه xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

که توی سایت زرین پال توی اکانتتون هست و ازونجا باید کپیش کنید

خب میریم توی پروژه ی لاراولمون

اول از همه پکیچ زیر باید نصب کنید , توی کامند لاین از طریق کامپوزر این دستور اجرا کنید :

composer require shopid/zarinpal

سورس : https://github.com/shopid-dev/zarinpal-php

این پکیج خیلی سبکه و راحت نصب میشه

و تمام مقادیر بازگشتی و خطا ها به صورت json هست

خب حالا باید اینو توی کنترلرمون استفاده کنیم

روش استفاده هم خیلی راحته اول باید ایمپورتش کنیم

use shopid\zarinPal;

بعد توی متد مورد نظرمون یه شئ ازش ایجاد میکنیم

ایجاد شئ :


$zarinpal = new zarinPal([ &quotmerchantId&quot => &quotxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot, ]);

پارامتر merchantId همون کد درگاه هست که از زرین پال میگیرید

خب حالا با این شئ که ایجاد کردیم میتونیم درخواست پرداخت ارسال کنیم و یا پرداخت وریفای کنیم

ایجاد درخواست پرداخت :

try { $request = $zarinpal->apiRequest( [ &quotcallbackurl&quot => &quothttps://www.mywebsice.com/zarinpalverify/pay,ment-1234&quot, &quotamount&quot => &quot1000&quot, &quotdescription&quot => &quotpayment #999&quot, &quotemail&quot => &quotuser @gmial.com&quot, &quotmobile&quot => &quot09120000000&quot, ] ); var_dump(json_decode($request)); } catch (Exception $error) { var_dump(json_decode($error->getMessage())); }

پارامتر callbackurl همون آدرسی هست که کاربر بعد از پرداخت چه موفق چه ناموفق به سایت یا اپ برمیگرده و باید وضیعت پرداخت مشخص بشه

پارامتر amount همون مبلغ هست (به ریال)

پارامتر description توضیحات هست که مثلا میشه پرداخت سفارش شماره فلان ..

ایمیل و موبایل هم ایمیل و شماره ی مشتری هست (اینا آپشنال هست و میتونید مال خودتونم وارد کنید)

تموم شد !

اگه خطایی توی روند درخواست پیش نیاد به شما یک url برگشت داده میشه که کاربر باید به اون هدایت کنید حالا با ‌‌‌هدر یا اگه برنامتون فقط api هست اونو به فرانت بفرستید و ازش استفاده کنید همچنین مقدار authority هم جداگانه دارید که توی دیتابیس ذخیره کنید و بعد از بازگشت برای صحت پرداخت ازش استفاد کنید (البته خود زرین پال هم بعد از بازگشت به سایت شما این مقدار به صورت GET براتون ارسال میکنه و میتونید اونجا هم ازش استفاده کنید)

بررسی صحت پرداخت :

خب حالا کاربر بعد از پرداخت موفق یا نا موفق دوباره به سایت شما برمیگرده و شما باید بررسی کنید که پرداخت انجام شده یا نه و عملیات مربوط به سفارش انجام بدین

try { $verify = $zarinpal->verify( [ &quotauthority&quot => &quotA00000000000000000000000000000000000&quot, &quotamount&quot => &quot1000&quot ] ); var_dump(json_decode($verify)); } catch (Exception $error) { var_dump(json_decode($error->getMessage())); }

پارامتر authority همون کد درخواست پرداخته که زرین پال براتون برمیگردونه خودتون هم میتونید از دیتابیس فراخوانی کنید

قیمت هم که همون مبلغ پرداختی هست

اینجا هم اگه خطایی دریافت نکنید یعنی پرداخت انجام شده و تمام

کد های خطا ها هم اینجا میتونید ببنید

https://docs.zarinpal.com/paymentGateway/error.html

همچنین کد خطای 9999 مربوط به خطای شبکه هست

زرین پالدرگاهدرگاه پرداختلاراولphp
shopid.ir ->open source online shop solutions
شاید از این پست‌ها خوشتان بیاید