TopWarehouse.php 1.2 KB
<?php

namespace Lackoxygen\TopWarehouse;

use Illuminate\Support\Arr;
use Lackoxygen\TopWarehouse\Contracts\ResponseInterface;
use Lackoxygen\TopWarehouse\Contracts\TopWarehouseInterface;
use Lackoxygen\TopWarehouse\Request\GetStockInventoryRequest;
use Lackoxygen\TopWarehouse\Request\OrdersB2cAddRequest;
use Lackoxygen\TopWarehouse\Utils\SignatureUtil;

class TopWarehouse implements TopWarehouseInterface
{
    /**
     * @inheritDoc
     */
    public function ordersB2cAdd(OrdersB2cAddRequest $ordersB2cAddRequest): ResponseInterface
    {
        return Client::make($ordersB2cAddRequest)->send();
    }

    /**
     * @inheritDoc
     */
    public function getStockInventory(GetStockInventoryRequest $getStockInventoryRequest): ResponseInterface
    {
        return Client::make($getStockInventoryRequest)->send();
    }

    /**
     * @inheritDoc
     */
    public function verify(array $data): bool
    {
        $sign = Arr::get($data, 'sign');
        if (empty($sign) || !is_string($sign)) {
            return false;
        }
        unset($data['sign']);
        $generateSign = SignatureUtil::generate($data, config('top-warehouse.app_secret'));

        return $generateSign === $sign;
    }
}