例:yun_shop/app/common/services/finance/PointService.php
141行--157行

※※※ finance_point_change 自定义, 不能和已存在的重复!
商城的可以set, 也可以在yun_shop/config/template.php文件加, 插件需要set
\Config::set('template.finance_point_change', [
  'title' => '财务(积分变动通知)',
  'subtitle' => '积分变动通知',
  'value' => 'finance_point_change',
  'param' => [
  '商城名称', '昵称', '时间', '积分变动金额', '积分变动类型', '变动后余额数值'
  ]
]);

获取自定义模板列表:
$temp_list = MessageTemp::select('id', 'title')->get();

①获取商城基础设置->消息通知选择的模板ID (point_change)
$temp_id = \Setting::get('shop.notice')['point_change'];
if (!$temp_id) {
  return;
}

②替换变量(所有的变量都要替换)

$params = [
  ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  ['name' => '昵称', 'value' => $this->member['nickname']],
  ['name' => '时间', 'value' => date('Y-m-d H:i', time())],
  ['name' => '积分变动金额', 'value' => $this->point_data['point']],
  ['name' => '积分变动类型', 'value' => $this->point_data['point_mode']],
  ['name' => '变动后余额数值', 'value' => $this->point_data['after_point']]
];

③获取要发送的消息

$msg = MessageTemp::getSendMsg($temp_id, $params);
// 一定要加判断
if (!$msg) {
  return;
}

④发送 (MessageTemp::$template_id 为公众号模板ID)
$template_id = MessageTemp::$template_id;
MessageService::notice($template_id, $msg, $this->member->uid);

模板:js 
require(['select2'], function () {
	$('.diy-notice').select2();
})
select 的 class  用 form-control diy-notice
<select class='form-control diy-notice'>