laravel-sms.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <?php
  2. return [
  3. /*
  4. |--------------------------------------------------------------------------
  5. | 内置路由
  6. |--------------------------------------------------------------------------
  7. |
  8. | 如果是 web 应用建议 middleware 为 ['web', ...]
  9. | 如果是 api 应用建议 middleware 为 ['api', ...]
  10. |
  11. */
  12. 'route' => [
  13. 'enable' => true,
  14. 'prefix' => 'laravel-sms',
  15. 'middleware' => ['web'],
  16. ],
  17. /*
  18. |--------------------------------------------------------------------------
  19. | 请求间隔
  20. |--------------------------------------------------------------------------
  21. |
  22. | 单位:秒
  23. |
  24. */
  25. 'interval' => 0,
  26. /*
  27. |--------------------------------------------------------------------------
  28. | 数据验证管理
  29. |--------------------------------------------------------------------------
  30. |
  31. | 设置从客户端传来的需要验证的数据字段(`field`)
  32. |
  33. | - isMobile 是否为手机号字段
  34. | - enable 是否开启验证
  35. | - default 默认静态验证规则
  36. | - staticRules 静态验证规则
  37. |
  38. */
  39. 'validation' => [
  40. 'mobile' => [
  41. 'isMobile' => true,
  42. 'enable' => true,
  43. 'default' => 'mobile_required',
  44. 'staticRules' => [
  45. 'mobile_required' => 'required|zh_mobile',
  46. 'check_mobile_unique' => 'required|zh_mobile|unique:users,mobile',
  47. 'check_mobile_exists' => 'required|zh_mobile|exists:users',
  48. ],
  49. ],
  50. ],
  51. /*
  52. |--------------------------------------------------------------------------
  53. | 验证码管理
  54. |--------------------------------------------------------------------------
  55. |
  56. | - length 验证码长度
  57. | - validMinutes 验证码有效时间长度,单位为分钟
  58. | - repeatIfValid 如果原验证码还有效,是否重复使用原验证码
  59. | - maxAttempts 验证码最大尝试验证次数,超过该数值验证码自动失效,0或负数则不启用
  60. |
  61. */
  62. 'code' => [
  63. 'length' => 5,
  64. 'validMinutes' => 5,
  65. 'repeatIfValid' => false,
  66. 'maxAttempts' => 0,
  67. ],
  68. /*
  69. |--------------------------------------------------------------------------
  70. | 验证码短信通用内容
  71. |--------------------------------------------------------------------------
  72. |
  73. | 如需缓存配置,则需使用 `Toplan\Sms\SmsManger::closure($closure)` 方法进行配置
  74. |
  75. */
  76. 'content' => function ($code, $minutes, $input) {
  77. return '【signature】您的验证码是' . $code . ',有效期为' . $minutes . '分钟,请尽快验证。';
  78. },
  79. /*
  80. |--------------------------------------------------------------------------
  81. | 验证码短信模版
  82. |--------------------------------------------------------------------------
  83. |
  84. | 每项数据的值可以为以下三种之一:
  85. |
  86. | - 字符串/数字
  87. | 如: 'YunTongXun' => '短信模版id'
  88. |
  89. | - 数组
  90. | 如: 'Alidayu' => ['短信模版id', '语音模版id'],
  91. |
  92. | - 匿名函数
  93. | 如: 'YunTongXun' => function ($input, $type) {
  94. | return $input['isRegister'] ? 'registerTempId' : 'commonId';
  95. | }
  96. |
  97. | 如需缓存配置,则需使用 `Toplan\Sms\SmsManger::closure($closure)` 方法对匿名函数进行配置
  98. |
  99. */
  100. 'templates' => [
  101. 'Aliyun'=>'SMS_39035044'
  102. ],
  103. /*
  104. |--------------------------------------------------------------------------
  105. | 模版数据管理
  106. |--------------------------------------------------------------------------
  107. |
  108. | 每项数据的值可以为以下两种之一:
  109. |
  110. | - 基本数据类型
  111. | 如: 'minutes' => 5
  112. |
  113. | - 匿名函数(如果该函数不返回任何值,即表示不使用该项数据)
  114. | 如: 'serialNumber' => function ($code, $minutes, $input, $type) {
  115. | return $input['serialNumber'];
  116. | }
  117. | 如: 'hello' => function ($code, $minutes, $input, $type) {
  118. | //不返回任何值,那么hello将会从模版数据中移除 :)
  119. | }
  120. |
  121. | 如需缓存配置,则需使用 `Toplan\Sms\SmsManger::closure($closure)` 方法对匿名函数进行配置
  122. |
  123. */
  124. 'data' => [
  125. 'code' => function ($code) {
  126. return $code;
  127. },
  128. 'minutes' => function ($code, $minutes) {
  129. return $minutes;
  130. },
  131. ],
  132. /*
  133. |--------------------------------------------------------------------------
  134. | 存储系统配置
  135. |--------------------------------------------------------------------------
  136. |
  137. | driver:
  138. | 存储方式,是一个实现了'Toplan\Sms\Storage'接口的类的类名,
  139. | 内置可选的值有'Toplan\Sms\SessionStorage'和'Toplan\Sms\CacheStorage',
  140. | 如果不填写driver,那么系统会自动根据内置路由的属性(route)中middleware的配置值选择存储器driver:
  141. | - 如果中间件含有'web',会选择使用'Toplan\Sms\SessionStorage'
  142. | - 如果中间件含有'api',会选择使用'Toplan\Sms\CacheStorage'
  143. |
  144. | prefix:
  145. | 存储key的prefix
  146. |
  147. | 内置driver的个性化配置:
  148. | - 在laravel项目的'config/session.php'文件中可以对'Toplan\Sms\SessionStorage'进行更多个性化设置
  149. | - 在laravel项目的'config/cache.php'文件中可以对'Toplan\Sms\CacheStorage'进行更多个性化设置
  150. |
  151. */
  152. 'storage' => [
  153. 'driver' => '',
  154. 'prefix' => 'laravel_sms',
  155. ],
  156. /*
  157. |--------------------------------------------------------------------------
  158. | 是否数据库记录发送日志
  159. |--------------------------------------------------------------------------
  160. |
  161. | 若需开启此功能,需要先生成一个内置的'laravel_sms'表
  162. | 运行'php artisan migrate'命令可以自动生成
  163. |
  164. */
  165. 'dbLogs' => false,
  166. /*
  167. |--------------------------------------------------------------------------
  168. | 队列任务
  169. |--------------------------------------------------------------------------
  170. |
  171. */
  172. 'queueJob' => 'Toplan\Sms\SendReminderSms',
  173. /*
  174. |--------------------------------------------------------------------------
  175. | 验证码模块提示信息
  176. |--------------------------------------------------------------------------
  177. |
  178. */
  179. 'notifies' => [
  180. // 频繁请求无效的提示
  181. 'request_invalid' => '请求无效,请在%s秒后重试',
  182. // 验证码短信发送失败的提示
  183. 'sms_sent_failure' => '短信验证码发送失败,请稍后重试',
  184. // 语音验证码发送发送成功的提示
  185. 'voice_sent_failure' => '语音验证码请求失败,请稍后重试',
  186. // 验证码短信发送成功的提示
  187. 'sms_sent_success' => '短信验证码发送成功,请注意查收',
  188. // 语音验证码发送发送成功的提示
  189. 'voice_sent_success' => '语音验证码发送成功,请注意接听',
  190. ],
  191. ];