承接 aries/jeeb.io 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

استفاده

برای کار کردن درست پکیج به سه روت نیاز داریم
  1. یک روت که در اون تراکنش رو ایجاد کنیم
  2. یک روت برای زمانی که از درگاه برمیگردیم به سایت خودمون
  3. و یک روت برای پردازش وبهوک ارسالی از طرف سرور جیب
روت دوم اختیاریه، در صورتی که نخواید کاربر رو برای پرداخت به درگاه جیب بفرستید می‌تونید کیف پول ایجاد شده توسط جیب رو توی سایت خودتون نشون بدین و کاربر رو به درگاه هدایت نکنید.

رفع مشکل توکن روت‌ها

پاسخ‌های ارسالی از طرف سرور جیب به صورت 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 aries/jeeb.io 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: mit
  • 更新时间: 2020-05-29