| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace backend\modules\common\controllers;
- use backend\models\AdminRole;
- use backend\controllers\BaseController;
- use common\helpers\sms\Sms;
- use common\models\backend\Menu;
- use common\models\rbac\AuthItem;
- use common\models\rbac\AuthItemChild;
- use common\models\rbac\AuthRole;
- use Yii;
- /**
- * 短信服务
- *
- * @Author zmz
- * @DateTime 2022-10-24 10:29:54
- * @copyright: Copyright (c) 2022 广东七件事集团
- */
- class SmsController extends BaseController
- {
- /**
- * 发送短信验证码
- * @Author zmz
- * @DateTime 2022-10-24 10:29:54
- * @copyright: Copyright (c) 2022 广东七件事集团
- * @throws
- * @return void
- */
- public function actionSend()
- {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['mobile'], 'required', 'message' => '请输入手机号码'],
- [['mobile','area_code','mall_id'], 'integer'],
- [['sms_type'], 'string'],
- [['valid_time'], 'integer'], //有效期:分钟
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $area_code = '';// 初始化区号
- $gateways = 'domestic';// 默认国内短信
- // 检测是登录并且区号不为空则使用国际短信
- if (!empty($this->user) && !empty($this->user->area_code)) {
- $gateways = 'international';
- $area_code = $this->user->area_code;
- }
- // 判断是否有区号
- if (!empty($params['area_code']) && $params['area_code'] != 86) {
- $gateways = 'international';
- $area_code = $params['area_code'];
- }
- $sms = new Sms($params['mall_id'], $gateways);
- Sms::$validityMinutes = $params['valid_time'] ?? 60; //60分钟内有效
- try {
- if ($sms->sendCaptcha($params['mobile'], $area_code,$params['sms_type']) === false) return $this->error('发送失败');
- }catch (\Exception $e){
- return $this->error($e->getMessage());
- }
- return $this->success('发送成功');
- }
- }
|