🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# SMS发送短信开发 短信发送,微信模版消息,小程序提醒消息,开发的流程基本都是一样的。 ## 1. 首先定义一个模版消息提醒类型 如果开发者直接是修改niucloud-admin框架,则消息提醒的类型定义位置在 `niucloud\app\dict\notice\notice.php`文件中 如果开发者开发一个插件,则消息提醒的类型定义位置在插件的`addon\hello_world\app\dict\notice\notice.php`文件中 notice.php文件中定义消息提醒类型 ``` return [ 'verify_code' => [ 'key' => 'verify_code', 'receiver_type' => 1, 'name' => '手机验证码', 'title' => '管理端验证码登录', 'async' => false, 'variable' =>[ 'code' => '验证码' ], ], ] ``` `verify_code` 用户自己定义的关键词 `key` 和上面的关键词一样 `receiver_type` 消息接收者,1表示会员接收,0表示平台用户接收 `name` 消息类型的名称,参考下图 `title` 消息的描述,说明,暂时没有使用 `async` 同步还是异步,这个根据具体的业务场景定义。比如短信验证码,需要返回值,就是同步。比如订单完成消息,这种就是异步。异步消息没有返回值。 `variable` 消息提醒会用到的所有的变量,开发者定义好变量,使用者可以在模版消息中组合变量和普通文本定义消息内容。这个定义好后,在具体的业务调用的代码中,需要传递实际的数据。<br> **定义消息类型后,会在系统中自动加载** 如下图 ![](https://img.kancloud.cn/f4/a2/f4a2be7ac44ccf94a01e70fd479d51a2_1209x600.png) ## 2. 对第一步中定义的模版消息提醒类型,定义不同类型的实现(SMS, WEICHAT模版消息,小程序订阅消息提醒) 开发者在第一个步骤中先定义好一个消息提醒类型。在实际的应用中,这种消息提醒可能只发送短信,也可能会同时发送短信,微信模版消息,小程序消息。某种业务场景也可能会发给管理者,而不是会员,比如新客户下单消息。 `app\dict\notice\sms.php` 消息提醒的短信定义 `app\dict\notice\weapp.php` 消息提醒的微信小程序订阅消息定义 `app\dict\notice\wechat.php` 消息提醒的微信模版消息定义 上面三个文件为某个消息提醒类型的具体的实现,比如短信验证码,这个消息提醒只会发送短信,而对于微信模版消息,微信小程序订阅消息都是无意义的。则我们只会在sms.php文件中定义短信验证码的定义 ``` <?php return [ //手机验证码 'verify_code' => [ 'content' => '您的手机验证码{code},请不要轻易告诉其他人' ], ]; ``` sms.php中 `verify_code`关键字和 notice.php中 `verify_code` 关键词一致 `content` 表示消息的具体描述,这个描述会在程序中,配置时可以让用户自己修改(暂时没有实现) ![](https://img.kancloud.cn/65/3f/653fbe5edb0e8cc2386f38a0b7eacf14_1243x635.png) 经过上面的定义,消息模版类型就定义好了。相应的界面就会出现。 **微信模版消息、小程序订阅消息,与上面的操作是一样的。** ## 2. 消息提醒的发送 上面定义配置好后,就可以通过下面的方法发送消息了 ``` (new NoticeService())->send('member_verify_code', ['code' => $code, 'mobile' => $mobile]); ``` send方法`$key `参数表示消息的key, `$data`参数是数组 前面定义的变量数据 niucloud-admin框架会根据您配置的某个消息类型的定义,循环发送实现的消息端口