ThinkPHP阿里云短信调用SendSms发送

SendSms接口是短信发送接口,支持在一次请求中向多个不同的手机号码发送同样内容的短信。
如果需要在一次请求中分别向多个不同的手机号码发送不同签名和模版内容的短信,使用SendBatchSms接口。

准备:
1、AccessKey ID和AccessKey Secret,可在阿里云控制台创建和查看
2、Alibaba Cloud SDK for PHP适用于PHP > 5.5.0

安装Alibaba Cloud SDK for PHP
1、通过Composer安装Alibaba Cloud SDK for PHP作为依赖项

执行命令:

composer require alibabacloud/sdk

2、通过下载php-sdk/sdk.zip 文件在项目中使用

下载地址:

http://aliyunsdk-pages.alicdn.com/php-sdk/sdk.zip?spm=a2c4g.11186623.2.13.114a16e4KqoVMV&file=sdk.zip

发起调用



<?php
  
	use AlibabaCloud\Client\AlibabaCloud;
	use AlibabaCloud\Client\Exception\ClientException;
	use AlibabaCloud\Client\Exception\ServerException;
	
    $accessKeyId='阿里云accessKeyId';
    $accessSecret='阿里云accessSecret';
    
    //初始化客户端
	AlibabaCloud::accessKeyClient($accessKeyId,$accessSecret)
	                        ->regionId('cn-hangzhou')
	                        ->asDefaultClient();
	//发起调用-RPC调用(也可使用ROA调用具体可看官方文档)
	
	try {
	    $result = AlibabaCloud::rpc()
	                          ->product('Dysmsapi')
	                          ->version('2017-05-25')
	                          ->action('SendSms')
	                          ->method('POST')
	                          ->host('dysmsapi.aliyuncs.com')
	                          ->options([
	                                       'query' => [
                                            'RegionId' => "cn-hangzhou",    
                                            'PhoneNumbers' => $mobile,
                                            'SignName' => $sign_name,
                                            'TemplateCode' => $templateCode,
                                            'TemplateParam' => json_encode($smsData),
                                            'SmsUpExtendCode' => "1",
                                            'OutId' => $mobile.'_'.time(),
                                            ],
	                                    ])
	                          ->request();
	    $result=$result->toArray();
	    return $result['Code'] === 'OK' ? 'success' : 'fail';
	} catch (ClientException $e) {
	    return 'fail:'.$e->getErrorMessage();
	} catch (ServerException $e) {
	    return 'fail:'.$e->getErrorMessage();
	}

请求参数:

名称 是否必选 描述
PhoneNumbers 接收短信的手机号码,多个手机号码发送短信,手机号码之间以英文逗号(,)分隔
SignName 短信签名名称
TemplateCode 短信模板ID
TemplateParam 短信模板变量对应的实际值,JSON格式
SmsUpExtendCode 上行短信扩展码
OutId 外部流水号

返回参数:

名称 描述
BizId 发送回执ID
Code 请求状态码 返回OK代表请求成功。
Message 状态码的描述

阿里云在线调试地址

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