365小票打印机打印接口开发文档

 

API开发文档

 

 

接口1:打印内容

参数 说明
deviceNo 打印机编号
key 密钥
printContent 打印内容
times 固定传1

调用方式:HTTP POST
URL:http://open.printcenter.cn:8080/addOrder
返回结果:JSON字符串

----------S1小票机返回的结果有如下几种:----------
{"responseCode":0,"msg":"订单添加成功,打印完成","orderindex":"xxxxxxxxxxxxxxxxxx"}
{"responseCode":1,"msg":"订单添加成功,正在打印中","orderindex":"xxxxxxxxxxxxxxxxxx"}
{"responseCode":2,"msg":"订单添加成功,但是打印机缺纸,无法打印","orderindex":"xxxxxxxxxxxxxxxxxx"}
{"responseCode":3,"msg":"订单添加成功,但是打印机不在线","orderindex":"xxxxxxxxxxxxxxxxxx"}
----------以上情况无须再次发送订单;下面的情况需要进行错误处理----------
{"responseCode":10,"msg":"内部服务器错误;"}
{"responseCode":11,"msg":"参数不正确;"}
{"responseCode":12,"msg":"打印机未添加到服务器;"}
{"responseCode":13,"msg":"未添加为订单服务器;"}
{"responseCode":14,"msg":"订单服务器和打印机不在同一个组;"}
{"responseCode":15,"msg":"订单已经存在,不能再次打印;"}

----------USB小票机返回的结果有如下几种:----------
{"responseCode":0,"msg":"已加入打印队列"}
{"responseCode":2,"msg":"服务器处理订单失败"}

接口2:查询订单是否打印成功

参数 说明
deviceNo 打印机编号
key 密钥
orderindex 订单索引(orderindex,该值由接口一返回)

调用方式:HTTP POST
URL:http://open.printcenter.cn:8080/queryOrder
返回结果:JSON字符串

----------S1小票机返回的结果有如下几种:----------
{"responseCode":0,"msg":"打印成功"}
{"responseCode":1,"msg":"正在打印中"}
{"responseCode":2,"msg":"打印机缺纸"}
{"responseCode":3,"msg":"打印机下线"}
{"responseCode":16,"msg":"订单不存在"}

接口3:查询打印机的状态

参数 说明
deviceNo 打印机编号
key 打印密钥

调用方式:HTTP POST
URL:http://open.printcenter.cn:8080/queryPrinterStatus
返回结果:JSON字符串

----------S1小票机返回的结果有如下几种:----------
{"responseCode":1,"msg":"打印机正常在线"}
{"responseCode":2,"msg":"打印机缺纸"}
{"responseCode":3,"msg":"打印机下线"}

代码示例

 

