映美打印機-URL頁面打印

<?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_tokenprivate 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> <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>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914637.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914637.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914637.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習算法 ——XGBoost 的介紹和使用

前言&#xff1a; 最近在工作中遇到一個結構化數據回歸預測的問題&#xff0c;用到了很多回歸算法&#xff08;如多元線性回歸等&#xff09;都沒有很好的效果&#xff0c;于是使用了XGBoost&#xff0c;自己也沖三個特征參數人為的增加來幾個&#xff0c;訓練出來的效果還是很…

Linux操作系統之信號:保存與處理信號

目錄 前言&#xff1a; 前文回顧與補充&#xff1a; 信號的保存 PCB里的信號保存 sigset_t 信號集操作函數 信號的處理 信號捕捉的流程&#xff1a;?編輯 操作系統的運行原理 硬件中斷 時鐘中斷 死循環 軟中斷 總結&#xff1a; 前言&#xff1a; 在上一篇文…

Spring Boot 設置滾動日志logback

Spring Boot 的 logback 框架 Spring Boot 默認內置了 Logback 作為日志實現框架&#xff0c;只需要在resources文件夾下添加一個logback-spring.xml&#xff0c;springboot會按照你的設置自動開啟logback日志功能。 配置 logback-spring.xml 實現每天產生一個日志文件&#xf…

如何定義一個只能在堆上或棧上生成對象的類

在C中&#xff0c;可以通過特定的技術手段來控制對象只能在堆(heap)或棧(stack)上創建。只能在堆上創建對象的類要實現這一點&#xff0c;我們需要阻止用戶直接實例化對象&#xff0c;而只能通過new操作符創建。class HeapOnly { public:static HeapOnly* create() {return new…

1.1 前端-vue3項目的創建

構建工具先搭好vue3框架 vue2的vue-cli腳手架基于webpack構建工具創建vue的框架. 而在vue3&#xff0c;可以通過vite構建工具創建vue3項目&#xff0c;性能更優。 兩者創建方式的區別&#xff1a;cmd命令基于的構建工具vue2/vue3vue create 項目名稱&#xff08;或 vue ui圖形化…

PHP password_get_info() 函數

password_get_info() 函數用于返回指定散列&#xff08;hash&#xff09;的相關信息。 PHP 版本要求: PHP 5 > 5.5.0, PHP 7 語法 array password_get_info ( string $hash ) 參數說明&#xff1a; $hash: 一個由 password_hash() 創建的散列值。 返回值 返回三個元素…

mac上的app如何自動分類

使用文件夾進行手動分類在Finder中創建文件夾&#xff0c;將同類應用拖入同一文件夾。右鍵點擊Dock上的應用圖標&#xff0c;選擇「選項」→「在Finder中顯示」&#xff0c;可快速定位應用安裝位置。利用Launchpad自動分組打開Launchpad&#xff08;觸控板四指捏合或按F4鍵&…

LLM面試題目 3

LLM面試題目 3 什么是自注意力機制(Self-Attention)?為什么它在LLM中很重要?如何評估LLM的性能?LLM面臨的挑戰有哪些?Transformer和RNN的區別是什么?LLM如何處理多輪對話? 題目講解 什么是自注意力機制(Self-Attention)?為什么它在LLM中很重要? 自注意力機制是一種…

linux上的軟掛載操作方法

針對linux上的軟掛載 可以查看linux已經掛載和存儲的磁盤分區 df -hfdisk 命令是檢索相同信息的另一種方法&#xff0c;可以看到所有的磁盤分區 sudo fdisk -l 要將磁盤分區 /dev/sda1 掛載到 /home/visionx/EXD1 目錄 步驟 1&#xff1a;準備工作 1.創建掛載目錄&#xff08;如…

SecretFlow 隱語 (2) --- 隱語架構概覽

在前邊兩篇文章中&#xff0c;介紹了數據要素和可信流通相關的內容&#xff0c;以及基于p2p模式的安裝方法 SecretFlow 隱語 (1) --- 快速入門 關于在Linux上部署 SecretFlow --- P2P部署模式 由于安裝過程中出現意外報錯&#xff0c;現已提交issue等待官方技術人員查閱&#x…

PHP語言基礎知識(超詳細)第二節

二十七. 數組的遍歷 1)通過函數進行遍歷:(例:demo07) (此方式不能完全遍歷數組,需要借助其他功能輔助)(不推薦,了解即可) key():返回數組中當前指針所在位置的鍵。 current():返回數組中當前指針所在位置的值。 例如:demo07: <?php/*key():返回數組中…

網絡--OSPF實驗

目錄 OSPF實驗報告 一、實驗拓撲 二、實驗要求 三、實驗思路 1.IP地址劃分 2. OSPF 部署 3. 其它配置 4. 驗證測試 四、實驗步驟 1.IP 地址配置 2.OSPF 部署 3.其它配置 4.驗證測試 OSPF實驗報告 一、實驗拓撲 二、實驗要求 1、R1-R3為區域0&#xff0c;R3-R4為…

Go語言第一個程序--hello world!

文章目錄一、Go 語言程序安裝二、運行程序三、go mod tidy 命令四、遇到的問題五、VS Code 調試 go 程序的相關配置說明一、Go 語言程序安裝 Go語言下載鏈接&#xff1a;https://studygolang.com/dl 雙擊打開下一步下一步即可。 驗證安裝&#xff1a;go version 二、運行程序 創…

【MCU控制 初級手札】1.1 電阻

作者&#xff1a;電控工程手札 本博文內容著作權歸作者所有&#xff0c;轉載請務必保留本文鏈接 目錄1. 定義2. 電導3. 電阻率4. 電導率5. 伏安特性6. 開路與短路7. 功率8. 應用元件特性&#xff08;端子特性&#xff09;&#xff1a;元件的兩個端子的電路物理量之間的代數函數…

JS中async/await功能介紹和使用演示

JS 中 async/await 功能介紹與使用演示 一、功能介紹基本概念 async&#xff1a;用于聲明異步函數&#xff0c;返回一個 Promise 對象。即使函數內沒有顯式返回 Promise&#xff0c;也會隱式將返回值封裝為 Promise.resolve()。await&#xff1a;僅能在 async 函數內部使用&…

系統調用入口機制:多架構對比理解(以 ARM64 為主)

&#x1f4d6; 推薦閱讀&#xff1a;《Yocto項目實戰教程:高效定制嵌入式Linux系統》 &#x1f3a5; 更多學習視頻請關注 B 站&#xff1a;嵌入式Jerry 系統調用入口機制&#xff1a;多架構對比理解&#xff08;以 ARM64 為主&#xff09; 本篇內容聚焦于系統調用的入口實現機…

java MultipartFile初始化

在Java中&#xff0c;MultipartFile 是Spring框架中用于處理文件上傳的接口。?開發者通常不會直接初始化MultipartFile對象&#xff0c;而是通過Spring MVC的控制器方法參數接收上傳的文件。如果需要在測試或模擬場景中創建其實例&#xff0c;可以使用Spring的MockMultipartFi…

Linux C IO多路復用

在上一節利用管道實現了一個簡單的聊天室&#xff0c;但這個聊天室有一個很明顯的問題就是&#xff0c;當A處于讀阻塞情況下是不能向B發送消息的&#xff0c;只有收到B的消息才能發送。如何實現同時既能接受B的消息&#xff0c;又能向其發送消息&#xff1f;很遺憾&#xff0c;…

day21——特殊文件:XML、Properties、以及日志框架

文章目錄一、特殊文件概述二、Properties屬性文件2.1 文件特點2.2 Properties類解析2.3 寫入屬性文件三、XML文件詳解3.1 XML核心特性3.2 XML解析&#xff08;Dom4J&#xff09;3.3 XML寫入3.4 XML約束&#xff08;了解&#xff09;四、日志技術&#xff08;Logback&#xff09…

經典VB與現代VB(VB.NET)

Visual Basic&#xff08;VB&#xff09;目前其發展狀態可以分為經典VB&#xff08;VB6及之前&#xff09;?和現代VB&#xff08;VB.NET&#xff09;?兩個階段。經典VB誕生于1991年&#xff0c;憑借?“快速開發&#xff08;Rapid Application Development, RAD&#xff09;”…