// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\common\service\message\order; use app\common\service\message\Basics; use app\common\model\store\Setting as SettingModel; /** * 消息通知服务 [订单售后] * Class Refund * @package app\common\service\message\order */ class Refund extends Basics { /** * 参数列表 * @var array */ protected $param = [ 'refund' => [], // 售后单信息 'order_no' => [], // 订单信息 ]; /** * 订单页面链接 * @var array */ private $pageUrl = 'pages/order/refund/index'; /** * 发送消息通知 * @param array $param * @return mixed|void * @throws \cores\exception\BaseException * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function send(array $param) { // 记录参数 $this->param = $param; // 微信订阅消息通知用户 // $this->onSendWxSubMsg(); } /** * 微信订阅消息通知用户 * @return false|mixed * @throws \cores\exception\BaseException * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ private function onSendWxSubMsg() { $refundInfo = $this->param['refund']; $orderNo = $this->param['order_no']; // 获取订阅消息配置 $template = SettingModel::getItem('submsg', $this->storeId)['order']['refund']; if (empty($template['template_id'])) { return false; } // 发送订阅消息 return $this->sendWxSubMsg([ 'touser' => $refundInfo['user']['open_id'], 'template_id' => $template['template_id'], 'page' => $this->pageUrl, 'data' => [ // 售后类型 $template['keywords'][0] => ['value' => $refundInfo['type']['text']], // 状态 $template['keywords'][1] => ['value' => $refundInfo['status']['text']], // 订单编号 $template['keywords'][2] => ['value' => $orderNo], // 申请时间 $template['keywords'][3] => ['value' => $refundInfo['create_time']], // 申请原因 $template['keywords'][4] => ['value' => $this->getSubstr($refundInfo['apply_desc'])], ] ]); } }