一、使用阿里云短信服务
- 创建Access Key,获取AccessKeyId与AccessKeySecret
- 申请短信签名
- 申请短信模板
二、下载SDK
然后下载阿里云的短信服务的SDK包https://help.aliyun.com/docum...
- 点击下面的链接下载
三、配置SDK到项目
- 打开下载好的包解压有4个文件,在phalapi目录下的vendor/phalapi下创建aliyunsms目录把api_sdk,msg_sdk放进去
- 在phalapi中引入文件,然后cmd下执行composer dumpautoload,未安装composer的可以百度怎么安装
四、创建Sms.php接口并参照文档配置相关参数即可,下面是我的代码
<?php
namespace App\Api;
use PhalApi\Api;
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\SendBatchSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
// 加载区域结点配置
Config::load();
class Sms extends Api
{
static $acsClient = null;
/**
* 获取AcsClient
* @return DefaultAcsClient
*/
public static function getAcsClient() {
//产品名称:云通信短信服务API产品
$product = "Dysmsapi";
//产品域名
$domain = "dysmsapi.aliyuncs.com";
// accesskey
$accessKeyId = "accesskeyid"; // AccessKeyId
$accessKeySecret = "accesskeysecret"; // AccessKeySecret
// 暂时不支持多Region
$region = "cn-hangzhou";
// 服务结点
$endPointName = "cn-hangzhou";
if(static::$acsClient == null) {
//初始化acsClient,暂不支持region化
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服务结点
DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
// 初始化AcsClient用于发起请求
static::$acsClient = new DefaultAcsClient($profile);
}
return static::$acsClient;
}
/**
* 发送短信
* @param setPhoneNumbers接收的电话号码
* @param setSignName 签名名称
* @param setTemplateCode 短信模板CODE
*
* @return stdClass
*/
public static function sendSms($phoneNumbers,$signName,$templateCode,$outId=null) {
// 初始化SendSmsRequest实例用于设置发送短信的参数
$request = new SendSmsRequest();
//设置短信接收号码
$request->setPhoneNumbers($phoneNumbers);
//设置签名名称
$request->setSignName($signName);
//设置短信模板CODE
$request->setTemplateCode($templateCode);
$num = rand(100000,999999); //验证码
// 可选,设置模板参数
$request->setTemplateParam(json_encode(array( // 短信模板中字段的值
"code"=>$num
), JSON_UNESCAPED_UNICODE));
//$outId = null;
// 可选,设置流水号
$request->setOutId($outId);
// 发起访问请求
$acsResponse = static::getAcsClient()->getAcsResponse($request);
return $acsResponse;
}
public function getCode()
{
$phoneNumbers = '12345678910';
$signName = '签名名称'
$templateCode = 'SMS_123455';
$outId=1234555666
$response = $this->sendSms($phoneNumbers,$signName,$templateCode,$outId);
$res = 'ok';//执行
return $res;
}
}
然后直接访问接口http://api.xxxx.net/?s=Sms.ge...,即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。