dicr/yii2-exchange1c

1C 与 Bitrix 网站交换协议

安装: 9

依赖者: 0

建议者: 0

安全性: 0

星标: 2

分支: 2

类型:yii2-extension

3.0.0 2022-01-08 17:12 UTC

This package is auto-updated.

Last update: 2024-09-08 19:58:33 UTC


README

库中实现了1C服务器端协议处理请求的部分,以及模拟1C向网站服务器请求的客户端部分。

服务器端

包括

  • 可配置模块 dicr\exchange1c\Module
  • web-控制器 dicr\exchane1c\DefaultController 用于处理1C的请求
  • 抽象协议处理器 dicr\exchange1c\BaseHandler 实现了基本功能。

服务器端配置

$config = [
    'modules' => [
        'exchange1c' => dicr\exchange1c\Module::class,
        'handler' => 'ВашОбработчикИмпорта::class',
        
        // опционально можно добавить авторизацию
        'as basicAuth' => [
            'class' => yii\filters\auth\HttpBasicAuth::class,
            'auth' => static function($username, $password) {
                // проверка логина и пароля
            }
        ]
    ]
];

由模块调用的1C交换处理器应实现接口 dicr\exchange1c\Handler。为了方便,您可以继承实现交换和工具的抽象基类 dicr\exchange1c\BaseHandler。您只需重定义从 SimpleXmlElement 文档导入数据的方法(importPropimportGroupimportProd)到您自己的网站数据库。

客户端部分

包括

  • 可配置组件 dicr\exchange1c\Client
  • 控制台应用程序和控制器 dicr\exchange1c\ClientController

客户端配置

$config = [
    'components' => [
        'client' => [
            'class' => dicr\exchange1c\Client::class,
            'url' => 'https://адрес_обмена/сайта',
            
            // опционально авторизация на сайте
            'login' => 'логин',
            'password' => 'пароль'
        ]
    ]       
];

使用方法

/** @var dicr\exchange1c\Client $client */
$client = Yii::$app->get('client');

// авторизация (получает куку авторизации)
$client->requestCatalogCheckAuth();

// инициализация параметров обмена (получает zip, file_limit)
$client->requestCatalogInit();

// загрузка файла на сайт
$data = $client->requestCatalogFile('/home/files/import.xml');

// импорт данных
$client->requestCatalogImport('import.xml');

控制台应用程序

也可以在控制台中使用客户端部分。

创建配置文件 configs/local.php 并提供数据

/** @var ?string адрес обмена на сайте */
const EXCHANGE_URL = 'https://мой-сайт.рф/exchange1c';

/** @var ?string логин */
const EXCHANGE_LOGIN = 'мой-логин';

/** @var ?string пароль */
const EXCHANGE_PASSWORD = 'мой пароль';

命令行参数

# отправка каталога на сайт
./yii client/catalog-file /home/files/import.xml

# отправка заказов на сайт
./yii client/sale-file /home/files/orders.xml

# запрос заказов с сайта
./yii client/sale-query