Files
baseapi/platformapi/xpyunapi/xpu_model.go
richboo111 a01dfe715f 1
2023-03-21 15:26:23 +08:00

284 lines
13 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package xpyunapi
const (
//http返回成功状态码
HttpStatusSuccessCode = 200
//响应状态码
REQUEST_HEADER_ERROR = -1 // 请求头错误
REQUEST_PARAM_INVALID = -2 //参数不合法
REQUEST_SIGN_FAILED = -3 //参数签名失败
REQUEST_USER_NOT_REGISTER = -4 //用户未注册
SN_USER_NOT_MATCH = 1001 //打印机编号和用户不匹配
PRINTER_NOT_REGISTER = 1002 //打印机未注册
PRINTER_OFFLINE = 1003 //打印机不在线
ADD_ORDER_FAILED = 1004 //添加订单失败
ORDER_NOT_FOUND = 1005 //未找到订单信息
ORDER_DATE_INVALID = 1006 //订单日期格式或大小不正确
PRINT_CONTENT_MORE_THAN_12K_BYTES = 1007 //打印内容不能超过12K
PRINTER_RECORD_LOCK_FAIL = 1008 //用户修改打印机记录失败
SN_OR_NAME_EMPTY = 1009 // 用户添加打印机时,打印机编号或名称不能为空
PRINTER_NUMBER_INVALID = 1010 //打印机设备编号无效
PRINTER_EXIST = 1011 //打印机已存在,若当前开放平台无法查询到打印机信息,请联系售后技术支持人员核实
PRINTER_EXCEPTION = 1012 //添加打印设备失败,请稍后再试或联系售后技术支持人员
ORDER_IDEMPOTENT = 1013 //打印订单时触发幂等性
ORDER_IDEMPOTENT_LIMITLEN = 1014 //幂等因子过长
LOGO_FORMAT_ERROR = 1016 //LOGO文件格式错误
LOGO_SIZE_LARGE = 1017 //LOGO文件超出规定范围
LOGO_UPLOAD_TIMES = 1018 //LOGO上传次数超限制
LOGO_DELETE_NO_EXIST = 1020 // LOGO删除失败
LABEL_MODE_ERROR = 1021 //LOGO上传模式错误
)
var XpuErrMsg2 = map[string]string{
"REQUEST_HEADER_ERROR": "请求头错误",
"REQUEST_PARAM_INVALID": "参数不合法",
"REQUEST_SIGN_FAILED": "参数签名失败",
"REQUEST_USER_NOT_REGISTER": "用户未注册",
"SN_USER_NOT_MATCH": "打印机编号和用户不匹配",
"PRINTER_NOT_REGISTER": "打印机未注册",
"PRINTER_OFFLINE": "打印机不在线",
"ADD_ORDER_FAILED": "添加订单失败",
"ORDER_NOT_FOUND": "未找到订单信息",
"ORDER_DATE_INVALID": "订单日期格式或大小不正确",
"PRINT_CONTENT_MORE_THAN_12K_BYTES": "打印内容不能超过12K",
"PRINTER_RECORD_LOCK_FAIL": "用户修改打印机记录失败",
"SN_OR_NAME_EMPTY": "用户添加打印机时,打印机编号或名称不能为空",
"PRINTER_NUMBER_INVALID": "打印机设备编号无效",
"PRINTER_EXIST": "打印机已存在",
"PRINTER_EXCEPTION": "添加打印设备失败",
"ORDER_IDEMPOTENT": "打印订单时触发幂等性",
"ORDER_IDEMPOTENT_LIMITLEN": "幂等因子过长",
"LOGO_FORMAT_ERROR": "LOGO文件格式错误",
"LOGO_SIZE_LARGE": "LOGO文件超出规定范围",
"LOGO_UPLOAD_TIMES": "LOGO上传次数超限制",
"LOGO_DELETE_NO_EXIST": "LOGO删除失败",
"LABEL_MODE_ERROR": "LOGO上传模式错误",
}
var XpuErrMsg = map[string]string{
"1001": "打印机编号和用户不匹配",
"1002": "打印机未注册,尚未添加至云平台",
"1003": "打印机不在线",
"1004": "添加订单失败",
"1005": "未找到订单信息",
"1006": "订单日期格式或大小不正确",
"1007": "打印内容不能超过12K",
"1008": "用户修改打印机记录失败",
"1009": "用户添加打印机时,打印机编号或名称不能为空",
"1010": "打印机设备编号无效",
"1011": "打印机已存在",
"1012": "添加打印设备失败",
"1013": "打印订单时触发幂等性",
"1014": "幂等因子过长",
"1016": "LOGO文件格式错误",
"1017": "LOGO文件超出规定范围",
"1018": "LOGO上传次数超限制",
"1020": "LOGO删除失败",
"1021": "LOGO上传模式错误",
}
const (
//声音类型 v10版本
VoiceTypeV10PersonBig = 0 //真人语音 大
VoiceTypeV10PersonMedium = 1 //真人语音 中
VoiceTypeV10PersonSmall = 2 //真人语音 小
VoiceTypeV10DiDi = 3 //滴滴声
VoiceTypeV10Mute = 4 //静音
//声音类型 其他固件版本
VoiceTypeOtherPerson = 0 //真人语音
VoiceTypeOtherDiDi = 3 //滴滴声
VoiceTypeOtherMute = 4 //静音
//声音大小打印机固件版本为非V10.xx的机器支持此参数
VolumeLevelBig = 0 //大
VolumeLevelMedium = 1 //中
VolumeLevelSmall = 2 //小
VolumeLevelClose = 3 //关闭
//切刀控制开关,默认为0,仅用于支持切刀的芯烨云打印机
CutterOpen = 0 //开启云端默认设置控制切刀
CutterClose = 1 //关闭云端切刀
//声音播放模式:0-取消订单模式,1-静音模式,2-来单播放模式(默认),3-播报退单语音4-播报美团来单语音5-播报饿了么来单语音
VoiceCancelOrder = 0 //取消订单模式
VoiceMute = 1 //静音模式
VoicePlayOrder = 2 //来单播放模式
VoiceUserChargeback = 3 //用户申请退单模式
VoiceMT = 4 //播报美团来单语音
VoiceELM = 5 //播报饿了么来单语音
//打印模式 默认0
ModeCheckYes = 1 //不检查打印机是否在线,直接生成打印订单,并返回打印订单号。如果打印机不在线,订单将缓存在打印队列中,打印机正常在线时会自动打印
ModeCheckNo = 0 //或不指定则会检查打印机是否在线,如果不在线 则不生成打印订单,直接返回设备不在线状态码;如果在线则生成打印订单,并返回打印订单号
//默认订单过期时间
ExpiresInDefault = 86399 //秒
//支付方式41-55
PayTypeZFB = 41 //支付宝
PayTypeWX = 42 //微信
PayTypeYunZF = 43 //云支付
PayTypeYLCard = 44 //银联刷卡
PayTypeYLPay = 45 //银联支付
PayTypeMemberCardPay = 46 //会员卡消费
PayTypeMemberCardCharge = 47 //会员卡充值
PayTypeYiZF = 48 //翼支付
PayTypePaymentSuccess = 49 //成功收款
PayTypeJLZF = 50 //嘉联支付
PayTypeYQB = 51 //壹钱包
PayTypeJDZF = 52 //京东支付
PayTypeKQZF = 53 //快钱支付
PayTypeWZF = 54 //威支付
PayTypeXQZF = 55 //享钱支付
//支付与否
PayModeDrawback = 59 //退款
PayModeReceipt = 60 //到账
PayModeConsume = 61 //消费
//打印机状态
PrinterStateOffline = 0 //离线
PrinterStateOnlineNormal = 1 //在线正常
PrinterStateOnlineUnusual = 2 //在线异常
PrinterStateError = -1 //获取状态出错
)
var (
//打印机状态说明
PrinterStatus = map[float64]string{
PrinterStateOffline: "离线",
PrinterStateOnlineNormal: "在线正常",
PrinterStateOnlineUnusual: "在线异常",
PrinterStateError: "获取状态出错",
}
)
//请求参数
type RestRequest struct {
User string `json:"user"` //开发者ID(芯烨云后台登录账号)
UserKey string `json:"-"` //芯烨云后台开发者密钥
Timestamp int64 `json:"timestamp"` //当前UNIX时间戳10位精确到秒
Sign string `json:"sign"` //对参数 user + UKEY + timestamp 拼接后(+号表示连接符进行SHA1加密得到签名值为40位小写字符串
Debug int `json:"debug"` //debug=1返回非json格式的数据。仅测试时候使用
}
//响应参数
type XPYunResp struct {
HttpStatusCode int `json:"httpStatusCode"`
Content *XPYunRespContent `json:"content"`
}
type XPYunRespContent struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data,omitempty"`
ServerExecutedTime int `json:"serverExecutedTime"`
}
type AddPrinterRequestItem struct {
Sn string `json:"sn"` //打印机编号
Name string `json:"name,omitempty"` //打印机名称
}
// 添加打印机到开发者账户(可批量)
type AddPrinterRequest struct {
RestRequest `json:",inline"`
Items []*AddPrinterRequestItem `json:"items"`
}
//设置打印机语音类型
type SetVoiceTypeRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
VoiceType int `json:"voiceType"` //声音类型打印机固件版本为V10.xx的机器取值 0真人语音 1真人语音 2真人语音 3 嘀嘀声 4 静音;其它固件版本的机器取值0真人语音 3 嘀嘀声 4 静音
VolumeLevel int `json:"volumeLevel"` //声音大小0大 1中 2小 3关闭,说明打印机固件版本为非V10.xx的机器支持此参数
}
//打印小票订单
type PrintRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
Content string `json:"content"` //打印内容,不能超过12k字节
//非必填
Copies int `json:"copies,omitempty"` //打印份数,默认为1,取值[1-65535]
Cutter int `json:"cutter,omitempty"` //是否支持切刀自定义控制 0采用默认切刀 1采用自定义控制切刀
Voice int `json:"voice,omitempty"` //声音播放模式,0-取消订单模式,1-静音模式,2-来单播放模式(默认),3-播报退单语音4-播报美团来单语音5-播报饿了么来单语音
Mode int `json:"mode,omitempty"` //打印模式默认为0
ExpiresIn int `json:"expiresIn,omitempty"` //订单有效期 单位:秒 取值范围为0<订单失效时间<24*60*60,使用该参数时需要将参数mode 设置为1
BackurlFlag int `json:"backurlFlag,omitempty"` //回调地址对应标识,必须先在管理后台设置,否则无效
//PayType int `json:"payType,omitempty"` //41~55 支付宝 41、微信 42、云支付 43、银联刷卡 44、银联支付 45、会员卡消费 46、会员卡充值 47、翼支付 48、成功收款 49、嘉联支付 50、壹钱包 51、京东支付 52、快钱支付 53、威支付 54、享钱支付 55
//PayMode int `json:"payMode,omitempty"` //59~61 退款 59 到账 60 消费 61
//Money float64 `json:"money,omitempty"` //支付金额 允许保留2位小数
}
//打印标签订单
type PrintLabelRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
Content string `json:"content"` //打印内容,不能超过12k字节
//非必填
Copies int `json:"copies,omitempty"` //打印份数,默认为1,取值[1-65535]
Voice int `json:"voice,omitempty"` //声音播放模式,0-取消订单模式,1-静音模式,2-来单播放模式(默认),3-播报退单语音4-播报美团来单语音5-播报饿了么来单语音
Mode int `json:"mode,omitempty"` //打印模式默认为0
ExpiresIn int `json:"expiresIn,omitempty"` //订单有效期 单位:秒 取值范围为0<订单失效时间<24*60*60,使用该参数时需要将参数mode 设置为1
BackurlFlag int `json:"backurlFlag,omitempty"` //回调地址对应标识,必须先在管理后台设置,否则无效
PayType int `json:"payType,omitempty"` //41~55 支付宝 41、微信 42、云支付 43、银联刷卡 44、银联支付 45、会员卡消费 46、会员卡充值 47、翼支付 48、成功收款 49、嘉联支付 50、壹钱包 51、京东支付 52、快钱支付 53、威支付 54、享钱支付 55
PayMode int `json:"payMode,omitempty"` //59~61 退款 59 到账 60 消费 61
Money float64 `json:"money,omitempty"` //支付金额 允许保留2位小数
}
//删除打印机
type DelPrinterRequest struct {
RestRequest `json:",inline"`
SnList []string `json:"snlist"` //打印机编号集合
}
//修改打印机信息
type UpdPrinterRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
Name string `json:"name,omitempty"` //打印机名称
//非必填
CardNo string `json:"cardno"` //打印机流量卡号码
}
//清空待打印队列
type EmpPrinterQueueRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
}
// 查询订单状态
type QueryOrderStateRequest struct {
RestRequest `json:",inline"`
OrderId string `json:"orderId"` //订单编号,由“打印订单”接口返回
}
//查询指定打印机某天的订单统计数
type QueryOrderStatisRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
Date string `json:"date"` //查询日期格式YY-MM-DD2016-09-20
}
//获取指定打印机状态
type QueryPrinterStatusRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
}
//批量查询打印机状态
type QueryPrintersStatusRequest struct {
RestRequest `json:",inline"`
SnList []string `json:"snlist"` //打印机编号集合,一次最多20台
}
//金额播报 仅用于支持金额播报的芯烨云打印机
type PlayVoiceRequest struct {
RestRequest `json:",inline"`
Sn string `json:"sn"` //打印机编号
//非必填
PayType int `json:"payType"` //支付方式41~55
PayMode int `json:"payMode"` //支付与否59~61退款 59 到账 60 消费 61
Money float64 `json:"money"` //支付金额,允许保留2位小数
}