select('uniacid') ->from('{{%ybwm_store}}') ->where('id=:id', [':id' => $storeId])->one(); $config=Config::getSystemSet('sms',$store['uniacid']); if(!$config || $config['open']==2){ return true; } $data=[]; if($type==1){ //支付提醒 $templateCode=$config['payCode']; }elseif($type==2){ //退款提醒 $templateCode=$config['refundCode']; }elseif($type==3){ $templateCode=$config['integralCode']; } $tel = (new \yii\db\Query()) ->select('tel') ->from('{{%ybwm_message}}') ->where('storeId=:storeId AND deleteAt=0', [':storeId' => $storeId])->all(); if($tel AND $config) { for ($i = 0; $i < count($tel); $i++) { try{ object_array($aliSms->sendSms($tel[$i]['tel'], $templateCode, $data, ['access_key' => $config['access_key_id'], 'access_secret' => $config['access_key_secret'], 'sign_name' => $config['sign']])); }catch (\Exception $e){ return false; } } } return true; } //发送短信 public static function sendSms($uniacid,$type,$tel) { $aliSms = new AliSms(); $config=Config::getSystemSet('sms',$uniacid); $data=[]; if($type==3){ //积分商城提醒 $templateCode=$config['integralCode']; } if($tel AND $config) { try{ object_array($aliSms->sendSms($tel, $templateCode, $data, ['access_key' => $config['access_key_id'], 'access_secret' => $config['access_key_secret'], 'sign_name' => $config['sign']])); }catch (\Exception $exception){ return false; } } return true; } //"page": "yb_o2o/order/index", //支付成功模板消息 public static function payOk($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=1',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $orderType = $order['deliveryMode'] == 10 ? '自提订单' : '外卖订单'; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); if($user['bindType']==3){ $page="yb_wm/order/order-dl?id=' . $orderId . '"; $msg=Config::getSystemSet('aliTemplates',$order['uniacid']); $data=[ 'keyword1' =>[ 'value' => $orderType ], 'keyword2' =>[ 'value' => date("Y-m-d H:i:s", $order['createdAt']) ], 'keyword3' =>[ 'value' => $goodNmae ], 'keyword4' =>[ 'value' => $order['outTradeNo'] ], 'keyword5' =>[ 'value' => $order['money'] ], ]; $http=Ali::template($order['uniacid'],$user["openId"],$msg["payOkTid"],$page,json_encode($data)); return $http; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["payOkTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "thing1": { "value": "' . $orderType . '" }, "date4": { "value":"' . date("Y-m-d H:i:s", $order['createdAt']) . '" }, "thing2": { "value": "' . $goodNmae . '" }, "character_string6": { "value": "' . $order['outTradeNo'] . '" }, "amount3": { "value": "' . $order['money'] . '" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //商家拒单模板消息 public static function rejection($orderId) { $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store = (new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=1',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $order['refuseReason'] = $order['refuseReason'] ?: '无'; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["refuseTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "thing5": { "value": "' . $order['refuseReason'] . '" }, "thing3": { "value":"' . $store['name'] . '" }, "thing4": { "value": "' . $goodNmae . '" }, "character_string1": { "value": "' . $order['outTradeNo'] . '" }, "date2": { "value": "' . date("Y-m-d H:i:s", $order['createdAt']) . '" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //商家接单模板消息 public static function receipt($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); if($order['deliveryMode']==10){ $orderType='自提订单'; }else{ $orderType='外卖订单'; } $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store = (new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=1',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $order['refuseReason'] = $order['refuseReason'] ?: '无'; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); if($user['bindType']==3){ $page="yb_wm/order/order-dl?id=' . $orderId . '"; $msg=Config::getSystemSet('aliTemplates',$order['uniacid']); $data=[ 'keyword1' =>[ 'value' => "#" . $order['takeNo'] ], 'keyword2' =>[ 'value' => $store['name'] ], 'keyword3' =>[ 'value' => $goodNmae ], 'keyword4' =>[ 'value' => date("Y-m-d H:i:s", $order['createdAt']) ], ]; $http=Ali::template($order['uniacid'],$user["openId"],$msg["acceptTid"],$page,json_encode($data)); return $http; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["acceptTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "character_string1": { "value": "#' . $order['takeNo'] . '" }, "thing2": { "value":"' . $store['name'] . '" }, "thing8": { "value":"' . $orderType . '" }, "thing4": { "value":"' . $goodNmae . '" }, "thing7": { "value": "您的订单已被商家接单,请耐心等待哦!" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //退款结果模板消息 public static function refundResult($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store = (new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=1',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $order['refuseReason'] = $order['refuseReason'] ?: '无'; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); if ($order['state'] == 10) { $note = "退款已通过,请注意查收"; } if($order['state'] == 11) { $note = "退款已拒绝(原因:" . $order['refuseReason'] . ")"; } if($user['bindType']==3){ $page="yb_wm/order/order-dl?id=' . $orderId . '"; $msg=Config::getSystemSet('aliTemplates',$order['uniacid']); $data=[ 'keyword1' =>[ 'value' => $store['name'] ], 'keyword2' =>[ 'value' => $goodNmae ], 'keyword3' =>[ 'value' => $order['money'] ], 'keyword4' =>[ 'value' => $order['outTradeNo'] ], ]; $http=Ali::template($order['uniacid'],$user["openId"],$msg["refundResultTid"],$page,json_encode($data)); return $http; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["refundResultTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "thing1": { "value": "' . $note . '" }, "thing2": { "value":"' . $goodNmae . '" }, "amount3": { "value": "' . $order['money'] . '" }, "character_string7": { "value": "' . $order['outTradeNo'] . '" }, "thing5": { "value": "如有疑问请联系客服" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //订单自提通知 public static function task($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store=(new \yii\db\Query()) ->select('name,address') ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $store['address']=mb_substr($store['address'],0,19,'utf-8'); if($user['bindType']==3){ $page="yb_wm/order/order-dl?id=' . $orderId . '"; $msg=Config::getSystemSet('aliTemplates',$order['uniacid']); $data=[ 'keyword1' =>[ 'value' => "#" . $order['takeNo'] ], 'keyword2' =>[ 'value' => $store['name'] ], 'keyword3' =>[ 'value' => $store['address'] ], ]; $http=Ali::template($order['uniacid'],$user["openId"],$msg["takeTid"],$page,json_encode($data)); return $http; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["takeTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "character_string8": { "value": "#' . $order['takeNo'] . '" }, "thing2": { "value":"' . $store['name'] . '" }, "thing3": { "value": "' . $store['address'] . '" }, "amount12": { "value": "' . $order['money'] . '" }, "thing4": { "value": "您的商品已准备好,请记得前往门店取货哦!" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //订单配送通知 public static function delivery($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store=(new \yii\db\Query()) ->select('name,address') ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $order['receivedAddress']=mb_substr($order['receivedAddress'],0,19,'utf-8'); if($user['bindType']==3){ $page="yb_wm/order/order-dl?id=' . $orderId . '"; $msg=Config::getSystemSet('aliTemplates',$order['uniacid']); $data=[ 'keyword1' =>[ 'value' => $store['name'] ], 'keyword2' =>[ 'value' => $order['outTradeNo'] ], 'keyword3' =>[ 'value' =>$order['receivedAddress'] ], ]; $http=Ali::template($order['uniacid'],$user["openId"],$msg["deliveryTid"],$page,json_encode($data)); return $http; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["deliveryTid"] . '", "page":"yb_wm/order/order-dl?id=' . $orderId . '", "data": { "thing2": { "value": "' . $store['name'] . '" }, "character_string1": { "value":"' . $order['outTradeNo'] . '" }, "thing14": { "value": "' . $order['receivedName'] . '" }, "thing16": { "value": "' . $order['receivedAddress'] . '" }, "thing11": { "value": "您的订单在配送中,请注意查收哦!" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //新订单提醒(公众号) public static function newOrder($orderId,$openId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); if ($order['deliveryMode'] == 10) { $orderMode='自提订单'; $userInfo = $order['receivedTel']; }else{ $orderMode='外卖订单'; $userInfo = $order['receivedName'] . " (" . $order['receivedTel'] . ")"; } $store=(new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where('id=:id', [':id' => $order['storeId']])->one(); $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); try{ $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $app->template_message->send([ 'touser' => $openId, 'template_id' => $msg['payOkTid'], 'data' => [ 'first'=>'亲 您有新的订单,请及时处理!', 'keyword1' => $order['outTradeNo'], 'keyword2' => $orderMode."(商家名称:".$store['name'].")", 'keyword3' => $order['money'] . '元', 'keyword4' => date("Y-m-d H:i:s", $order['payAt']), 'keyword5' => $userInfo, 'remark' =>"取单号为:".$order['takeNo'], ], ]); }catch (\Exception $exception){ return $exception; } return true; } //售后订单提醒(公众号) public static function refundOrder($orderId,$openId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); try { $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $app->template_message->send([ 'touser' => $openId, 'template_id' => $msg['refundTid'], 'data' => [ 'first' => ["亲 您有新的售后订单,请及时处理!", "#FF0000"], 'keyword1' => [$order['outTradeNo'], "#173177"], 'keyword2' => ["申请退款", "#173177"], 'keyword3' => [date("Y-m-d H:i:s", $order['createdAt']), "#173177"], 'remark' => ["请前往后台处理!", "#FF0000"], ], ]); }catch (\Exception $exception){ return $exception; } return true; } //当面付支付成功 public static function cashierPay($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_cashier_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store=(new \yii\db\Query()) ->select('name') ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $name=preg_replace("/\\d+/",'', $store['name']); $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["cashierTid"] . '", "page":"yb_wm/shop/in/syorder-dl?id=' . $orderId . '", "data": { "character_string3": { "value": "' . $order['outTradeNo'] . '" }, "amount2": { "value":"' . $order['money'] . '" }, "time4": { "value": "' . date("Y-m-d H:i:s",$order['createdAt']) . '" }, "phrase11": { "value": "支付成功" }, "name8": { "value": "'.$name.'" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //快餐取餐提醒 public static function fastTake($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_instore_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store=(new \yii\db\Query()) ->select('name') ->from('{{%ybwm_store}}') ->where('id=:id',[':id'=>$order['storeId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=3',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); if($order['isOut']==1){ $isOut='店内就餐'; }else{ $isOut='打包带走'; } $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["fastTakeTid"] . '", "page":"yb_wm/shop/ffmode/order-dl?id=' . $orderId . '", "data": { "character_string1": { "value": "' . $order['callNo'] . '" }, "thing6": { "value":"' . $isOut . '" }, "thing4": { "value": "' . $store['name'] . '" }, "thing2": { "value": "'.$goodNmae.'" }, "thing5": { "value": "您的订单已准备好,请前往取餐区取餐" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //快餐取餐提醒 public static function inStoreOrder($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_instore_order}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=2',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $state='未支付'; if($order['state']==2){ $state='已接单'; }elseif($order['state']==3){ $state='已支付'; } $note=$order['typeName'].$order['people']."人,您的订单已确认"; // $note='测试'; $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["inOrderTid"] . '", "page":"yb_wm/shop/in/order-dl?id=' . $orderId . '", "data": { "character_string1": { "value": "' . $order['outTradeNo'] . '" }, "date2": { "value":"' . date("Y-m-d H:i:s",$order['createdAt']) . '" }, "thing4": { "value": "' . $goodNmae . '" }, "phrase8": { "value": "'.$state.'" }, "thing7": { "value": "'.$note.'" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); return $http; } //店内下单提醒 public static function newInStoreOrder($orderId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_instore_order}}') ->where('id=:id', [':id' => $orderId])->one(); if($order['payAt']>0){ $payName='已支付'; }else{ $payName='未支付'; } if($order['origin']==1){ $originName='微信小程序'; }elseif($order['origin']==3){ $originName='支付宝小程序'; }elseif($order['origin']==5){ $originName='收银台下单'; } $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); if(!$msg['inStoreTid']){ return true; } try{ $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $openIdList=(new \yii\db\Query()) ->select(['openId']) ->from('{{%ybwm_openId}}') ->where('storeId=:storeId',[':storeId'=>$order['storeId']])->all(); if($openIdList){ for($i=0;$itemplate_message->send([ 'touser' => $openIdList[$i]['openId'], 'template_id' => $msg['inStoreTid'], 'data' => [ 'first'=>'亲 您有新的订单,请及时处理!', 'keyword1' => $order['regionName']."-".$order['typeName']."-".$order['number'], 'keyword2' => $order['money']."(".$payName.")", 'keyword3' => date("Y-m-d H:i:s", $order['createdAt']), 'keyword4' => $order['outTradeNo'], 'keyword5' => "堂食(".$originName.")", 'remark' =>"请及时处理您的订单", ], ]); } } }catch (\Exception $exception){ return $exception; } return true; } //当面付下单提醒 public static function newCashierOrder($orderId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_cashier_order}}') ->where('id=:id', [':id' => $orderId])->one(); $store=(new \yii\db\Query()) ->select('name') ->from('{{%ybwm_store}}') ->where('id=:id', [':id' => $order['storeId']])->one(); if($order['payMode']==1){ $payName='微信支付'; }elseif($order['payMode']==2){ $payName='支付宝支付'; }else{ $payName='余额支付'; } $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); if(!$msg['cashierTid']){ return true; } try{ $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $openIdList=(new \yii\db\Query()) ->select(['openId']) ->from('{{%ybwm_openId}}') ->where('storeId=:storeId',[':storeId'=>$order['storeId']])->all(); if($openIdList){ for($i=0;$itemplate_message->send([ 'touser' => $openIdList[$i]['openId'], 'template_id' => $msg['cashierTid'], 'data' => [ 'first' => '你有一笔收款信息', 'keyword1' => $store['name'], 'keyword2' => $payName, 'keyword3' => $order['money'] . "元", 'keyword4' => $order['userNote'] ?: '无', 'keyword5' => date("Y-m-d H:i:s", $order['payAt']), 'remark' => "请尽快核实订单哦!", ], ]); } } }catch (\Exception $exception){ return $exception; } return true; } //催单提醒 public static function newReminderOrder($orderId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_takeout_order}}') ->where('id=:id', [':id' => $orderId])->one(); if($order['payMode']==1){ $payName='微信支付'; }elseif($order['payMode']==2){ $payName='支付宝支付'; }else{ $payName='余额支付'; } $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); if(!$msg['reminderTid']){ return true; } try{ $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $openIdList=(new \yii\db\Query()) ->select(['openId']) ->from('{{%ybwm_openId}}') ->where('storeId=:storeId',[':storeId'=>$order['storeId']])->all(); if($openIdList) { for ($i = 0; $i < count($openIdList); $i++) { $app->template_message->send([ 'touser' => $openIdList[$i]['openId'], 'template_id' => $msg['reminderTid'], 'data' => [ 'first' => '您收到了一条催单提醒', 'keyword1' => $order['outTradeNo'] . "(#" . $order['takeNo'] . ")", 'keyword2' => $payName, 'keyword3' => $order['money'] . "元", 'remark' => "请您尽快处理该订单哦!", ], ]); } } }catch (\Exception $exception){ return $exception; } return true; } //快餐提醒 public static function newFastOrder($orderId) { $order=(new \yii\db\Query()) ->from('{{%ybwm_instore_order}}') ->where('id=:id', [':id' => $orderId])->one(); $orderGoods = (new \yii\db\Query()) ->from('{{%ybwm_order_goods}}') ->where('orderId=:orderId AND item=3',[':orderId'=>$orderId])->one(); $goodNmae = $orderGoods['name']; $msg=Config::getSystemSet('storeTemplates',$order['uniacid']); if(!$msg['fastTid']){ return true; } try{ $app = Factory::officialAccount(WeChat::getWeChatTemplateConfig($order['uniacid'])); $openIdList=(new \yii\db\Query()) ->select(['openId']) ->from('{{%ybwm_openId}}') ->where('storeId=:storeId',[':storeId'=>$order['storeId']])->all(); if($openIdList) { for ($i = 0; $i < count($openIdList); $i++) { $app->template_message->send([ 'touser' => $openIdList[$i]['openId'], 'template_id' => $msg['fastTid'], 'data' => [ 'first' => '有新的快餐订单提醒', 'keyword1' => $order['outTradeNo'] . "(" . $order['callNo'] . ")", 'keyword2' => $goodNmae, 'keyword3' => $order['money'] . "元", 'keyword4' => "已支付", 'keyword5' => date("Y-m-d H:i:s", $order['payAt']), 'remark' => "请尽快处理此订单哦!", ], ]); } } }catch (\Exception $exception){ return $exception; } return true; } //排队提醒 public static function queuingOrder($orderId) { //设置与发送模板信息 $order = (new \yii\db\Query()) ->from('{{%ybwm_queuing}}') ->where('id=:id', [':id' => $orderId])->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('id=:id',[':id'=>$order['userId']])->one(); $store = (new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where('id=:id', [':id' => $order['storeId']])->one(); $msg=Config::getSystemSet('miniTemplates',$order['uniacid']); $count =(new \yii\db\Query()) ->from('{{%ybwm_queuing}}') ->where('storeId=:storeId AND tableId=:tableId AND day=:day AND state=1 AND deleteAt=0', [':storeId' => $order['storeId'],':tableId'=>$order['tableId'],':day'=>$order['day']])->count()?:0; $formwork = '{ "touser": "' . $user["openId"] . '", "template_id": "' . $msg["queuingTid"] . '", "page": "yb_wm/shop/lineup/pdxq?id='.$orderId.'", "data": { "thing1": { "value": "' . $store['name'] . '" }, "character_string2": { "value": "' . $order['code'] . '" }, "thing3": { "value": "' . $count . '桌" }, "phrase4": { "value": "排队中" }, "time5": { "value": "' . date("Y-m-d H:i:s",$order['createdAt']) . '" } } }'; $app = Factory::miniProgram(WeChat::getMiniConfig($order['uniacid'])); $token = $app->access_token->getToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . $token['access_token'] . ""; $http = httpRequest($url, $formwork); //print_R($http);die; return $http; } //公众号发送模板消息 public static function sendMessage($uniacid,$openId,$template_id,$data){ try{ $app =WeChat::getWechatConfig($uniacid); $app->template_message->send([ 'touser' =>$openId, 'template_id' =>$template_id, 'data' =>$data, ]); echo json_encode(['code'=>1,'msg'=>'成功']);die; }catch (\Exception $e){ echo $e->getMessage();die; } } }