最近访客
百度未收录

discuzQ如何修改短信接口为阿里云短信

第一步

文件 app\\Api\\Serializer\\ForumSettingSerializer.php

第130行

 \'qcloud_sms\' => (bool)$this->settings->get(\'qcloud_sms\', \'qcloud\'),

改为

\'qcloud_sms\' => true,

文件 app\\Listeners\\Setting\\ClearDisabledPermission.php

找到

if ($this->settings->get(\'register_type\') == 1) {
     $this->settings->set(\'register_type\', 0);
 }

删除或者注释

登录后台 选择 全局->注册与登录设置 ,选择手机号模式 保存。

利用数据库管理工具执行:

INSERT INTO pre_group_permission (group_id, permission) VALUES (\'10\', \'publishNeedBindPhone\');

10 为用户组ID 开启用户组 发帖需要绑定手机

第二步

文件 app\\Api\\Controller\\Mobile\\SendController.php

use Tobscure\\JsonApi\\Document;

下面加

use Overtrue\\EasySms\\EasySms;

找到:

if (!(bool)$this->settings->get(\'qcloud_sms\', \'qcloud\')) {
     // 未开启短息服务不发送短信
     $mobileRule = [
                     function ($attribute, $value, $fail) {
         $fail(\'短信服务未开启。\');
     }
     ,
                 ];
 } else

删除

找到

$result = $this->smsSend($data[\'mobile\'], new SendCodeMessage([\'code\' => $mobileCode->code, \'expire\' => self::CODE_EXCEPTION]));
 if (isset($result[\'qcloud\'][\'status\']) && $result[\'qcloud\'][\'status\'] === \'success\') {
     $mobileCode->save();
 }

注释或删除

增加

//阿里云
 $config = [
             // HTTP 请求的超时时间(秒)
 \'timeout\' => 5.0,
             // 默认发送配置
 \'default\' => [
                 // 网关调用策略,默认:顺序调用
 \'strategy\' => \\Overtrue\\EasySms\\Strategies\\OrderStrategy::class,
                 // 默认可用的发送网关
 \'gateways\' => [
                     \'aliyun\'
                 ],
             ],
             // 可用的网关配置
 \'gateways\' => [
                 \'errorlog\' => [
                     \'file\' => \'/tmp/easy-sms.log\',
                 ],
                 \'aliyun\' => [
                     \'access_key_id\' => \'AccessKeyId\',
                     \'access_key_secret\' => \'AccessKeySecret\',
                     \'sign_name\' => \'签名\',
                 ],
                 //…
 ],
         ];
 $easySms = new EasySms($config);
 $result = $easySms->send($data[\'mobile\'],[
             \'template\' => \'短信模板ID\',
             \'data\' => [
                 \'code\' => $mobileCode->code
             ],
         ]);
 if (isset($result[\'aliyun\'][\'status\']) && $result[\'aliyun\'][\'status\'] === \'success\') {
     $mobileCode->save();
 }\'

完成

温馨提示: 本文最后更新于2022/10/19 22:42:35。若文章内容或图片失效,请 留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容