【问题标题】:Xerox network accounting (JBA) C70 sending accounting usersXerox 网络记帐 (JBA) C70 发送记帐用户
【发布时间】:2017-09-07 04:30:10
【问题描述】:

我正在尝试将用户列表发送到 Xerox 以进行网络记帐。

我使用 2 个 Xerox 模型(XEROX WorkCentre 7556 和 XEROX WorkCentre 7830)成功地做到了这一点,遵循 PHP 中的 sudo 代码:

function SendUsersToXerox($ip,$users)
{
    $url="{$ip}/acct/set_auth";
    $auth='account:jbaserve';
    $post="+aaav1.0\n+purge\n";

    foreach ($users as $u)
    {
        $post.="+u\"{$u->login}\"\"{$u->code}\"\n";
    }

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'EQ Device Control Engine');
    curl_setopt($ch,CURLOPT_POST, 1); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_USERPWD, "$auth");
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/xrx-acct-data']);
    $data = curl_exec($ch);
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
//  echo "HTTP CODE: {$httpcode}<br/>";
//  echo $data;
}

此代码在上述 Xerox 上完美运行,但在 C70 上失败,出现 401 错误和以下消息:

Invalid accounting authentication version

设备上启用了网络记帐,我可以通过 URL acct/get_acct 从打印机收集所有作业

如果我传递了错误的帖子数据,我会收到不同的错误消息:

HTTP Return 400
The Request had invalid syntax

我在任何地方都找不到对 JBA 或网络会计的任何引用,并且不确定如何确定 set_auth 上的格式是否已更改,或者是否需要设置版本差异。

我知道 get_acct 输出中存在指向不同版本会计的差异。

【问题讨论】:

    标签: php printers


    【解决方案1】:

    答案很简单。 除以下内容外,一切都正确:

    $post="+aaav1.0+\n+purge\n";
    

    v1.0后的加号(+)允许上传用户记账。

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多