> **特别提醒:在购买和使用此插件前请确认你已购买芯烨`小票云打印机`或`标签云打印机`。**
> 京东商城推荐:[芯烨(XINYE)XP-T58H全自动外卖接单小票打印机 美团饿了么百度热敏云打印机真人语音 收银票据无线WIFI版](https://www.juzhigou.com/go/jump?url=https%3A%2F%2Funion-click.jd.com%2Fjdc%3Fe%3D618%257Cpc%257C%26p%3DJF8BARQJK1olXwQAVVdUAE8WBl8IGloUXQEFV1lYDUwnRzBQRQQlBENHFRxWFlVPRjtUBABAQlRcCEBdCUoWA2gPGFwQWAEdDRsBVXtuRxYOaQFqXGRnJlYtEhZxUxNMUB11UQoyVW5dCUoUBGgBG1oUbTYCU24fZgJWQDdXXg9WWg8HV1ldAHsWM28PE1kVVQIDUFpUDUInBG8BK10SXw8BXV1bFEMQBm4MH10RbTYyV25aCEIDBR1JSU8TLzYyVG5eOEsWA2YOGV4XXQYCSF5cDU0RAXMIHFMXXQ4GVVtcAUgWM20JGl8cbTYyUwIuUQ1gCjp2ZQddDVFiUlkneA9EWStwdVlcD11BUBsbVDVtYQhDZx1NWzY)
[![芯烨(XINYE)XP-T58H全自动外卖接单小票打印机](https://img30.360buyimg.com/sku/jfs/t1/150614/30/10828/235947/5fd88370E4b269c81/3dd860524dea2c32.jpg "芯烨(XINYE)XP-T58H全自动外卖接单小票打印机")](https://www.62720.com/page/jump?url=https%3A%2F%2Funion-click.jd.com%2Fjdc%3Fe%3D618%257Cpc%257C%26p%3DJF8BARQJK1olXwQAVVdUAE8WBl8IGloUXQEFV1lYDUwnRzBQRQQlBENHFRxWFlVPRjtUBABAQlRcCEBdCUoWA2gPGFwQWAEdDRsBVXtuRxYOaQFqXGRnJlYtEhZxUxNMUB11UQoyVW5dCUoUBGgBG1oUbTYCU24fZgJWQDdXXg9WWg8HV1ldAHsWM28PE1kVVQIDUFpUDUInBG8BK10SXw8BXV1bFEMQBm4MH10RbTYyV25aCEIDBR1JSU8TLzYyVG5eOEsWA2YOGV4XXQYCSF5cDU0RAXMIHFMXXQ4GVVtcAUgWM20JGl8cbTYyUwIuUQ1gCjp2ZQddDVFiUlkneA9EWStwdVlcD11BUBsbVDVtYQhDZx1NWzY "芯烨(XINYE)XP-T58H全自动外卖接单小票打印机")
# 1. 获取接口秘钥
第一步: 登录芯烨云开放平台 https://admin.xpyun.net/ ,没有账号请直接注册并登录。
第二步: 登录开放平台后,打开此链接:https://admin.xpyun.net/user-manage/identity-auth 完成实名认证。
第三步: 待实名认证审核通过后,打开此链接:https://admin.xpyun.net/user-manage/user-info 获取`开发者ID`和`开发者秘钥`。
第四步: 进入您的网站管理后台:系统 -> 系统管理 -> 应用管理页面,找到`芯烨云打印`应用,点击`配置`按钮,在弹出的表单里面填写第三步获取到的`开发者ID`和`开发者秘钥`即可。
# 2. 添加打印设备
![添加打印设备](/upload/image/b7/f0cd2bc16ef6b6fa466acb41f58eb93e7a7d2d.jpg "添加打印设备")
# 3. 创建模板
![添加模板](/upload/image/ec/33c8d14cd44e0d0907c1ebac112ce1889dc41c.jpg "添加模板")
示例模板内容如下:
```html
<CB> 自营外卖单 {:PHP_EOL}
<L><N>--------------------------------{:PHP_EOL}
<CB>--{$order['receive_method']==1?'骑手配送':($order['receive_method']==2?($order['dining_method']==1?'店内就餐':'打包带走'):($order['receive_method']==3?'到店自提':'定点取货'))}--{:PHP_EOL}
<L><N>下单时间:{:date('Y年m月d日 H时i分', strtotime($order['create_time']))}{:PHP_EOL}
订单编号:{$order['order_no']}{:PHP_EOL}
**************商品**************{:PHP_EOL}
{foreach name="$order['skus']" id="item"}{php}$len = 28-str_len($item['name'].$item['quantity'].$item['price']);{/php}<L><N>{$item['name']}{:str_repeat(' ', $len)} x{$item['quantity']} {$item['price']}</L>{:PHP_EOL}
{/foreach}
--------------------------------{:PHP_EOL}
配送费:¥{$order['delivery_fee']}{:PHP_EOL}
--------------------------------{:PHP_EOL}
小计:¥{$order['product_amount']+$order['delivery_fee']}{:PHP_EOL}
<L><N>********************************{:PHP_EOL}
<B>订单总价:¥{$order['order_amount']}{:PHP_EOL}
<N>地址:{$order['consignee_address']}{:PHP_EOL}
电话:{$order['consignee_name']} {$order['consignee_mobile']}{:PHP_EOL}
备注:{$order['buyer_memo']}{:PHP_EOL}
<C><HB>** 完 **{:PHP_EOL}
<L><N>请使用微信扫码{:PHP_EOL}
<L><QRCODE s=6 e=L l=center>二维码地址</QRCODE>
```
>模板内容支持直接使用TP内置的所有模板标签。
# 4. 如何调用?
| 参数名 | 类型 | 必须 | 默认值 | 说明 |
| :------------: | :------------: | :------------: | :------------: | :------------|
| order_no | int/string | 必须 | | 内部订单号 |
| template | string | 可选 | | 模板别名,通过后台模板管理页面获取,`当content参数为空时,此参数为必须` |
| content | string/array | 可选 | | 打印内容,`当template里面含有变量时,请传入数据集合` |
| sn | string | 可选 | | 设备号,不指定将自动提取可用设备号 |
| copies | int | 可选 | 1 | 打印份数 |
| cutter | int | 可选 | 0 | 切刀控制开关,1关闭云端切刀,若想自己设置切刀位置,可以通过 <CUT> 标签设置切刀 `仅用于支持切刀的芯烨云打印机` |
| voice | int | 可选 | 2 | 声音播放模式,0 取消订单,1 静音模式,2 来单播放,3 申请退单 |
| mode | int | 可选 | 0 | 打印模式:值为 0 或不指定则会检查打印机是否在线,如果不在线 则不生成打印订单,直接返回设备不在线状态码;如果在线则生成打印订单,并返回打印订单号。值为 1不检查打印机是否在线,直接生成打印订单,并返回打印订单号。如果打印机不在线,订单将缓存在打印队列中,打印机正常在线时会自动打印。 |
| expiresIn | int | 可选 | 0 | 订单有效期,单位:秒。订单打印时,超过该时间的订单将不会自动加载打印,当参数设置为 0 时,将采用系统默认设置值。`使用该参数时,需要将参数mode 设置为1`。取值范围:0 < expiresIn < 86400。 |
| payType | int | 可选 | | 支付方式:支付宝 41、微信 42、云支付 43、银联刷卡 44、银联支付 45、会员卡消费 46、会员卡充值 47、翼支付 48、成功收款 49、嘉联支付 50、壹钱包 51、京东支付 52、快钱支付 53、威支付 54、享钱支付55`仅用于支持金额播报的芯烨云打印机` |
| payMode | int | 可选 | | 支付与否:退款 59 到账 60 消费 61 `仅用于支持金额播报的芯烨云打印机` |
| money | float | 可选 | | 播报金额,最多允许保留2位小数 `仅用于支持金额播报的芯烨云打印机` |
>示例1:直接打印内容
```php
$param = [
'order_no' => 202301010101,
'voice' => 2,
'copies' => 1,
'payMode' => 60,
'payType' => 42,
'money' => 50,
'content' => '这是一张小票测试单',
];
$resp = $this->pluginXpyunLogicXpyun->printTicket($param);// 直接调用
// $resp = event('PrintTicket', $param, true);// 通过事件函数调用
if ($resp['code']) {// 成功
print_r($resp['data']);
} else {// 失败
echo $resp['msg'];
}
```
>示例2:通过模板打印
```php
$param = [
'order_no' => 202301010101,
'voice' => 2,
'copies' => 1,
'payMode' => 60,
'payType' => 42,
'money' => 50,
'template' => 'order',
'content' => [// 此处的示例数据是配合第三步的示例模板使用的
'order' => [
'order_no' => 2023082711185582242,
'receive_method' => 1,
'order_amount' => 115.00,
'delivery_fee' => 0.00,
'product_amount' => 115.00,
'buyer_memo' => '',
'consignee_name' => '张三',
'consignee_mobile' => 13888888888,
'consignee_address' => '花园小区一期 1 栋 1001',
'dining_method' => 0,
'create_time' => '2023-08-27 11:18:55',
'skus' => [
[
'name' => '猪脚饭',
'spec' => '',
'quantity' => 5,
'price' => 23.00,
],
],
]
],
];
$resp = $this->pluginXpyunLogicXpyun->printTicket($param);// 直接调用
// $resp = event('PrintTicket', $param, true);// 通过事件函数调用
if ($resp['code']) {// 成功
print_r($resp['data']);
} else {// 失败
echo $resp['msg'];
}
```