# 添加终端接口
*****
添加终端接口是为了第三方用户方便自动添加打印机到云端。 当用户在第三方业务系统里添加打印设备时,将自动添加在易联云第三方客户的账号里。去除了第三方手动添加的麻烦。
易联云API支持接口添加易联云打印机(终端)到云打印中心。当易联云API收到一个添加打印机设备的请求时,就将指定的终端号添加到云打印中心,并返回对应添加状态。
## API接口地址(添加终端的端点)
地址:http://open.10ss.net:8888/addprint.php
端口:8888
请求方式:POST
## API调用方法
易联云API请求以及参数应该用POST方法发送。易联云API将根据收到的信息验证请求的有效性反馈对应的状态码。
### 必填参数和需要提交的参数
|名称 |类型| 是否提交| 是否必填 |描述|
|-|-|-|-|-|
|apikey| String| 否| 是 |apikey(管理中心系统集成里获取)|
|partner | int| 是 |是| 用户id(管理中心系统集成里获取)|
|machine_code |String| 是| 是 |打印机终端号|
|msign| String |是| 是 |打印机终端密钥|
|mobilephone| String| 是 |是| 终端内部的手机号(方便充值)无手机号可传空值|
|username| String| 是| 是| 用户名(登录管理中心获取用户名)|
|printname| String| 是| 是 |打印机终端名称(自定义)|
|sign |String |是| 是| API输入签名结果(生成的参数)|
## 举例
~~~
$partner=6 //用户ID
$apikey=d17d7d6cdaaa77a6dba928b6553c665325a033d5 //API密钥
$machine_code=613 //打印机终端号
$msign=123456 //打印机密钥
$username=qiancongbin //用户名
$mobilephone=15982424080 //打印机内的手机号
$printname=天府广场店 //打印机名称
$sign=933EE4945187690DE9FE1E069FB1094E //生成的32位签名
~~~
## 签名加密算法如下:
sign= apikey+(partner +machine_code+ username+ printname+ mobilephone)+msign 串在一起后进行MD5加密然后再转换成大写,括号里面的参数是需要键名和值,并且按照键进行自然排序,即php的 ksort()函数,apikey和msign只需要值
## 签名具体写法
~~~
function generate_sign($params, $apikey, $msign)
{
// 对传入数组按键进行排序
ksort($params);
// 排序后的 $params
// $params = array (
// 'machine_code' => 613,
// 'mobilephone' => '15982424080',
// 'partner' => '6',
// 'printname' => '天府广场店',
// 'username' => 'qiancongbin',
// );
// 将 apikey 拼接在签名字符串最前面
$stringToBeSigned = $apikey;
foreach ($params as $k => $v) {
// 将排序后的数组拼接到字符串中
$stringToBeSigned .= urldecode($k.$v);
}
// 将 msign 拼接在签名字符串最后面
$stringToBeSigned .= $msign;
// 计算签名前的字符串
// d17d7d6cdaaa77a6dba928b6553c665325a033d5machine_code613mobilephone15982424080partner6printname天府广场店usernameqiancongbin123456
// 对字符串 md5 后,转大写,获取计算的签名结果
return strtoupper(md5($stringToBeSigned));
}
~~~
调用
~~~
$params = array (
'partner' => '6',
'machine_code' => 613,
'mobilephone' => '15982424080',
'printname' => '天府广场店',
'username' => 'qiancongbin',
);
$apikey = 'd17d7d6cdaaa77a6dba928b6553c665325a033d5';
$msign = '123456';
// 获取签名
$params['sign'] = generate_sign($params, $apikey, $msign);
// 拼接添加打印机的必须提交参数
$params['msign'] = $msign;
// 获取 query 字符串
$query = http_build_query($params);
// 将要发给接口的 $query
// partner=6&machine_code=613&mobilephone=15982424080&printname=%E5%A4%A9%E5%BA%9C%E5%B9%BF%E5%9C%BA%E5%BA%97&username=qiancongbin&sign=BB1542448854A307FD540FB15859F8C0&msign=123456
// 请求接口 获取相应
$response = fetch($url, $query);
// 打印接口返回
var_dump($response);
~~~
请求接口函数
~~~
// 请求接口
function fetch($url, $data)
{
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); // 解决数据包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包\
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) echo curl_error($curl);
curl_close($curl); // 关键CURL会话
var_dump($tmpInfo);
return $tmpInfo; // 返回数据
}
~~~
##从以上举例中得到的加密参数:
d17d7d6cdaaa77a6dba928b6553c665325a033d5machine_code613mobilephone15982424080partner6printname天府广场店usernameqiancongbin123456
## 举例提交内容如下;
partner=6&machine_code=613&username=qiancongbin&printname=天府广场店&mobilephone=15982424080&msign=123456&sign=933EE4945187690DE9FE1E069FB1094E
## 返回的状态码
|状态码|说明|
|-|-|
|1| 添加成功|
|2| 重复|
|3 |添加失败|
| 4| 添加失败|
|5 |用户验证失败|
|6| 非法终端号|
特殊检查码:
|状态码|说明 |
|-|-|
|{-1.1, "The partner can not be empty, The partner received by the server is '{$userid}'}|用户id不能为空|
|{-1.2, "The partner must be a number, The partner received by the server is '{$userid}|用户id必须是数字}|
| {1.4, "The username can not be empty, The username received by the server is '{$user}'");|用户名不能为空|
| {-1.5, "The user not found. Please confirm that the partner: '{$userid}' is correct")}|用户没有找到,请确认partner|
|-1.6, "The machine not found. Please confirm that the machine_code: '{613}' and msign: '{123456}' is correct"|打印机没有找到,确认是否为|
| {-1.7, "Signature error, The server-side signature is '{ahalhgahglahlofiahkaolgh}', The client-side signature is {933EE4945187690DE9FE1E069FB1094E}")}}|签名验证|
:-: <a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=761f845b409a5483b96e91f26de0d23fef9ca67e214c1eb75ab503e6c07a0107"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="易联云对接开发支持" title="易联云对接开发支持"></a>
- 1.快速入门
- 1.1.接口描述
- 1.2.使用前准备
- 1.3.API基本工作流程
- 2.打印接口
- 3.添加终端接口
- 4.删除终端接口
- 5.添加应用菜单接口
- 6.推送接口
- 6.1.推送接口定义
- 6.2.打印完成状态推送接口
- 6.3.按键请求推送接口
- 6.4.应用菜单推送接口
- 6.5.接单拒单推送接口
- 6.6.终端状态推送接口
- 7.内容排版命令参数
- 8.开发注意事项
- 9.部分排版指令组合说明
- 1、二维码打印
- 2.条码打印
- 3.打印多联
- 4.字体加大
- 5.字体加粗
- 6.字体加高
- 7.字体加宽
- 8.换行
- 9.居中对齐
- 10.右对齐
- 11.一行三格或4格对齐排版
- 12.制表符
- 13.自定义来单提醒
- 14.自定义来单语音设置
- 15.订单确认
- 10.语音接口
- 1、设置内置语音接口
- 2、删除内置语音接口
- 11.文档更新日志
