'pages/order/detail', // OrderTypeEnum::SHARING => 'pages/sharing/order/detail/detail', // ]; // // 发送模板消息 // $status = $this->sendTemplateMessage($order['wxapp_id'], [ // 'touser' => $order['user']['open_id'], // 'template_id' => $template['template_id'], // 'page' => $urls[$orderType] . '?order_id=' . $order['order_id'], // 'form_id' => $formId['form_id'], // 'data' => [ // // 订单编号 // 'keyword1' => $order['order_no'], // // 支付时间 // 'keyword2' => date('Y-m-d H:i:s', $order['pay_time']), // // 订单金额 // 'keyword3' => $order['pay_price'], // // 商品名称 // 'keyword4' => $this->formatGoodsName($order['goods']), // ] // ]); // // 标记formid已使用 // $status === true && FormIdService::setIsUsed($formId['id']); // 2. 商家短信通知 $smsConfig = SettingModel::getItem('sms', $order['wxapp_id']); $SmsDriver = new SmsDriver($smsConfig); return $SmsDriver->sendSms('order_pay', ['order_no' => $order['order_no']]); } /** * 后台发货通知 * @param \think\Model $order * @param int $orderType 订单类型 (10商城订单 20拼团订单) * @return bool // * @throws \app\common\exception\BaseException // * @throws \think\Exception // * @throws \think\exception\DbException */ public function delivery($order, $orderType = OrderTypeEnum::MASTER) { return true; // // 微信模板消息 // $template = SettingModel::getItem('tplMsg', $order['wxapp_id'])['delivery']; // if (!$template['is_enable'] || empty($template['template_id'])) { // return false; // } // // 获取可用的formid // if (!$formId = FormIdService::getAvailableFormId($order['user_id'])) { // return false; // } // // 页面链接 // $urls = [ // OrderTypeEnum::MASTER => 'pages/order/detail', // OrderTypeEnum::SHARING => 'pages/sharing/order/detail/detail', // ]; // // 发送模板消息 // $status = $this->sendTemplateMessage($order['wxapp_id'], [ // 'touser' => $order['user']['open_id'], // 'template_id' => $template['template_id'], // 'page' => $urls[$orderType] . '?order_id=' . $order['order_id'], // 'form_id' => $formId['form_id'], // 'data' => [ // // 订单编号 // 'keyword1' => $order['order_no'], // // 商品信息 // 'keyword2' => $this->formatGoodsName($order['goods']), // // 收货人 // 'keyword3' => $order['address']['name'], // // 收货地址 // 'keyword4' => implode('', $order['address']['region']) . $order['address']['detail'], // // 物流公司 // 'keyword5' => $order['express']['express_name'], // // 物流单号 // 'keyword6' => $order['express_no'], // ] // ]); // // 标记formid已使用 // $status === true && FormIdService::setIsUsed($formId['id']); // return $status; } /** * 后台售后单状态通知 * @param \think\Model $refund * @param $order_no * @param int $orderType 订单类型 (10商城订单 20拼团订单) * @return bool // * @throws \app\common\exception\BaseException // * @throws \think\Exception // * @throws \think\exception\DbException */ public function refund($refund, $order_no, $orderType = OrderTypeEnum::MASTER) { return true; // // 微信模板消息 // $template = SettingModel::getItem('tplMsg', $refund['wxapp_id'])['refund']; // if (!$template['is_enable'] || empty($template['template_id'])) { // return false; // } // // 获取可用的formid // if (!$formId = FormIdService::getAvailableFormId($refund['user_id'])) { // return false; // } // // 页面链接 // $urls = [ // OrderTypeEnum::MASTER => 'pages/order/refund/index', // OrderTypeEnum::SHARING => 'pages/sharing/order/refund/index', // ]; // // 发送模板消息 // $status = $this->sendTemplateMessage($refund['wxapp_id'], [ // 'touser' => $refund['user']['open_id'], // 'template_id' => $template['template_id'], // 'page' => $urls[$orderType], // 'form_id' => $formId['form_id'], // 'data' => [ // // 售后类型 // 'keyword1' => $refund['type']['text'], // // 状态 // 'keyword2' => $refund['status']['text'], // // 订单号 // 'keyword3' => $order_no, // // 商品名称 // 'keyword4' => $refund['order_goods']['goods_name'], // // 申请时间 // 'keyword5' => $refund['create_time'], // // 申请原因 // 'keyword6' => $refund['apply_desc'], // ] // ]); // // 标记formid已使用 // FormIdService::setIsUsed($formId['id']); // return $status; } /** * 拼团拼单状态通知 * @param \app\common\model\sharing\Active $active * @param string $status_text * @return bool // * @throws \app\common\exception\BaseException // * @throws \think\exception\DbException */ public function sharingActive($active, $status_text) { return true; // // 微信模板消息 // $config = SharingSettingModel::getItem('basic', $active['wxapp_id']); // if (empty($config['tpl_msg_id'])) { // return false; // } // foreach ($active['users'] as $item) { // // 获取可用的formid // if (!$formId = FormIdService::getAvailableFormId($item['user']['user_id'])) { // continue; // } // // 发送模板消息 // $this->sendTemplateMessage($active['wxapp_id'], [ // 'touser' => $item['user']['open_id'], // 'template_id' => $config['tpl_msg_id'], // 'page' => 'pages/sharing/active/index?active_id=' . $active['active_id'], // 'form_id' => $formId['form_id'], // 'data' => [ // // 订单编号 // 'keyword1' => $item['sharing_order']['order_no'], // // 商品名称 // 'keyword2' => $active['goods']['goods_name'], // // 拼团价格 // 'keyword3' => $item['sharing_order']['pay_price'], // // 拼团人数 // 'keyword4' => $active['people'], // // 拼团时间 // 'keyword5' => $item['create_time'], // // 拼团结果 // 'keyword6' => $status_text, // ] // ]); // // 标记formid已使用 // FormIdService::setIsUsed($formId['id']); // } // return true; } /** * 分销商提现审核通知 * @param \app\common\model\dealer\Withdraw $withdraw * @return bool // * @throws \app\common\exception\BaseException // * @throws \think\exception\DbException */ public function withdraw($withdraw) { return true; // // 模板消息id // $template = DealerSettingModel::getItem('template_msg', $withdraw['wxapp_id']); // if (empty($template['withdraw_tpl'])) { // return false; // } // // 获取可用的formid // if (!$formId = FormIdService::getAvailableFormId($withdraw['user_id'])) { // return false; // } // // 获取用户信息 // $user = UserModel::detail($withdraw['user_id']); // // 发送模板消息 // $remark = '无'; // if ($withdraw['apply_status'] == 30) { // $remark = $withdraw['reject_reason']; // } // $status = $this->sendTemplateMessage($withdraw['wxapp_id'], [ // 'touser' => $user['open_id'], // 'template_id' => $template['withdraw_tpl'], // 'page' => 'pages/dealer/withdraw/list/list', // 'form_id' => $formId['form_id'], // 'data' => [ // // 提现时间 // 'keyword1' => $withdraw['create_time'], // // 提现方式 // 'keyword2' => $withdraw['pay_type']['text'], // // 提现金额 // 'keyword3' => $withdraw['money'], // // 提现状态 // 'keyword4' => $withdraw->applyStatus[$withdraw['apply_status']], // // 备注 // 'keyword5' => $remark, // ] // ]); // // 标记formid已使用 // FormIdService::setIsUsed($formId['id']); // return $status; } /** * 分销商入驻审核通知 * @param \app\common\model\dealer\Apply $dealer * @return bool // * @throws \app\common\exception\BaseException // * @throws \think\exception\DbException */ public function dealer($dealer) { return true; // // 模板消息id // $template = DealerSettingModel::getItem('template_msg', $dealer['wxapp_id']); // if (empty($template['apply_tpl'])) { // return false; // } // // 获取可用的formid // if (!$formId = FormIdService::getAvailableFormId($dealer['user_id'])) { // return false; // } // // 获取用户信息 // $user = UserModel::detail($dealer['user_id']); // // 发送模板消息 // $remark = '分销商入驻审核通知'; // if ($dealer['apply_status'] == 30) { // $remark .= "\n\n驳回原因:" . $dealer['reject_reason']; // } // $status = $this->sendTemplateMessage($dealer['wxapp_id'], [ // 'touser' => $user['open_id'], // 'template_id' => $template['apply_tpl'], // 'page' => 'pages/dealer/index/index', // 'form_id' => $formId['form_id'], // 'data' => [ // // 申请时间 // 'keyword1' => $dealer['apply_time'], // // 审核状态 // 'keyword2' => $dealer->applyStatus[$dealer['apply_status']], // // 审核时间 // 'keyword3' => $dealer['audit_time'], // // 备注信息 // 'keyword4' => $remark, // ] // ]); // // 标记formid已使用 // FormIdService::setIsUsed($formId['id']); // return $status; } /** * 发送模板消息 * @param $wxappId * @param $params * @return bool * @throws \app\common\exception\BaseException * @throws \think\exception\DbException */ private function sendTemplateMessage($wxappId, $params) { // 微信模板消息 $wxConfig = WxappModel::getWxappCache($wxappId); $WxTplMsg = new WxTplMsg($wxConfig['app_id'], $wxConfig['app_secret']); return $WxTplMsg->sendTemplateMessage($params); } /** * 格式化商品名称 * @param $goodsData * @return string */ private function formatGoodsName($goodsData) { $str = ''; foreach ($goodsData as $goods) { $str .= $goods['goods_name'] . ' '; } return $str; } }