php阿里云短信功能
需要签名比如:【阿里云】xxxx。
只有签名通过的,才可以发送。
需要创建短信模版。
支持验证码,以及各种自定义的消息模版。
新建模版,需要审核,审核通过才可以使用。
阿里云使用,需要配置key,secret。
php中可以先下载sdk。
composer require alibabacloud/client
然后参考demo,写出自己的工具类。
https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?spm=a2c4g.11186623.2.9.40561a23AKu5S4&sdkStyle=old&lang=PHP
<?php
/**
* 短信发送工具类
* User: Eden
* Date: 19-4-26 上午9:23
*/
namespace Common\Util;
use AlibabaCloud\Client\AlibabaCloud;
// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
class SmsUtil extends CommonUtil
{
public static function sendSms($phone, $template, $param, $signName = 'xx')
{
$sms_key = C('ALIYUN.AccessKey');
$sms_secret = C('ALIYUN.AccessSecret');
$sms_region = C('ALIYUN.RegionId');
AlibabaCloud::accessKeyClient($sms_key, $sms_secret)
->regionId($sms_region)
->asDefaultClient();
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
// 'query' => [
// 'PhoneNumbers' => "xxx",
// 'SignName' => "xxx",
// 'TemplateCode' => "SMS_212694008",
// 'TemplateParam' => "{'password':'123456'}",
// ],
'query' => [
'PhoneNumbers' => $phone,
'SignName' => $signName,
'TemplateCode' => $template,
'TemplateParam' => $param,
],
])
->request();
$result =$result->toArray();
if ($result['Code'] == 'OK') {
return true;
} else {
return false;
}
}
}
使用
/**
* 发送短信
* @return stdClass
*/
public function sendSms() {
$smsUtil = new SmsUtil();
$param = [
'password' => '123456'
];
$res = $smsUtil::sendSms('xxx',C('ALIYUN_SMS_TEMPLATE.INIT_PASSWORD'),json_encode($param));
if ($res) {
$this->json->ok();
} else {
$this->json->err();
}
}