定制 junoo/nso-auto-capture 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

junoo/nso-auto-capture

Composer 安装命令:

composer require junoo/nso-auto-capture

包简介

Ninja School Online screenshot client package for Laravel.

README 文档

README

Package Laravel hỗ trợ gửi account Ninja School Online sang worker chụp ảnh và nhận callback ảnh/thông tin nhân vật.

Cài đặt

composer require junoo/nso-auto-capture

Nếu repo private:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:xJunoo/nso-auto-capture.git"
        }
    ],
    "require": {
        "junoo/nso-auto-capture": "^1.0"
    }
}

Publish config:

php artisan vendor:publish --tag=nso-auto-capture-config

.env:

NSO_AUTO_CAPTURE_API_URL=http://api.tungduy.com/api/v1/ninja/capture
NSO_AUTO_CAPTURE_PUSH_ENDPOINT=push-account
NSO_AUTO_CAPTURE_INFO_ENDPOINT=api/get
NSO_AUTO_CAPTURE_TIMEOUT=30

Nếu dùng route web, nhớ thêm callback vào CSRF exception:

protected $except = [
    'nso-auto-capture/callback',
];

Function push

use Junoo\NsoAutoCapture\ScreenshotClient;

$client = app(ScreenshotClient::class);

$result = $client->push([
    'id' => 123,
    'username' => 'ninja-account',
    'password' => 'matkhau-goc',
    'server' => 1,
    'charname' => 'TenNhanVat',
]);

push() mặc định gọi:

POST {NSO_AUTO_CAPTURE_API_URL}/push-account

Payload gửi đi đúng theo module hiện tại:

{
    "callback_url": "https://shop.test/api/capture/nso/callback",
    "charname": "TenNhanVat",
    "id": 123,
    "server": 1,
    "username": "ninja-account",
    "password": "matkhau-goc"
}

Get partner info

$result = app(ScreenshotClient::class)->get();

Package gọi:

GET {NSO_AUTO_CAPTURE_API_URL}/api/get

Callback event

Route callback mặc định:

POST /nso-auto-capture/callback

Function callback

Có thể nhận callback qua route package:

POST /nso-auto-capture/callback

Hoặc gọi trực tiếp trong route/module hiện tại:

use Junoo\NsoAutoCapture\ScreenshotClient;

$result = app(ScreenshotClient::class)->callback($request->all());

callback() normalize payload rồi dispatch event ScreenshotProcessed.

Đăng ký listener trong app/Providers/EventServiceProvider.php:

use App\Listeners\SaveNsoCaptureResult;
use Junoo\NsoAutoCapture\Events\ScreenshotProcessed;

protected $listen = [
    ScreenshotProcessed::class => [
        SaveNsoCaptureResult::class,
    ],
];

Listener mẫu:

namespace App\Listeners;

use Junoo\NsoAutoCapture\Events\ScreenshotProcessed;

class SaveNsoCaptureResult
{
    public function handle(ScreenshotProcessed $event)
    {
        $data = $event->data;

        $accountId = $data['id'] ?? data_get($data, 'data.id');
        $captures = data_get($data, 'data.CAPTURES', []);
        $info = data_get($data, 'data.INFO', []);

        // Lưu ảnh và update GameAccounts tại đây.
    }
}

Payload callback:

{
    "id": 123,
    "username": "ninja-account",
    "status": 1,
    "message": "Thành công",
    "data": {
        "id": 123,
        "CAPTURES": {
            "TRANGBI1": "iVBORw0KGgoAAAANSUhEUg...",
            "THONGTIN1": "iVBORw0KGgoAAAANSUhEUg..."
        },
        "INFO": {
            "CHAR_NAME": "tennhanvat",
            "CHAR_LEVEL": 69,
            "CHAR_CLASS": 6,
            "CHAR_XU": 5000000,
            "CHAR_YEN": 10000000,
            "CHAR_XU_IN_BOX": 0
        }
    }
}

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固