<?php
header("Content-Type: text/html;charset=utf-8");
$DEVICE_NO = '123458615';
$key = '72264';
$content = "^N1^F1\n";
$content .= "^B2 测试打印\n";
$content .= "名称      单价  数量 金额\n";
$content .= "--------------------------------\n";
$content .= "饭       1.0    1   1.0\n";
$content .= "炒饭      10.0   10  10.0\n";
$content .= "蛋炒饭     10.0   10  100.0\n";
$content .= "鸡蛋炒饭    100.0  1   100.0\n";
$content .= "番茄蛋炒饭   1000.0 1   100.0\n";
$content .= "西红柿蛋炒饭  1000.0 1   100.0\n";
$content .= "西红柿鸡蛋炒饭 100.0  10  100.0\n";
$content .= "备注:加辣\n";
$content .= "--------------------------------\n";
$content .= "^H2合计:xx.0元\n";
$content .= "^H2送货地点:广州市南沙区xx路xx号\n";
$content .= "^H2联系电话:13888888888888\n";
$content .= "^H2订餐时间:2014-08-08 08:08:08\n";
$qrlength=chr(strlen('http://www.dzist.com'));
$content .= "^Q".$qrlength."http://www.dzist.com\n";
$result = sendSelfFormatOrderInfo($DEVICE_NO, $key, 1,$content);
var_dump($result);
function sendSelfFormatOrderInfo($device_no,$key,$times,$orderInfo){ // $times打印次数
    $selfMessage = array(
        'deviceNo'=>$device_no,
        'printContent'=>$orderInfo,
        'key'=>$key,
        'times'=>$times
    );
    $url = "http://open.printcenter.cn:8080/addOrder";
    $options = array(
        'http' => array(
            'header' => "Content-type: application/x-www-form-urlencoded ",
            'method'  => 'POST',
            'content' => http_build_query($selfMessage),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    return $result;
}

?>

 

打印机基本指令

S1小票机2.0以上版本适用

一、字体放大

命令^Nn:

该命令位于所有数据前面,用于控制打印张数,可以不加,不加默认打一张。

例如:

^N5

打印机打印测试

Print order data

****************

表示打印 5 张相同订单。

 

 

命令^Hn

该命令位于每行数据首位,用于控制此行字体纵向放大 n 倍,可以不加,不加默认不放大。

例如:

^H2 放大 2 倍

此时“放大 2 倍”这几个字会纵向放大 2 倍,效果见下图。

注意:正常大小的字体,每行最多可以打 16 个汉字或 32 个英文或数字,如果每行超过最大字数限制,会出现多出的字覆盖这行最开始的字,导致看起来乱码,所以使用该命令请确保字数在每行最大字数内,如果超过,请手动回车换行。

 

 

命令^Wn

该命令位于每行数据首位,用于控制此行字体横向放大 n 倍,可以不加,不加默认不放大。

例如:

^W2 放大 2 倍

此时“放大 2 倍”这几个字会横向放大 2 倍,效果见下图。

注意:正常大小的字体,每行最多可以打 16 个汉字或 32 个英文或数字,由于^Wn 命令会横向放大 n 倍,如果每行超过(最大字数/n)限制,会出现多出的字覆盖这行最开始的字,导致看起来乱码,所以使用该命令请确保字数在每行字数在(最大字数/n)内,如果超过,请手动回车换行。如^W4 测试打印机放大,共 7 个汉字,放大后会占用 28 个汉字的位置,已经超过每行最多 16 个汉字。

 

 

命令^Bn

该命令位于每行数据首位,用于控制此行字体横向纵向同时放大 n 倍,可以不加,不加默认不放大。

例如:

^B2 放大 2 倍

此时“放大 2 倍”这几个字会横向纵向同时放大 2 倍,效果见下图。

注意:正常大小的字体,每行最多可以打 16 个汉字或 32 个英文或数字,由于^Bn 命令会横向纵向同时放大 n 倍,如果每行超过(最大字数/n)限制,会出现多出的字覆盖这行最开始的字,导致看起来乱码,所以使用该命令请确保字数在每行字数在(最大字数/n)内,如果超过,请手动回车换行。如 ^B3 测试打印机放大,共 7 个汉字,放大后会占用 21 个汉字的位置,已经超过每行最多 16 个汉字。

 

 

效果图:

 

 

命令^Qn

该命令位于需要打印的宣传关注二维码链接首位,用于将链接自动转换成二维码,达到宣传关注的目的。n 的值为二维码链接的字符长度,用 ASCII 编码表示。此命令,可以不加,不加默认不打。

例如:

^Q +http://weixin.qq.com/r/2Eg2LkzEKRFWrQhN9123

此时 http://weixin.qq.com/r/2Eg2LkzEKRFWrQhN9123 的长度为 43,对应 ASCII 值是’+’,计算机可以自动计算长度,这里为了描述清晰,查出 43 对应的 ASCII 字符。此链接经过转换后的二维码效果见下图。

注意:此二维码最多支持 49 个字符,请不要加入中文。打印机会自动更具字符多少转换成大小不一样的二维码,智能打印在打印纸中间。使用最为广泛的就是微信公众号的关注二维码。

 

 

命令^Pn

该命令位于需要打印的动态支付二维码链接首位,用于将链接自动转换成二维码,达到支付宝等支付的目的(支付成功后,此二维码失效,即:扫描第二次不起作用)。n 的值为二维码链接的长度,用 ASCII 编码表示。此命令,可以不加,不加默认不打。

例如:

^P(https://qr.alipay.com/pmr1bs2a1i1udbumf7

此时“https://qr.alipay.com/pmr1bs2a1i1udbumf7”的长度为 40,对应 ASCII 值是’(’,计算机可以自动计算长度,这里为了描述清晰,查出 40 对应的 ASCII 字符。此链接经过转换后的支付二维码效果见下图。

注意:此动态支付二维码最多支持 49 个字符,请不要加入中文。打印机会自动更具字符多少转换成大小不一样的二维码,智能打印在打印纸中间。使用最为广泛的就是外卖或用餐结束后,结账时无需再使用现金或者刷卡浪费时间,直接使用支付宝扫描,输入密码支付完成即可,效率将非常高。

 

 

命令^On

该命令位于需要打印的动态条码(一维码)链接首位,用于将链接自动转换成扫描枪扫描的一维码,达到迅速录入的目的。n 的值为一维码的长度,用

ASCII 编码表示。此命令,可以不加,不加默认不打。

例如:

^P test12345

此时“test12345”的长度为 9,对应 ASCII 值是’ ’(水平制表符),计算机可以自动计算长度,这里为了描述清晰,查出 9 对应的 ASCII 字符。此条码转换后的效果见下图。

注意:此动态条码最多支持 13 个字符,请不要加入中文。打印机会自动更具字符多少转换成大小不一样的条码,智能打印在打印纸中间。使用最为广泛的就是物流、仓库和超市等地方,达到迅速录入或查找等应用。

 

 

时间: 2024-08-30 08:03:56

365小票打印机打印接口开发文档的相关文章

android-java web 怎么给安卓手机客户端提供接口? 开发文档不懂 跪求解决方法

问题描述 java web 怎么给安卓手机客户端提供接口? 开发文档不懂 跪求解决方法 用到的框架 spring+springMVC+myBatis 数据库 mysql 开发工具 eclipse 实现手机 注册 和登录 以及获取手机用户个人信息功能 这是开发文档 可供参考,真的不知道该从哪里入手 1.用户注册 参数名称 参数说明 长度要求 可选/必须 phone 用户注册的手机号 必须 password 用户密码(md5加密) 必须 code 手机验证码 6 必须 rndstring 随机字符串

特大优惠:物流软件源码+开发文档

问题描述 一.综合物流EDI管理系统(J2EE+Oracle)第三方物流管理系统(WEB查询,合同,CRM,运输管理,车辆跟踪等)二.大型仓储中心管理系统(pb+oracle)多仓库运营中心管理,条码扫描,EDI数据传输,费用结算,报表查询打印等三.船代营业系统(PB+SQL)船务调度管理系统,船次结算管理系统,集装箱箱管系统出口单证管理系统,出口费用结算系统,进口单证管理系统散杂货管理系统,远程电子订舱,通关及财务接口等四.货代营业系统(PB+SQL)货运出口运费系统,货运出口单证系统五.空运

JBuilder2005创建开发文档之Javadoc

ado|创建 虽然软件工程中把详细设计作为软件项目的一个重要的阶段,但在实践中往往没有得到落实.并不是这个阶段不重要,而是实施有很大的困难,因为软件需求是天生的易动症患者,好不容易详细设计出来后,需求已和当初的版本大相径庭,而花费巨大,精雕细琢的详细设计已变成昨日黄花了.另一方面,有一些功能实现往往要等到真正编码时才能想到更好的方法,毕竟设计时是"凭空想象",而编码时才是"实践操作",所以在编码时对原设计进行调整常常在所难免. 详细设计文档是源代码实现上的描述,但在

JBuilder2005创建开发文档之标签介绍

创建 Javadoc注释由Javadoc标签和描述性文本组成,你可以为类.接口添加注释,也可为构造函数.值域.方法等类中的元素添加注释.我们来看一个带Javadoc注释的程序,其代码如下所示: 代码清单 1 Person.java 1. package javadoc;2. import java.io.Serializable;3. /** 4. * <pre>描述人对象,拥有两个属性,分别是名字和性别.</pre>5. * @see javadoc.tool.Car6. * @

JBuilder2005创建开发文档之编写注释

创建 可以通过代码模板快速的录入Javadoc注释,你也可以选择通过Javadoc对话框以一种形象化的方式录入Javadoc注释.此外,JBuilder还提供了各种Javadoc的辅助功能,如JavadocInsight诱导录入,冲突报告和更正,特殊的todo标签等. 1.Javadoc对话框 在编辑器中,将光标放在类.方法.值域等元素定义处右击,在弹出的菜单中选择Add->Javadoc for XXX将调出Javadoc对话框.打开Person.java文件,将光标移到构造函数中,依照上述操

软件开发文档范例

在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性.精确性.清晰性.完整性.灵活性.可追溯性.接下来将是十三种文档的介绍(文档模板请下载附件) 1.可行性分析报告:   说明该软件开发项目的实现在技术上.经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由.  2.项目开发计划:       为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员.开发的进度.开发经费的预算.所需的硬件及软件资源等.  3.软件

大家怎么看待编程开发文档

问题描述 大家怎么看待编程开发文档 才学习文档的书写,感觉好长,好麻烦~不知道经验丰富的大牛们是怎么看待开发文档这个东西的? 解决方案 文档的几个基本原则(1)说明你要做什么,怎么做是代码说明的事情(2)接口要有详细的文档(3)不要把不需要的东西写在文档中,写的越多,有用的东西被看到的概率越低 解决方案二: 1.文档能帮助程序员理清思路2.文档能帮忙别人快速看懂你的程序3.文档需要简洁 http://www.iosask.com 解决方案三: 编程文挡有二类,一是别人的心得和技术资料,此类需要吃

php开发文档 会员收费1期_php实例

介绍 最新项目--会员收费,目的是要以更好的展现形式表现给用户,以及添加了新功能(会员机制). 索引 流程图 1> 展示界面 2> 获取折扣价格 接口说明 http请求脚本(curl或socket) 测试数据 流程图 其中里面的demo:是通过url进行展现,里面的mst是参数,通过不同的参数进行展现.如:http://www.demo.com/?mst=1表示参数为1的demo样式. 展示界面(4种情况)开发文档 会员收费1期_php实例-软件开发设计文档实例">获取折扣价格

微信小程序开发文档官方版发布

微信公众平台团队喜欢在深夜给人惊喜,这不,微信小程序开发文档昨晚23点半发出了,很多开发者表示要兴奋得睡不着了.和ytkah一起看看小程序文档吧!小程序文档包含:小程序简易教程.小程序框架.小程序组件.小程序API.小程序工具.Q&A 您不会错过这些内容:微信小程序设计指南官方版放出 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志.下载源码1. 获取微信小程