映美打印机-URL页面打印

php 复制代码
<?php
/**
打印 - 映美云 https://open.jolimark.com/doc/
*/
namespace Home\Controller;
use Admin\Logic\OrderLogic;

class PrintController extends BaseController {
	
	private $appid = "";
	private $appkey = "";
	//打印机编号
	private $deviceIds = "";
	
	//订单打印 - URL地址打印
	public function order_print($order_id = 0)
	{
		$orderLogic = new OrderLogic();
		$order = $orderLogic->getOrderInfo($order_id);
		if (empty($order)) {
			$this->error('订单不存在');
            exit;
		}
		$url = "https://mcp.jolimark.com/mcp/v3/sys/PrintHtmlUrl";
		$access_token = $this->get_access_token();
		$params = [
			'app_id'		=> $this->appid,
			'access_token'	=> $access_token,
			'device_ids'	=> $this->deviceIds,
			'cus_orderid'	=> $order['order_sn'],
			'bill_content'	=> "http://xxxxx.com/Home/Print/order_print_view/id/".$order_id,
			'paper_width'	=> 98,    //打印纸宽度
			'paper_height'	=> 98,    //打印纸高度
			'paper_type'	=> 2,     //标签纸
		];
		$res = httpRequest($url, "POST", $params);
		$res  = json_decode($res, true);
		if ($res['return_code'] == 0) {
			return true;
		}
		else {
			return false;
		}
	}
	
	//订单打印页
	public function order_print_view()
	{
		$order_id = I("get.id",'0');
		$orderLogic = new OrderLogic();
        $order = $orderLogic->getOrderInfo($order_id);
		if (empty($order)) {
			$this->error('订单不存在');
            exit;
		}
        $orderGoods = $orderLogic->getOrderGoods($order_id);
		
		$this->assign('order', $order);
		$this->assign('orderGoods',$orderGoods);
		$this->display();
	}
	
	//获取access_token
	private function get_access_token()
	{
		$access_token = S('jolimark_access_token');
		if (!$access_token)
		{
			$url = "https://mcp.jolimark.com/mcp/v3/sys/GetAccessToken";
			$time_stamp = time();
			$param_url = "app_id={$this->appid}&sign_type=MD&time_stamp={$time_stamp}&key={$this->appkey}";
			$sign = strtoupper( MD5($param_url) );
			$url .= "?".$param_url."&sign=".$sign;
			$res  = httpRequest($url, "GET");
			$res  = json_decode($res, true);
			if ($res['return_code'] == 0)
			{
				$access_token = $res['return_data']['access_token'];
				S('jolimark_access_token', $access_token, $res['return_data']['expires_in']);
			}
		}
		return $access_token;
	}
}

URL订单页面排版代码

html 复制代码
<html> 
 <head> 
   <title>配送小票</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     </head> 
   <body> 
   <!--小票基本信息--> 
     <p><label style="font-size:48px;font-weight:bold;">订单打印</label></p> 
         <!--配送信息--> 
     <hr style="print-char:*;"> 
     <p><label style="font-size:34px;font-weight:bold;">{$order.address2} - <if condition="$order.shipping_price eq '0.00'">到店自取<else />{$order.shipping_name}</if></label></p> 
     <p><label style="font-size:34px;font-weight:bold;">{$order.consignee}</label></p> 
     <p><label style="font-size:34px;font-weight:bold;">{$order.mobile}</label></p> 
     <hr style="print-char:*;"> 
     <p><label>订单编号: </label><label>{$order.order_sn}</label></p> 
     <p><label>下单时间: </label><label>{$order.add_time|date='Y-m-d H:i',###}</label></p>
	 <p><label>支付方式: </label><label>{$order.pay_name}</label></p>
	 <p><label>客服电话: </label><label>13245566789</label></p>
     <p><label style="font-weight:bold;">到店取件码: </label><label style="font-weight:bold;">{$order.pickup_code}</label></p>
     <!--小票明细--> 
     <hr style="print-char:-;print-text:物品;"> 
	<volist name="orderGoods" id="good">
    <p> 
		<label style="width:71%;font-weight:bold;">{$good.goods_name}</label> 
       <label style="width:13%;font-weight:bold;text-align:center;">X{$good.goods_num}</label> 
       <label style="width:16%;font-weight:bold;text-align:right;">{$good[goods_total] - $good[zhekou]}</label> 
    </p>
	</volist>
     <p>
     <!--费用明细--> 
     <hr style="print-char:-;print-text:其它费用;"> 
     <p> 
     <label style="width:85%;font-weight:bold;">运费</label> 
       <label style="width: 15%;font-weight:bold;text-align:right;">{$order.shipping_price}</label> 
	 </p>
	 <p> 
     <label style="width:85%;font-weight:bold;">新人立领</label> 
       <label style="width: 15%;font-weight:bold;text-align:right;">{$order.fuli_price}</label> 
	 </p> 
	 <p> 
     <label style="width:85%;font-weight:bold;">活动优惠</label> 
       <label style="width: 15%;font-weight:bold;text-align:right;">{$order.cut_fee}</label> 
	 </p> 
     <p><label style="text-align:right;font-weight:bold;font-size:36px;">总计: {$order.order_amount}</label></p> 
     <!-- <br /> -->
     <!-- <h3 style="text-align:center;font-size:48px;font-weight:bold;">=== #1 完 ===</h3>  -->
     <!-- <br />  -->
     </body> 
   </html>
相关推荐
网安情报局6 小时前
告别排队与高延迟:直连GPT全系列,解锁低门槛、高稳定的AI生产力
人工智能·gpt·api·ai大模型
酉鬼女又兒6 小时前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
神仙别闹7 小时前
基于 PHP + MySQL学生信息管理系统
android·mysql·php
天启HTTP10 小时前
开启全局代理后网络变慢,问题出在哪
开发语言·前端·网络·tcp/ip·php
荒-漠10 小时前
phpstorm2026版本汉化
php·phpstorm
狗凯之家源码网11 小时前
PHP 原版公众号无限回调系统修复版效果实测
开源·php
神仙别闹11 小时前
基于 PHP + MySQL 图书库存管理系统
android·mysql·php
2601_9618451512 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
CRMEB系统商城1 天前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
修炼室1 天前
外网环境原生直连校内服务器:基于内网穿透 + SSH 密钥认证的完整实践指南
服务器·ssh·php