aries / jeeb.io
jeeb.io cryptocurrency payment system wrapper
Fund package maintenance!
l.jeeb.io/obk861
This package is auto-updated.
Last update: 2025-03-14 01:20:41 UTC
README
پکیجی جهت استفاده از درگاه پرداخت رمزارزها توسط وبسایت jeeb.ioملزومات
- laravel 7+
- curl
نصب
با دستور زیر آخرین نسخهی پکیج رو نصب کنید
composer require aries\jeeb.io
حالا لازمه که با دستور زیر مایگریشنهای مورد نیاز پکیج رو منتشر کنید
php artisan vendor:publish --provider='Aries\Jeeb\JeebServiceProvider'
و حالا لازمه که مایگریشنها رو اجرا کنید
php artisan migrate
استفاده
برای کار کردن درست پکیج به سه روت نیاز داریم- یک روت که در اون تراکنش رو ایجاد کنیم
- یک روت برای زمانی که از درگاه برمیگردیم به سایت خودمون
- و یک روت برای پردازش وبهوک ارسالی از طرف سرور جیب
روت دوم اختیاریه، در صورتی که نخواید کاربر رو برای پرداخت به درگاه جیب بفرستید میتونید کیف پول ایجاد شده توسط جیب رو توی سایت خودتون نشون بدین و کاربر رو به درگاه هدایت نکنید.
رفع مشکل توکن روتها
پاسخهای ارسالی از طرف سرور جیب به صورت post هستن و این با csrf_token لاراول به مشکل میخوره.برای حل این مشکل باید روتهای
callback
و webhook
رو در مسیر app\http\Middleware\VerifyCrsfToken.php
استثنا کرد:
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ '/jeeb/callback', '/jeeb/webhook' ]; }
ایجاد تراکنش
شما میتونید با استفاده از فسادAries\Jeeb\Facades\Jeeb
و متود pay
یک ترانش جدید ایجاد کنید:
<?php use Aries\Jeeb\Facades\Jeeb; use Illuminate\Support\Facades\Route; Route::get('/jeeb/pay', function() { return Jeeb::pay() ->order(1234) # شماره سفارش ->from('irr') # ارز مبدا که در اینجا ریال ایران هستش ->with('btc/ltc/doge') # ارزهای قابل پذیرش که با / از هم تفکیک شده ->amount(1000000) # مبلغ تراکنش بر پایهی ارز مبدا که اینجا یک میلیون ریال هست ->callback('YOUR/CALLBACK/URL') # آدرس روتی که پس از پرداخت در درگاه جیب بهش برمیگردیم ->webhook('YOUR/WEBHOOK/URL') # آدرس روتی که قراره وبهوک رو پردازش کنه ->language('fa') # زبان رابط کاربری درگاه جیب ->process() # ارسال درخواست به سرور جیب ->redirect(); # انتقال کاربر به درگاه جیب });
بازگشت از درگاه (callback)
با استفاده از فسادAries\Jeeb\Facades\Jeeb
و متود callback
پاسخ سرور جیب رو هندل کنید.همچنین با استفاده از فساد
Aries\Jeeb\Facades\State
و متود message
مقدار stateId برگشت داده شده رو برای کاربر ترجمه کنید.
<?php use Aries\Jeeb\Facades\Jeeb; use Aries\Jeeb\Facades\State; use Illuminate\Support\Facades\Route; Route::get('/jeeb/callback', function() { $response = Jeeb::callback()->process(); $message = State::message($response->stateId); return view('path.to.your.callback.view', compact('response', 'message')); });
وبهوک
شما میتونید با استفاده از فسادAries\Jeeb\Facades\Jeeb
و متود webhook
پاسخهای ارسال شده از طرف سرور جیب رو هندل کنید.لازم به ذکره که به دلیل زمانبر بودن تایید تراکنش در بلاکچین باید منتظر ارسال پاسخ تایید از طرف سرور جیب به صورت وبهوک باشید و در صورت تایید شدن تراکنش با ststeId برابر ۴ میتونید محصول رو به کاربر تحویل بدید.
مبالغ پرداختی بیشتر یا کمتر از مقدار مشخص شده توسط شما بصورت خودکار به کاربر برگشت داده میشه.
<?php use Aries\Jeeb\Facades\Jeeb; use Illuminate\Support\Facades\Route; Route::get('/jeeb/webhook', function() { return Jeeb::webhook(); });
مشاهدهی لیست تراکنشها
برای مشاهدهی لیست تراکنشها به تفکیک وضعیت پرداخت میتونید از فسادAries\Jeeb\Facades\Jeeb
و متود transaction
استفاده کنید:
use Aries\Jeeb\Facades\Jeeb; public function transactions(Request $request) { switch($request->input('type')) { case 'confirmed': # تراکنشهایی که در بلاکچین تایید شدند. return Jeeb::transaction()->confirmed()->get(); case 'unConfirmed': # تراکنشهایی که در بلاکچین تایید شدند ولی شما هنوز آنها را تایید نکرده اید. return Jeeb::transaction()->unConfirmed()->get(); case 'pending': # تراکنشهایی که هنوز در بلاکچین تایید نشده اند. return Jeeb::transaction()->pending()->get(); case 'rejected': # تراکنشهایی که توسط کاربر لغو شده یا در زمان مقرر پرداخت نشدهاند return Jeeb::transaction()->rejected()->get(); case 'less': # تراکنشهایی که مقدار پرداخت شده آن توسط کاربر کمتر از مقدار مشخص شده توسط شماست return Jeeb::transaction()->lessPaid()->get(); case 'over': # تراکنشهایی که مقدار پرداخت شده آن توسط کاربر بیشتر از مقدار مشخص شده توسط شماست return Jeeb::transaction()->overPaid()->get(); case 'all': # لیست تمام تراکنشها return Jeeb::transaction()->get()->load('wallets'); } }مقدار بازگشتی توسط این متود یک مدل استاندارد لاراولی بوده و میتونید مثل یک مدل استاندارد باهاش برخورد کنید، مثلا میتونید با متود
paginate
اون رو صفحه بندی کنید.