// +---------------------------------------------------------------------- namespace crmeb\services\printer\storage; use crmeb\services\PrinterService; class FeiEYun extends PrinterService { const HOST = 'http://api.feieyun.cn/Api/Open/'; /** * 初始化 * @param array $config * @return mixed|void */ protected function initialize(array $config) { } /** * 开始打印 * @return bool|mixed|string * @throws \Exception */ public function startPrinter() { if (!$this->printerContent) { return $this->setError('Missing print'); } $time = time(); $request = $this->accessToken->postRequest($this->accessToken->getApiUrl(), [ 'user' => $this->accessToken->partner, 'stime' => $time, 'sig' => sha1($this->accessToken->partner . $this->accessToken->clientId . $time), 'apiname' => 'Open_printMsg', 'sn' => $this->accessToken->machineCode, 'content' => $this->printerContent, 'times' => $this->times ]); $res = json_decode($request, true); if ($res['msg'] == 'ok') { return $res; } else { return $this->setError($res['msg']); } } public function setPrinterContent(string $content, int $times = 1): self { $this->times = $times; $this->printerContent = $content; return $this; } // /** // * 设置打印内容 // * @param array $config // * @return YiLianYun // */ // public function setPrinterContent(array $config): self // { // $printTime = date('Y-m-d H:i:s', time()); // $product = $config['product']; // $orderInfo = $config['orderInfo']; // $orderTime = $orderInfo['pay_time']; // $this->printerContent = '**' . $config['name'] . '**
'; // $this->printerContent .= '--------------------------------
'; // $this->printerContent .= '订单编号:' . $orderInfo['order_sn'] . '
'; // $this->printerContent .= '打印时间: ' . $printTime . '
'; // $this->printerContent .= '付款时间: ' . $orderTime . '
'; // $this->printerContent .= '姓 名: ' . $orderInfo['real_name'] . '
'; // $this->printerContent .= '电 话: ' . $orderInfo['user_phone'] . '
'; // $this->printerContent .= '地 址: ' . $orderInfo['user_address'] . '
'; // $this->printerContent .= '赠送积分: ' . $orderInfo['give_integral'] . '
'; // $this->printerContent .= '订单备注:' . $orderInfo['mark'] . '
'; // $this->printerContent .= '**************商品**************
'; // $this->printerContent .= '名称 售价 数量 优惠价
'; // $this->printerContent .= '--------------------------------
'; // foreach ($product as $item) { // $name = $item['store_name']; // $price = $item['product_price']; // $num = $item['product_num']; // $prices = $item['price']; // $kw3 = ''; // $kw1 = ''; // $kw2 = ''; // $kw4 = ''; // $str = $name; // $blankNum = 14;//名称控制为14个字节 // $lan = mb_strlen($str, 'utf-8'); // $m = 0; // $j = 1; // $blankNum++; // $result = array(); // if (strlen($price) < 6) { // $k1 = 6 - strlen($price); // for ($q = 0; $q < $k1; $q++) { // $kw1 .= ' '; // } // $price = $price . $kw1; // } // if (strlen($num) < 3) { // $k2 = 3 - strlen($num); // for ($q = 0; $q < $k2; $q++) { // $kw2 .= ' '; // } // $num = $num . $kw2; // } // if (strlen($prices) < 6) { // $k3 = 6 - strlen($prices); // for ($q = 0; $q < $k3; $q++) { // $kw4 .= ' '; // } // $prices = $prices . $kw4; // } // for ($i = 0; $i < $lan; $i++) { // $new = mb_substr($str, $m, $j, 'utf-8'); // $j++; // if (mb_strwidth($new, 'utf-8') < $blankNum) { // if ($m + $j > $lan) { // $m = $m + $j; // $tail = $new; // $lenght = iconv("UTF-8", "GBK//IGNORE", $new); // $k = 14 - strlen($lenght); // for ($q = 0; $q < $k; $q++) { // $kw3 .= ' '; // } // if ($m == $j) { // $tail .= $kw3 . ' ' . $price . ' ' . $num . ' ' . $prices; // } else { // $tail .= $kw3 . '
'; // } // break; // } else { // $next_new = mb_substr($str, $m, $j, 'utf-8'); // if (mb_strwidth($next_new, 'utf-8') < $blankNum) { // continue; // } else { // $m = $i + 1; // $result[] = $new; // $j = 1; // } // } // } // } // $head = ''; // foreach ($result as $key => $value) { // if ($key < 1) { // $v_lenght = iconv("UTF-8", "GBK//IGNORE", $value); // $v_lenght = strlen($v_lenght); // if ($v_lenght == 13) $value = $value . " "; // $head .= $value . ' ' . $price . ' ' . $num . ' ' . $prices; // } else { // $head .= $value . '
'; // } // } // $this->printerContent .= $head . $tail; // unset($price); // } // $this->printerContent .= '--------------------------------
'; // $this->printerContent .= '合计:' . number_format($orderInfo['total_price'], 2) . '元
'; // $this->printerContent .= '邮费:' . number_format($orderInfo['pay_postage'], 2) . '元
'; // $this->printerContent .= '优惠:' . number_format($orderInfo['coupon_price'], 2) . '元
'; //// $this->printerContent .= '抵扣:' . number_format($orderInfo['deduction_price'], 1) . '元
'; // $this->printerContent .= '实际支付:' . number_format($orderInfo['pay_price'], 2) . '元
'; //// $this->printerContent .= '' . $config['url'] . '';//把解析后的二维码生成的字符串用标签套上即可自动生成二维码 // return $this; // } }