映美打印机-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>
相关推荐
QuantiCore_IO2 小时前
量化回测复权数据的工程实践:从 API 获取到数据质量验证
后端·github·api
盛世宏博智慧档案2 小时前
IP 温湿度设备频繁断连?TCP 心跳保活机制调试与参数设置指南
网络·网络协议·tcp/ip·php·传感器·温湿度
Soari3 小时前
交换机转发模式
开发语言·网络·php
ESDWAN4 小时前
海外股票网络环境优化与交易场景应用:从行情获取到交易系统稳定性设计
开发语言·网络·php
高频因子挖掘机5 小时前
Python 批量获取股票行情后,如何用 Pandas 统一字段、索引和数据类型?
后端·github·api
高频因子挖掘机5 小时前
多股票 K 线如何用 Pandas 对齐?从收益率计算到横截面分析
后端·github·api
WeiXin_DZbishe13 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
WeiXin_DZbishe15 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
WeiXin_DZbishe16 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
Hum8le19 小时前
漏洞知识点《php伪协议》
开发语言·安全·web安全·php