shibuyakosuke/laravel-nextengine

Laravel 的 NextEngine API SDK。

v0.0.5 2021-03-30 14:26 UTC

This package is auto-updated.

Last update: 2021-06-30 14:59:28 UTC


README

概述

这是 Laravel 的非官方 NextEngine API 插件。关于 NextEngine API 的参考和社区,请使用 开发者网络

概述

  • NextEngine API 使用时的认证相关处理
  • NextEngine API 使用时的请求处理

已实现的函数请参考 这里

安装

请使用 composer 进行安装。

composer require shibuyakosuke/laravel-nextengine

如果您使用的是 Laravel 8 及以上版本,请另外安装 laravel/legacy-factories。

composer require laravel/legacy-factories

配置

.env 中添加以下项。

这里所述的是作为初始设置使用的账户,仅在使用 Seeding 时使用。

NEXT_ENGINE_USERNAME=(ネクストエンジンの管理者アカウント名)
NEXT_ENGINE_PASSWORD=(ネクストエンジンの管理者パスワード)
NEXT_ENGINE_CLIENT_ID=(ネクストエンジンの管理者 CLIENT_ID)
NEXT_ENGINE_CLIENT_SECRET=(ネクストエンジンの管理者 CLIENT_SECRET)
NEXT_ENGINE_REDIRECT_URI=(ネクストエンジンの管理者 REDIRECT_URI)

向 User 模型添加关联

如下所示,添加 NextEngineApi トレイト后,可以使用 hasOneNextEngineApi 模型添加关联。

<?php

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use ShibuyaKosuke\LaravelNextEngine\Traits\NextEngineApi;

class User extends Authenticatable
{
    use NextEngineApi; // 追加
}

设置文件的输出

以下命令会输出:

  • config/nextengine.php
  • database/migrations/2020_01_01_000000_create_next_engine_apis_table.php
  • database/factories/NextEngineApiFactory.php

请适当编辑。

php artisan vendor:publish --tag=nextengine

使用方法

从 OrderController 中获取订单凭证的示例

<?php

namespace App\Http\Controllers;

class OrderController extends Controller
{
    public function index()
    {
        $parameters = [];
        $receiveOrder = NextEngine::receiveOrderBaseSearch($parameters);        
        return view('orders.index', compact('receiveOrder'));
    }
}

访问令牌的更新

现在提供了用于更新访问令牌的命令。

php artisan nextengine:refresh-tokens

访问令牌更新的自动化

可以通过使用 cron 等机制来自动化访问令牌的更新。

编辑 app/Console/Kernel.php 中的 schedule 方法如下。

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('nextengine:refresh-tokens')->everyThirtyMinutes(); // <- 追加
    }
}

要使此计划执行,请将以下任务添加到 cron 中。

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1