aries / jeeb.io
jeeb.io 比特币支付系统包装器
1.0.1
2020-06-01 16:44 UTC
This package is auto-updated.
Last update: 2024-09-14 00:17:07 UTC
README
用于在网站 jeeb.io 使用加密货币支付网关的包要求
- laravel 7+
- curl
安装
使用以下命令安装最新版本的包
composer require aries\jeeb.io
现在需要使用以下命令发布所需的迁移
php artisan vendor:publish --provider='Aries\Jeeb\JeebServiceProvider'
现在需要执行迁移
php artisan migrate
使用
为了正确使用此包,我们需要三个路由- 一个用于创建交易的路由
- 一个用于我们从网关返回到我们自己的网站的路径
- 一个用于处理从吉布服务器发送的请求的路由
第二个路由是可选的,如果您不想将用户发送到吉布网关,您可以在您的网站上显示由吉布创建的钱包,并直接将用户引导到网关。
解决路由令牌问题
吉布服务器发送的响应是 POST 形式,这与 Laravel 的 csrf_token 冲突。为了解决这个问题,需要在
app\http\Middleware\VerifyCrsfToken.php
路径中排除 callback
和 webhook
路由<?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' ]; }
创建交易
您可以使用 facadeAries\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(); # انتقال کاربر به درگاه جیب });
从网关返回(回调)
使用 facadeAries\Jeeb\Facades\Jeeb
和方法 callback
来处理吉布服务器的响应。此外,使用 facade
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')); });
Webhook
您可以使用 facadeAries\Jeeb\Facades\Jeeb
和方法 webhook
来处理吉布服务器发送的响应。请注意,由于区块链交易确认时间较长,您需要等待吉布服务器以 webhook 形式发送的确认响应,并且当交易确认且状态 ID 为 4 时,您可以交付产品给用户。
支付金额超过或低于您指定的金额将自动退还给用户。
<?php use Aries\Jeeb\Facades\Jeeb; use Illuminate\Support\Facades\Route; Route::get('/jeeb/webhook', function() { return Jeeb::webhook(); });
查看交易列表
要查看按支付状态分组的交易列表,可以使用 facadeAries\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'); } }此方法返回的值是一个 Laravel 标准模型,您可以像处理标准模型一样处理它,例如使用
paginate
方法进行分页。