ThinkPHP对接易联云打印

引入composer包

composer require yly-openapi/yly-openapi-sdk

php 复制代码
<?php

namespace app\common\library;

use app\admin\model\yp\Order;
use App\Api\PrintService;
use App\Config\YlyConfig;
use App\Oauth\YlyOauthClient;
use think\Cache;
use think\Config;

class Yly
{

    /**
     * 易联云打印订单
     * @param $security_info
     * @return int
     * @throws \think\Exception
     */
    public function print_yly($security_info)
    {
        //获取配置中的应用id和密匙
        $config = new YlyConfig(Config::get('site.clientId'), Config::get('site.clientSecret'));
        $client = new YlyOauthClient($config);
        try {
            $token = Cache::get('access_token');
            if ($token) {
                $token = json_decode($token);
            }
            if (!$token) {
                $token = $client->getToken();
                Cache::set('access_token', json_encode($token), 864000);
            }
        } catch (Exception $e) {
            throw new \think\Exception('获取或更新access_token的次数,已超过最大限制! ');
            echo $e->getMessage() . "\n";
            print_r(json_decode($e->getMessage(), true));
            return;
        }

        $access_token = $token->access_token;           //调用API凭证AccessToken 永久有效,请妥善保存.
        $refresh_token = $token->refresh_token;         //刷新AccessToken凭证 失效时间35天
        $expires_in = $token->expires_in;               //自有型应用可忽略此回调参数, AccessToken失效时间30天         //机器码
        $origin_id = time();                                //内部订单号(32位以内)
        /**文本接口开始**/
        $print = new PrintService($access_token, $config);
        //58mm排版 排版指令详情请看 http://doc2.10ss.net/332006
        $content = '';//
        $content .= "<FS2><center>金蛋到家</center></FS2>";
        $content .= "时间:".date('Y-m-d H:i:s', $security_info->createtime) . "\n";
        $content .= "单号:". $security_info->order_no . "\n";
        $content .= "姓名:". $security_info->name . "\n";
        $content .= "电话:". $security_info->phone . "\n";
        $content .= "城市:". $security_info->city . "\n";
        $content .= "地址:". $security_info->address . "\n";
        $content .= "商品:------------". "\n";
        foreach ($security_info->item as $key=>$value){
            $content .= $value['goods_title']."*".$value['num']."\n";
        }
        $content .= "-----------------". "\n";
        $content .= "备注:". $security_info->remarks . "\n";
        $content .= "金额:". $security_info->goods_money . "\n";
        $youhui = $security_info->goods_money-$security_info->actual_money;
        if($youhui >0){
            $content .= "优惠:". $youhui . "\n";
        }
        $content .= "实付:". $security_info->actual_money . "\n";
        try {
            //获取配置中的设备号
            $res = $print->index(Config::get('site.machineCode'), $content, $origin_id);
        } catch (Exception $e) {
            throw new \think\Exception('打印失败');
            return 0;
        }
        //打印状态升级成已打印
        Order::where('id',$security_info->id)->where('print_status','0')->update(['print_status'=>'1']);
        return 1;
    }

}

如上,传入一个订单信息,根据订单信息定义打印文本

易联云文档:指令集 · yilianyun-open-api · 看云

相关推荐
望获linux10 分钟前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
不吃肉的羊17 分钟前
PHP设置文件上传最大值
后端·php
网硕互联的小客服3 小时前
服务器经常出现蓝屏是什么原因导致的?如何排查和修复?
运维·服务器·stm32·单片机·网络安全
witton3 小时前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
成都极云科技3 小时前
成都算力租赁新趋势:H20 八卡服务器如何重塑 AI 产业格局?
大数据·服务器·人工智能·云计算·gpu算力
喜欢吃豆3 小时前
从零构建MCP服务器:FastMCP实战指南
运维·服务器·人工智能·python·大模型·mcp
刘阿宾3 小时前
【华为昇腾|CUDA】服务器A6000显卡部署LLM实战记录
服务器·华为·语言模型·gpu算力·kylin
海外空间恒创科技3 小时前
恒创科技:香港站群服务器做seo站群优化效果如何
运维·服务器·科技
搬码临时工3 小时前
内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
运维·服务器·ssh
用户58126769320084 小时前
记一次腾讯云轻量级服务器 Docker 拉取镜像失败的深度排查
服务器