jolimark

package module
v0.0.0-...-c8f5e35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2019 License: BSD-3-Clause Imports: 11 Imported by: 0

README

jolimark

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrorMsgMap = map[int]string{
	0:     "成功",
	10000: "调用接口失败",
	10101: "app_id不存在",
	10102: "无效的访问令牌",
	10103: "访问令牌已过期",
	10104: "app_id已停止运营",
	10105: "签名失败",
	10106: "app_key不正确",
	10107: "参数验证不合格",
	10201: "打印机不存在",
	10202: "打印机已绑定在另一app_id,请联系客服!",
	10203: "打印机不属于此app_id,您无权解绑!",
	10204: "打印机未绑定,无需解绑!",
	10205: "打印设备与该app_id已绑定过!",
	10206: "打印机编码或校验码不能为空",
	10207: "app_id未绑定此打印设备",
	10301: "打印机未联网,不能创建任务!",
	20101: "非逻辑性的错误提示,比如参数格式错误,参数有效性提示等",
	30101: "系统处理数据不符合要求的提示信息",
	90100: "系统异常错误",
}
View Source
var HOST = "https://mcp.jolimark.com/mcp/v2"

Functions

func MD5

func MD5(str string) string

Types

type AccessToken

type AccessToken struct {
	AccessToken string `json:"access_token"`
	// 有效时间,单位为秒
	Expire float64 `json:"expires_in"`
	// 生成时间
	Create string `json:"create_time"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(appid, key, callbackkey string) *Client

func (*Client) AccessToken

func (c *Client) AccessToken() (token AccessToken, err error)

AccessToken 获取AccessToken

func (*Client) BindPrinter

func (c *Client) BindPrinter(accesstoken, device_codes string) (p Resp, err error)

BindPrinter 将打印机绑定到当前的应用id。

func (*Client) CancelNotPrintTask

func (c *Client) CancelNotPrintTask(accesstoken, device_id string) (p NotPrintTaskStatus, err error)

CancelNotPrintTask 取消指定打印机当前未完成的打印任务。

func (*Client) CheckPrinterEnableBind

func (c *Client) CheckPrinterEnableBind(accesstoken, device_id string) (p Resp, err error)

CheckPrinterEnableBind 校验打印机是否可以绑定。

func (*Client) DeviceStatusCallback

func (c *Client) DeviceStatusCallback(callback func(DeviceStatus) error) func(w http.ResponseWriter, r *http.Request)

DeviceStatusCallback 打印设备状态回调更新

func (*Client) DeviceStatusCallbackVerify

func (c *Client) DeviceStatusCallbackVerify(device DeviceStatus) bool

DeviceStatusCallbackVerify

func (*Client) PrintEsc

func (c *Client) PrintEsc(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintEsc 打印ESC指令 适用于开发者懂Esc指令排版布局,详见《打印机编程手册esc指令》 将ESC标准指令代码以文本格式传输到接口进行打印

func (*Client) PrintExpress

func (c *Client) PrintExpress(accesstoken, device_ids, cus_orderid, template_id, jj_dwmc, jj_jjr, jj_lxdh, jj_dz, sj_dwmc, sj_sjr, sj_lxdh, sj_dz, wp_jtw, wp_smjz string, copies, time_out int) (resp Resp, err error)

PrintExpress 打印快递面单 直接对接快递面单打印 打印标准的快递面单,如顺丰,圆通,EMS等

func (*Client) PrintFile

func (c *Client) PrintFile(accesstoken, device_ids, cus_orderid, file_type, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintFile 打印本地文档, bill_content base64格式的文件二进制 适用于调用方不方便提供文档的url址址,如C/S程序对接。适用机型为CFP-535。 将pdf、图片(jpg、png )转换成base64格式的数据后,调用此接口,打印机便可按要求进行打印。其中pdf数据大小不超过过4M,图片数据大小不超过2M。

func (*Client) PrintFileByUrl

func (c *Client) PrintFileByUrl(accesstoken, device_ids, cus_orderid, file_type, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintFileByUrl 打印远程文档 适用于调用方不方便提供文档的url址址,如C/S程序对接。适用机型为CFP-535。 调用时传pdf、图片(jpg、png ) 对应的 url地址,打印机便可进行打印。

func (*Client) PrintHtmlCode

func (c *Client) PrintHtmlCode(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintHtmlCode 打印简单html页面-传HTML代码。 在一些特定应用中,客户无法生成html页面url,可以传html源代码,由映美服务器代为生成打印。 打印应用提供简单标签的html源代码,由映美服务器转为html文件,打印机再从映美服务器直接下载解析打印,此打印方式跟简单标签的html页面一致,标签必须符合映美定义的html标签规范,标签规范详情请 详见《HTML模板设置说明文档》。

func (*Client) PrintHtmlTemplate

func (c *Client) PrintHtmlTemplate(accesstoken, device_ids, cus_orderid, template_id, bill_content string, copies, paper_type, time_out int) (resp Resp, err error)

PrintHtmlTemplate 打印云模板 用户创建打印模板 打印用户在映美云模板上的排版设计页面。映美云模板地址: http://form.jolimark.com

func (*Client) PrintHtmlToGrayPic

func (c *Client) PrintHtmlToGrayPic(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintHtmlToGrayPic 打印简单html页面-转灰度图。 此接口适用于页面中含有图片需要打印的情况,以多层级灰度打印,仅适用于热敏打印机。 打印客户提供的html页面,支持复杂的html标签,样式只能支持到IE11内核,可以打印灰度图片数据,html页面的body宽度不大于打印机的纸张宽度值,Body宽度的像素最大值等于纸张宽度*打印机dpi/25.4,打印机的dpi值,详见打印机默认纸张宽度和DPI值。

func (*Client) PrintHtmlToPic

func (c *Client) PrintHtmlToPic(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintHtmlToPic 打印复杂html页面-传url转图片。 适用于html页面含有复杂排版样式与表格的情况,以黑白双色打印。 html可以包含复杂的标签,用于呈现打印页面上的表格数据以及复杂排版,最高支持IE11内核。html页面的body宽度不大于打印机的纸张宽度值,body宽度的像素最大值等于纸张宽度*打印机dpi/25.4,打印机的dpi值详见附录1.3。 注:在页面包含表格的情况下,表格线条需要设置为黑色。将要打印的内容宽度设置成打印机可以支持的最大宽度,打印效果会比较好。

func (*Client) PrintHtmlUrl

func (c *Client) PrintHtmlUrl(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintHtmlUrl 打印简单HTML页面-传URL地址。 适用于票据页面简单的餐饮、超市等小票打印。 客户提供一个html页面的url地址,由打印机直接下载页面解析打印,此页面内的标签必须符合映美定义的html标签规范。标签规范详情请详见《HTML模板设置说明文档》。

func (*Client) PrintPointText

func (c *Client) PrintPointText(accesstoken, device_ids, cus_orderid string, bill_content PointText, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintPointText 打印定点坐标文本 此接口应用于客户需要自己设定文本打印位置的票据打印,比如增值税发票,门票等票据。 将文本打印到客户指定的坐标位置。

func (*Client) PrintRichHtmlCode

func (c *Client) PrintRichHtmlCode(accesstoken, device_ids, cus_orderid, bill_content string, copies, paper_width, paper_height, paper_type, time_out int) (resp Resp, err error)

PrintRichHtmlCode 打印复杂HTML页面-转图片。 html页面有复杂表格和复杂排版样式的情况,以黑白双色打印。 打印客户提供的html页面,支持复杂的html标签,样式只能支持到IE11内核,可以打印表格数据以及复杂排版页面,html页面的body宽度不大于打印机的纸张宽度值,Body宽度的像素最大值等于纸张宽度*打印机dpi/25.4,打印机的dpi值,详见打印机默认纸张宽度和DPI值。 ps:页面包含表格的情况下,表格线条需要设置成黑色。

func (*Client) QueryNotPrintTask

func (c *Client) QueryNotPrintTask(accesstoken, device_id string) (p PrintTaskStatus, err error)

QueryNotPrintTask 查询指定打印机未打印任务。

func (*Client) QueryPrintTaskStatus

func (c *Client) QueryPrintTaskStatus(accesstoken, cus_orderid string) (p PrintTaskStatus, err error)

QueryPrintTaskStatus 根据客户订单号来查询打印任务状态的接口。

func (*Client) QueryPrinterInfo

func (c *Client) QueryPrinterInfo(accesstoken, device_id string) (p Printer, err error)

QueryPrinterInfo 查询打印机的基础信息,包括当前的软件、固件版本以及打印机型号。

func (*Client) QueryPrinterStatus

func (c *Client) QueryPrinterStatus(accesstoken, device_id string) (p PrinterStatus, err error)

QueryPrinterStatus 查询打印机的当前状态,包括打印机是否在线,是否缺纸,是否开盖等。

func (*Client) SetLog

func (c *Client) SetLog(l *logrus.Logger)

func (*Client) TaskCallback

func (c *Client) TaskCallback(callback func(TaskResult) error) func(w http.ResponseWriter, r *http.Request)

TaskCallback 打印任务结果回调更新

func (*Client) TaskCallbackVerify

func (c *Client) TaskCallbackVerify(result TaskResult) bool

TaskCallbackVerify

func (*Client) UnBindPrinter

func (c *Client) UnBindPrinter(accesstoken, device_id string) (p Resp, err error)

BindPrinter 从当前应用id中解除绑定的打印机。

type DeviceStatus

type DeviceStatus struct {
	// 状态改变时间,时间格式形如:yyyy-MM-dd HH:mm:ss格式
	FaultTime string `json:"fault_time"`
	// 打印机编码
	PrinterCode string `json:"printer_code"`
	// 状态码,1-正常, 2-缺纸,3-开盖,4-网络故障,99-未知异常
	ResultCode string `json:"result_code"`
	// 时间戳
	Timestamp string `json:"time_stamp"`
	// 随机字符串
	NonceStr string `json:"nonce_str"`
	// 签名
	Sign string `json:"sign"`
}

type Error

type Error struct {
	Code int
}

func (Error) Error

func (e Error) Error() string

type NotPrintTaskStatus

type NotPrintTaskStatus struct {
	// 未打印的任务数
	Count int `json:"count"`
	// 未打印的任务集合
	Result interface{} `json:"result"`
	// 客户系统的订单号
	CusOrderID string `json:"cus_orderid"`
	// 映美云打印平台的任务id
	OrderID string `json:"order_id"`
	// 打印的任务内容
	OrderContent string `json:"order_content"`
	// 任务创建的时间
	OrderDate string `json:"order_date"`
}

type Point

type Point struct {
	// 文本相对于left位置的横坐标
	X float64 `json:"x"`
	// 文本相对于top位置的纵坐标
	Y float64 `json:"y"`
	// 打印的文本内容
	V string `json:"v"`
	// 文本说明,此属性可以不填写,为了方便客户检查数据用
	Dsp string `json:"dsp"`
}

type PointText

type PointText struct {
	High    float64 `json:"high"`
	Left    float64 `json:"left"`
	Top     float64 `json:"top"`
	Content []Point `json:"content"`
}

type PrintTaskStatus

type PrintTaskStatus struct {
	// 客户系统的订单号
	CusOrderID string `json:"cus_orderid"`
	// 映美云打印平台的任务id
	OrderID string `json:"order_id"`
	// 任务状态码;状态码解释:1-打印成功,2-打印失败,打印机下载数据失败,3-超时未打印,4-打印失败,解绑清理;5-保留值,6-打印失败,打印过程开盖,7-打印失败,打印过程缺纸,8-打印失败,推送时打印机掉线,9-打印失败,推送时打印机开盖,10-打印失败,推送时打印机缺纸,11-打印失败,推送时打印机未注册,12-打印失败,推送时未找到打印机可用状态,13-用户取消的任务
	OrderStatus string `json:"order_status"`
}

type Printer

type Printer struct {
	// 打印机编码
	DeviceID string `json:"device_id"`
	// 打印机型号id;1:mcp-58,2:mcp-350,3:mcp-360,4:fp-570,5:mcp-610,6:mcp-230,7:mcp-330,8:clp-180,9:cfp-535;
	DeviceTypeID int `json:"devicetype _id"`
	// 打印机型号名称
	DeviceTypeName string `json:"devicetype _name"`
	// 打印机自身当前软件版本
	VarVersion string `json:"var_version"`
	// 打印机自身当前固件版本
	FirmwareVersion string `json:"firmware_version"`
	// 此型号打印机最新的软件版本
	LastVarVersion string `json:"irmware_version"`
	// 此型号打印机最新的固件版本
	LastFirmwareVersion string `json:"last_firmwareversion"`
}

type PrinterState

type PrinterState struct {
	// 打印机编码
	PrintCode string `json:"print_code"`
	// 状态编码;0-不存在,1-正常在线,2-缺纸,3-故障或开盖,4-离线,5-选择纸张错误,6-不属于此应用id,7-未绑定,8-已绑定到其他商户,99-其他异常
	StatusCode int `json:"status_code"`
	// 状态信息;0-不存在,1-正常在线,2-缺纸,3-故障或开盖,4-离线,5-选择纸张错误,6-不属于此应用id,7-未绑定,8-已绑定到其他商户,99-其他异常
	StatusMsg string `json:"status_msg"`
}

type PrinterStatus

type PrinterStatus struct {
	// 打印机编码
	DeviceID string `json:"device_id"`
	// 状态编码;0-不存在,1-正常在线,2-缺纸,3-故障或开盖,4-离线,5-选择纸张错误,6-不属于此应用id,7-未绑定,8-已绑定到其他商户,99-其他异常
	StatusCode int `json:"status_code"`
	// 状态信息;0-不存在,1-正常在线,2-缺纸,3-故障或开盖,4-离线,5-选择纸张错误,6-不属于此应用id,7-未绑定,8-已绑定到其他商户,99-其他异常
	StatusMsg string `json:"status_msg"`
}

type Resp

type Resp struct {
	Code         int             `json:"return_code"`
	Data         json.RawMessage `json:"return_data"`
	Msg          string          `json:"return_msg"`
	PrinterState []PrinterState  `json:"printer_state"`
}

func (Resp) Decode

func (r Resp) Decode(obj interface{}) error

type TaskResult

type TaskResult struct {
	// 客户系统订单流水号
	BillNo string `json:"bill_no"`
	// 打印机编码
	PrinterCode string `json:"printer_code"`
	// 结果状态码,10000-打印失败,打印机下载数据失败,10001-打印成功,10002-打印失败,打印过程开盖,10003-打印失败,打印过程缺纸,10004-通讯超时,10005-打印失败,推送时打印机掉线,10006-保留值,10007-保留值,10008-超时未打印,10009-打印失败,解绑清理,10010-打印失败,推送时打印机开盖,10011-打印失败,推送时打印机缺纸,10012-打印失败,推送时打印机未注册,10013-打印失败,推送时未找到打印机可用状态
	ResultCode string `json:"result_code"`
	// 时间戳
	Timestamp string `json:"time_stamp"`
	// 随机字符串
	NonceStr string `json:"nonce_str"`
	// 签名
	Sign string `json:"sign"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL