TP3.2接入新版SDK阿里大于

字号+ 编辑: 国内TP粉 修订: 种花家 来源: ThinkPHP 2023-09-10 我要说两句(0)

不知道这文章还有用没用了...

阿里大于已经合并至阿里云,好多文档都是写的以前大于的SDK接入,我在事例中使用的是7.18更新的SDK, 部分代码借鉴别人博客

针对还不是很清楚的朋友们写一次图文的

1.获取到accessKeyId和accessKeySecret

开通短信服务后进入
https://dysms.console.aliyun.com/dysms.htm?spm=5176.2020520115.0.0.5e72c4c98dhAUW#/account
鼠标放置自己用户名上,会出现下拉框,选中【accesskeys】,选择继续使用,获取到accessKeyId和accessKeySecret
然后申请【短信模板】【短信签名】,请注意,如果短信中出现测试等字样,很大几率被运营商拦截,所以请自由发挥

2.下载SDK

https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.569.0uXt4J
进入后选择PHP,会得到dysmsapi_demo_sdk__php.zip,解压

3.放置API

在TP根目录下创建文件夹【Api】,并将api_sdk整个文件夹复制进去,改名dysms(可自由取名)

4.引入API文件

在自己需要调用的控制器头部引入如下路径

 1. use Aliyun\Core\Config;  
 2. use Aliyun\Core\Profile\DefaultProfile;  
 3. use Aliyun\Core\DefaultAcsClient;  
 4. use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;

5. 代码部分

附上源码public function sendMsg($mobile,$username)

{
    require_once  './Api/dysms/vendor/autoload.php';    //此处为你放置API的路径
    Config::load();             //加载区域结点配置
    $accessKeyId = '*******';
    $accessKeySecret = '*******';
    $templateCode = '82565004';   //短信模板ID
    //短信API产品名(短信产品名固定,无需修改)
    $product = "Dysmsapi";
    //短信API产品域名(接口地址固定,无需修改)
    $domain = "dysmsapi.aliyuncs.com";
    //暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
    $region = "cn-hangzhou";
    // 初始化用户Profile实例
    $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
    // 增加服务结点
    DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
    // 初始化AcsClient用于发起请求
    $acsClient = new DefaultAcsClient($profile);
    // 初始化SendSmsRequest实例用于设置发送短信的参数
    $request = new SendSmsRequest();
    // 必填,设置短信接收号码
    $request->setPhoneNumbers($mobile);    //$moblie是我前台传入的电话
    // 必填,设置签名名称
    $request->setSignName("来自RayZoey");      //此处需要填写你在阿里上创建的签名
    // 必填,设置模板CODE
    $request->setTemplateCode("SMS_84030003");    //短信模板编号
    
    $smsData = array('username'=>$username);    //所使用的模板若有变量 在这里填入变量的值  我的变量名为username此处也为username
    $request->setTemplateParam(json_encode($smsData));    
    //发起访问请求
    $acsResponse = $acsClient->getAcsResponse($request);
    //返回请求结果
    $result = json_decode(json_encode($acsResponse), true);
    return $result;
}


阅完此文,您的感想如何?
  • 有用

    1

  • 没用

    1

  • 开心

    1

  • 愤怒

    1

  • 可怜

    1

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.Q群: 2702237 13835667

相关课文
  • mac开发接入微信公众号接口返回报错 cURL error 56: SSLRead() return error -9806

  • PHP的换行符是什么

  • pecl安装程序时报错Array and string offset access syntax with curly braces is no longer supported

  • 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上嘉宾点评