aries/jeeb.io
Composer 安装命令:
composer require aries/jeeb.io
包简介
jeeb.io cryptocurrency payment system wrapper
README 文档
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 اون رو صفحه بندی کنید.
aries/jeeb.io 适用场景与选型建议
aries/jeeb.io 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 3, 最近一次更新时间为 2020 年 05 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 aries/jeeb.io 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 aries/jeeb.io 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: mit
- 更新时间: 2020-05-29