# 开放应用服务模式
本开发攻略介绍开放服务模式下获取Access Token的授权验证,获取Access Token前请先获取商户Code。
[TOC=2,3]
## 获取商户Code
地址:`https://open-api.10ss.net/oauth/authorize`
请求方式:GET
应用授权URL拼装
~~~
https://open-api.10ss.net/oauth/authorize?response_type=code&client_id=2015101400445465&redirect_uri=http%3A%2F%2Fexample.com&state=1
~~~
|名 称|类 型|描 述|
|----|----|----|
|client_id|string|易联云颁发给开发者的应用ID 非空值|
|response_type|string|授权类型,固定参数为“code”,表示授权码模式|
|redirect_uri|string|开发者自身的回调地址 (需要urlencode)|
|state|string|用于保持请求和回调的状态,在回调时,会回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。可防止CSRF攻击|
商户授权成功后,pc或者手机客户端会跳转至开发者定义的回调页面(即redirect_uri参数对应的url),在回调页面请求中会带上当次授权的授权码code和开发者的state(code有效期600秒,超时无效)示例如下:
~~~
redirect_uri?response_type=code&code=xxxx&state=xxxx
~~~
## 使用Code换取Access Token
地址:`https://open-api.10ss.net/oauth/oauth`
[境外地址](apiprotocol.md)
请求方式:POST
**所需参数(获取access_token并授权终端)**
|名 称|类 型|描 述|
|----|----|----|
|client_id|string|易联云颁发给开发者的应用ID 非空值|
|grant_type|string|授与方式(固定为 “authorization_code”)|
|sign|string|签名 详见API文档列表-[接口签名](apiprotocol.md)|
|code|string|授权码code |
|scope|string|授权权限,传all|
|timestamp|int|当前服务器时间戳(10位)|
|id|string|UUID4 详见API文档列表-[uuid4](apiprotocol.md)|
## 使用Refresh Token更新Access Token
地址:`https://open-api.10ss.net/oauth/oauth`
请求方式:POST
所需参数
每台终端的Access Token更新频次限制: 20次/日
注意:通过Refresh Token刷新凭证时,由于不可抗力原因,导致接收返回失败,无法得到最新的凭证信息,影响打印。两个小时内使用原有旧Refresh Token 调用API会获得上次的返回结果!
|名 称|类 型|描 述|
|----|----|----|
|client_id|string|易联云颁发给开发者的应用ID 非空值|
|grant_type|string|授与方式(固定为 “refresh_token”)|
|scope|string|授权权限,传all|
|sign|string|签名 详见API文档列表-[接口签名](apiprotocol.md)|
|refresh_token|string|更新access_token所需|
|id|string|UUID4 详见API文档列表-[uuid4](apiprotocol.md)|
|timestamp|int|当前服务器时间戳(10位)|
## 同步响应参数说明
每台打印机都有唯一的access_token.请开发者做好存储。
|名 称|类 型|描 述|
|----|----|----|
|access_token|string|访问令牌,API调用时需要,在令牌有效期内可以重复使用,请开发者全局保存|
|refresh_token|string|更新access_token所需,有效时间35天|
|expires_in|int|令牌的有效时间,单位秒 (30天)|
|machine_code|string|易联云终端号|
示例如下:
~~~
{'error':'0','error_description':'success','body':{'access_token':'xxxx','refresh_token':'xxxx','machine_code':'xxxx','expires_in':2592000,'scope':'all'}}
{"error":"2","error_description":"client_id不存在"}
{'error':'11', 'error_description':'sign验证失败'},
{'error':'12', 'error_description':'缺少必要参数'},
{'error':'15','error_description':'权限不能大于初次授权的权限'}
{'error':'19', 'error_description':'应用未上架或已下架'},
{'error':'33', 'error_description':'Uuid不合法'},
{'error':'41', '获取或更新access_token的次数,已超过最大限制次数!'},
~~~
- 平台简介
- 概念和术语
- 新手指南
- 开发文档
- 接入API服务指南
- API调用协议说明
- 开放应用服务模式
- 自有应用服务模式
- 扫描二维码授权模式
- 消息推送协议说明
- API文档列表
- 文本打印接口
- 图形打印接口
- 面单打印接口
- 设置内置语音接口
- 删除内置语音接口
- 删除终端授权
- 添加应用菜单
- 关机重启接口
- 声音调节接口
- 获取机型打印宽度接口
- 获取机型软硬件版本接口
- 取消所有未打印订单接口
- 取消单条未打印订单接口
- 设置logo接口
- 取消logo接口
- 打印方式接口
- 接单拒单设置接口
- 设置推送url接口
- 获取订单状态接口
- 获取订单列表接口
- 获取终端状态接口
- 推送接口
- 签名规则
- 打印完成推送
- 接单拒单推送
- 按键请求推送
- 应用菜单推送
- 打印机实时状态推送
- 打印机指令
- K7-GHC/K7-WHC排版指令
- K4-GH(新固件)/K4-WH(新固件)排版指令
- K6-WH(新固件)排版指令
- M1-G(新固件)排版指令
- W1(新固件)排版指令
- K5(新固件)排版指令
- K2S、K3S、M1排版指令
- K7、K6、K5、K4排版指令
- X1排版指令
- W1排版指令
- Ai语音播报指令
- 指令详解
- 二维码打印
- 条码打印
- 打印多联
- 字体加大
- 字体加粗
- 字体加高
- 字体加宽
- 换行
- 居中对齐
- 左右对齐
- 右对齐
- 一行三格或四格对齐排版
- 制表符
- 自定义来单提醒
- 自定义来单声音控制
- 订单确认
- SDK使用说明
- 注意事项
- 全局返回码
- 获取终端号和特殊密钥