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('发送成功'); } }