1、数据库执行以下SQL
INSERT INTO `ysh_shop_config` VALUES ('11', '0', 'gprsprint', 'group', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1101', '11', 'gprsprint_no', 'text', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1102', '11', 'gprsprint_key', 'text', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1103', '11', 'gprsprint_mobile', 'text', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1104', '11', 'gprsprint_host', 'text', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1105', '11', 'gprsprint_port', 'text', '', '', '', '1');
INSERT INTO `ysh_shop_config` VALUES ('1106', '11', 'gprsprint_open', 'select', '1,0', '', '0', '1');
ALTER TABLE `ysh_order_info` ADD `gprsprint` TINYINT( 1 ) NOT NULL DEFAULT '0';
2、语言包添加内容
\languages\zh_cn\admin\shop_config.php
$_LANG['cfg_name']['gprsprint'] = 'GPRS打印机设置';
$_LANG['cfg_name']['gprsprint_no'] = '打印机编号';
$_LANG['cfg_name']['gprsprint_key'] = '打印机秘钥';
$_LANG['cfg_name']['gprsprint_mobile'] = '手机号';
$_LANG['cfg_name']['gprsprint_host'] = '服务IP';
$_LANG['cfg_name']['gprsprint_port'] = '服务端口';
$_LANG['cfg_name']['gprsprint_open'] = '开启打印';
$_LANG['cfg_range']['gprsprint_open']['1'] = '开启';
$_LANG['cfg_range']['gprsprint_open']['0'] = '关闭';
3、把cls_http.php拷贝到 includes目录下
4、Includes/lib_base.php 中增加打印方法
function wp_print($oid,$times=1){
include_once(ROOT_PATH . 'includes/lib_order.php');
$order_status = array("未确认","已确认","已取消","无效","退货"); //订单状态
$pay_status = array("未付款","付款中","已付款"); //支付状态
//商品订单信息
$order = order_info($oid);
//订单中包含的商品
$ordergoods = order_goods($oid);
$sql = "SELECT concat(IFNULL(c.region_name, ''), ' ', IFNULL(p.region_name, ''), " .
"' ', IFNULL(t.region_name, ''), ' ', IFNULL(d.region_name, '')) AS region " .
"FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
"LEFT JOIN " . $GLOBALS['ecs']->table('region') . " AS c ON o.country = c.region_id " .
"LEFT JOIN " . $GLOBALS['ecs']->table('region') . " AS p ON o.province = p.region_id " .
"LEFT JOIN " . $GLOBALS['ecs']->table('region') . " AS t ON o.city = t.region_id " .
"LEFT JOIN " . $GLOBALS['ecs']->table('region') . " AS d ON o.district = d.region_id " .
"WHERE o.order_id = '$order[order_id]'";
$order['region'] = $GLOBALS['db']->getOne($sql);
$device_no = $GLOBALS['_CFG']['gprsprint_no'];
$key = $GLOBALS['_CFG']['gprsprint_key'];
$orderInfo = '<CB>订单信息</CB><BR>';//标题字体如需居中放大,就需要用标签套上
$orderInfo .= '订单号:'.$order['order_sn'].'<BR>';
//$orderInfo .= '订单状态:'.$order_status[$order['order_status']].'<BR>';
$orderInfo .= '支付状态:'.$pay_status[$order['pay_status']].'<BR>';
$orderInfo .= '收货人:'.$order['consignee'].'<BR>';
$orderInfo .= '收货地址:'.$order['region'].$order['address'].'<BR>';
$orderInfo .= '邮编:'.$order['zipcode'].'<BR>';
if ($order['tel'])$orderInfo .= '电话:'.$order['tel'].'<BR>';
if ($order['mobile'])$orderInfo .= '手机:'.$order['mobile'].'<BR>';
$orderInfo .= '配送方式:'.$order['shipping_name'].'<BR>';
$orderInfo .='------------------------------------<BR>';
if ($order['money_paid'])$orderInfo .= '已付款金额:'.$order['money_paid'].'<BR>';
$orderInfo .= '支付方式:'.$order['pay_name'].'<BR>';
$orderInfo .='------------------------------------<BR>';
$orderInfo .= '<CB>商品明细</CB><BR>';
$orderInfo .='------------------------------------<BR>';
foreach ($ordergoods as $v){
$orderInfo .= $v['goods_name'].'('.$v['goods_sn'].')'.'×'.$v['goods_number'].'(件)×'.$v['goods_price'].'='.$v['subtotal'].'<BR>';
}
$orderInfo .='------------------------------------<BR>';
$orderInfo .= '商品总价:'.$order['goods_amount'].'<BR>';
$orderInfo .= '支付费用:'.$order['pay_fee'].'<BR>';
$orderInfo .= '使用余额:'.$order['surplus'].'<BR>';
if ($order['discount'])$orderInfo .= '折扣金额:'.$order['discount'].'<BR>';
if ($order['pay_time'])$orderInfo .= '支付时间:'.$order['pay_time'].'<BR>';
if ($order['to_buyer'])$orderInfo .= '客户留言:'.$order['to_buyer'].'<BR>';
$orderInfo .='------------------------------------<BR>';
$orderInfo .= '打印时间:'.date('Y-m-d H:i:s',time()).'<BR>';
$selfMessage = array(
'clientCode'=>$device_no,
'printInfo'=>$orderInfo,
'apitype'=>'php',
'key'=>$key,
'printTimes'=>$times
);
//日志记录
$logfile = ROOT_PATH . '/printlog/' . $oid .'_'.time(). '.txt';
file_put_contents($logfile, json_encode($selfMessage), LOCK_EX);
$rs = sendSelfFormatMessage($selfMessage);
$rs = json_decode($rs,TRUE);
if($rs['reslutCode']=='0'){
return TRUE;
}
//{"reslutCode":0,"msg":"success"}
exit();
}
function sendSelfFormatMessage($msgInfo){
include_once(ROOT_PATH . 'includes/cls_http.php');
$client = new HttpClient($GLOBALS['_CFG']['gprsprint_host'],$GLOBALS['_CFG']['gprsprint_port']);
$client->HttpClient($GLOBALS['_CFG']['gprsprint_host'],$GLOBALS['_CFG']['gprsprint_port']);
if(!$client->post('/FeieServer/printSelfFormatOrder',$msgInfo)){ //提交失败
return 'faild';
}
else{
return $client->getContent();
}
}
5、再flow.php中找到支付成功流程后,调用wp_print 方法来实现打印
如果是余额支付的情况
再代码
/* 处理余额、积分、红包 */
if ($order['user_id'] > 0 && $order['surplus'] > 0)
前面添加如下代码段
大概1650行
/* 如果订单金额为0(使用余额或积分或红包支付),修改订单状态为已确认、已付款 */
if ($order['order_amount'] <= 0){
if ($_CFG['gprsprint_open'] == '1') $rsprint = wp_print($new_order_id);
if ($rsprint){
//更新订单的打印状态
$sql = "UPDATE ". $ecs->table('order_info') ." SET gprsprint='1' WHERE order_id=".$new_order_id;
$db->query($sql);
}
}
6、后台管理员设置打印成功后,打印通知
adminstone\order.php 找到以下代码段
/* 标记订单为已确认、已付款,更新付款时间和已支付金额,如果是货到付款,同时修改订单为“收货确认” */
if ($order['order_status'] != OS_CONFIRMED)
{
$arr['order_status'] = OS_CONFIRMED;
$arr['confirm_time'] = gmtime();
}
$arr['pay_status'] = PS_PAYED;
$arr['pay_time'] = gmtime();
$arr['money_paid'] = $order['money_paid'] + $order['order_amount'];
$arr['order_amount']= 0;
$payment = payment_info($order['pay_id']);
if ($payment['is_cod'])
{
$arr['shipping_status'] = SS_RECEIVED;
$order['shipping_status'] = SS_RECEIVED;
}
update_order($order_id, $arr);
代码后面添加
if ($_CFG['gprsprint_open'] == '1') $rsprint = wp_print($order_id);
if ($rsprint){
//更新订单的打印状态
$sql = "UPDATE ". $ecs->table('order_info') ." SET gprsprint='1' WHERE order_id=".$order_id;
$db->query($sql);
}
7、用户在线支付后打印机通知
includes\lib_payment.php
找到如下代码段
/* 修改订单状态为已付款 */
$sql = 'UPDATE ' . $GLOBALS['ecs']->table('order_info') .
" SET order_status = '" . OS_CONFIRMED . "', " .
" confirm_time = '" . gmtime() . "', " .
" pay_status = '$pay_status', " .
" pay_time = '".gmtime()."', " .
" money_paid = order_amount," .
" order_amount = 0 ".
"WHERE order_id = '$order_id'";
$GLOBALS['db']->query($sql);
后面添加
/* 客户付款时给商家发送打印信息 */
if ($GLOBALS['_CFG']['gprsprint_open'] == '1') $rsprint = wp_print($pay_log['order_id']);
if ($rsprint){
//更新订单的打印状态
$sql = "UPDATE ". $GLOBALS['ecs']->table('order_info') ." SET gprsprint='1' WHERE order_id=".$order_id;
$GLOBALS['db']->query($sql);
}
- PC官方版
- 安卓官方手机版
- IOS官方手机版















VMware External DNS自动化工具0.16.1+vmware.2 中文版
Drift Detector for Tanzu Kubernetes Grid Management Cluster 检测工具0.1.0 中文版
vSphere Software Asset Management Tool最新版1.5 中文版
VMware Cloud Gateway for VMC HLM M24镜像包8.0.2 中文版
VMware VCDA ALL镜像包4.7.x 中文版
tgz VMware On Demand Services SDK镜像包0.42.6 中文版
NSX Manager 6.4.14镜像包6.4.14 中文版
Workstation 17.6.4 中文免激活安装包17.6.3 中文版
鲜牛网游加速器4.6.6.2 电脑版
cFosSpeed破解版12.50.2525 中文免费版
奇游电竞加速器6.4.3 官方最新版
网易UU网游加速器(可免费加速steam)4.45.0 官方最新版
besttrace电脑版3.9.1.0 官方版
谷歌访问助手(Google Helper插件)2.6.2 官方版
speedtest网络测速软件1.8.156.1 单文件版
systemview通信系统仿真软件5.0 免费版
Windows U-Finder2.1.4 厂商免费版
水星MWU300T WPS安装程序1.0 官方安装版
绿联HDMI矩阵 RS232上位机软件1.10.01 绿色官方版
绿联云智能云存储pc版2.4.0.1915 一键安装版
cFosSpeed网络流量优化软件12.00.2512 免序列号去试用限制版
腾讯微云pc版5.2.1282 官方最新版
爱站工具包(爱站seo工具包)1.11.25.0 最新破解版
电信宽带上网助手9.5.2101.1318 官方版
猎豹免费wifi电脑版5.1 校园版
联想滑块验证助手1.1 单文件免费版
指定硬件厂商MAC地址生成工具1.0 中文免费版
ER系列路由器ISP数据库文件1.6版本
TP-LINK Web网管交换机客户端应用程序1.0.3 官网免费版
华为配置加解密工具1.0 简体中文版
全新 NETGEAR 网件精灵2.4.62 官方中文版
360随身wifi软件pc端
快牙电脑版2.8.0.0 官方最新版
爱微帮媒体版客户端2.16 官方最新版
蒲公英WiFi电脑端2.0.3官方版
WiFi共享大师3.0.0.6 官方最新版
青青草原WiFi电脑版5.2 免费版





VMware Workstation P-ro最新版25H2 中文版
华夏网银批量汇款脱机编辑工具
ic卡信息读取工具3.0 绿色版
双路负载平衡的软路由器宽带合并工具(FNET
网亚局域网监控软件10.0.35 最新免费版
TP-LINK R483高速路由器升级软件3.0.140612
迅游激活码抢号工具1.0 绿色最新版 【迅游3
Free WiFi Hotspot(免费wifi热点扫描工具)3
科发JqueryEasyUi代码生成器3.5 破解版
双网卡带宽叠加程序含图文教程