php 阿里短信接口部署

composer 安装三方类:composer require alibabacloud/client

发送短信类

复制代码
<?php
namespace app\common\controller;

use think\Controller;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

class SendSms extends Controller {

    static private $accessKeyId = "****************";
    static private  $accessSecret = "*****************";
    static private  $signName = "*****服务信息平台";
   // 优先加载
   public function  _initialize() {

   }

    static function  send_sms($mobile,$code,$template){
        $accessKeyId = self::$accessKeyId;
        $accessSecret = self::$accessSecret;
        $signName = self::$signName;
        AlibabaCloud::accessKeyClient($accessKeyId, $accessSecret)
            ->regionId('cn-hangzhou')
            ->asDefaultClient();

        try {
            $result = AlibabaCloud::rpc()
                ->product('Dysmsapi')
                // ->scheme('https') // https | http
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->host('dysmsapi.aliyuncs.com')
                ->options([
                    'query' => [
                        'RegionId' => "cn-hangzhou",
                        'PhoneNumbers' => $mobile,
                        'SignName' => $signName,
                        'TemplateCode' => $template,
                        'TemplateParam' => $code,
                    ],
                ])
                ->request();
            print_r($result->toArray());
        } catch (ClientException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        } catch (ServerException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        }
    }
}
复制代码

发送短信函数

复制代码
    /**
     * 发送 登录 验证码
     * @return [type] [description]
     */
    public function sendLogin(){
        $post = $this->request->param();
        $validate = new \think\Validate([
            ['phone', 'require|/^1[3-8]{1}[0-9]{9}$/', '手机号不能为空|手机号格式不正确'],
        ]);
        if (!$validate->check($post)) {
            return $this->error('发送失败:' . $validate->getError());
        }
        $mobile = $post['phone'];
        $template = "SMS_195580724";

        $code['code']  = mt_rand(000000,999999);
        $aa = $code['code'];
        Session::set("code",$code['code']);
        $return = SendSms::send_sms($mobile,json_encode($code),$template);
        return $return;
    }
复制代码

测试用例

复制代码
use app\common\controller\SendSms;
function sendLogin(){
    $mobile = "150888888888";
    $template = "SMS_195580724";

    $code['code']  = mt_rand(000000,999999);
    $return = SendSms::send_sms($mobile,json_encode($code),$template);
    return $return;
}
复制代码

 

2020-08-08

posted @   孤陌  阅读(304)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示