阿里云短信服务API(PHP版本)

#第一步:安装alibabacloud镜像,PHP版本要大于5.4

composer require alibabacloud/dysmsapi-20170525 4.1.1

#第二步 
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use AlibabaCloud\Credentials\Credential as AliyunCredential ;
use \Exception as AliyunException;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

function createClient(){
    $access_config = [
        'type' =>'access_key',
        'access_key_id'=>'你的key',
        'access_key_secret'=>'你的secret'
    ];
    $credential = new AliyunCredential($access_config);
    $config = new Config([
        "credential" => $credential,
        "endpoint" =>"dysmsapi.aliyuncs.com"
    ]);
    return new Dysmsapi($config);
}
/**
* 
 * */
function getAlibabaCloudMessage($mobile_num,$code,$sms_id){
    $client = createClient();
    $sendSmsRequest = new SendSmsRequest([
        "phoneNumbers" => "{$mobile_num}",
        "signName" => "签名",
        "templateCode" => "{$sms_id}",
        "templateParam" =>  json_encode(["code" => "{$code}"])
    ]);
    $runtime = new RuntimeOptions([]);
    try {
        // 复制代码运行请自行打印 API 的返回值
        $response  = $client->sendSmsWithOptions($sendSmsRequest, $runtime);

        $resp = $response->toArray();
        $statusCode = $resp['statusCode'];
        $code = $resp['body']['Code'];

        if(200 == $statusCode && 'OK' == $code){
            return 1 ;
        }else{
            return 0;
        }

    } catch (Exception $error) {
        // if (!($error instanceof TeaError)) {
        //     $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
        // }
        // // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
        // // 错误 message
        // var_dump($error->message);
        // // 诊断地址
        // var_dump($error->data["Recommend"]);
        // Utils::assertAsString($error->message);

        return 0;
    }
}

#调用函数
$mobile_num="手机号";
$code ="验证码"
$sms_id = "模板id";
getAlibabaCloudMessage($mobile_num,$code,$sms_id)

其中有一点需要注意的是:

文档中参数是:accessKeyId,但是实际上的参数命名规则为access_key_id。

通过配置Credentials实现OpenAPI安全调用(PHP SDK)_阿里云SDK(Alibaba Cloud SDK)-阿里云帮助中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值