This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/common/library/sms/engine/Aliyun.php
2020-04-25 22:20:29 +08:00

87 lines
2.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\common\library\sms\engine;
use app\common\library\sms\package\aliyun\SignatureHelper;
/**
* 阿里云短信模块引擎
* Class Aliyun
* @package app\common\library\sms\engine
*/
class Aliyun extends Server
{
private $config;
/**
* 构造方法
* Qiniu constructor.
* @param $config
*/
public function __construct($config)
{
$this->config = $config;
}
/**
* 发送短信通知
* @param $msgType
* @param $templateParams
* @return bool|\stdClass
*/
public function sendSms($msgType, $templateParams)
{
$params = [];
// *** 需用户填写部分 ***
// 必填: 短信接收号码
$params["PhoneNumbers"] = $this->config[$msgType]['accept_phone'];
// 必填: 短信签名,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$params["SignName"] = $this->config['sign'];
// 必填: 短信模板Code应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$params["TemplateCode"] = $this->config[$msgType]['template_code'];
// 可选: 设置模板参数, 假如模板中存在变量需要替换则为必填项
$params['TemplateParam'] = $templateParams;
// 可选: 设置发送短信流水号
// $params['OutId'] = "12345";
// 可选: 上行短信扩展码, 扩展码字段控制在7位或以下无特殊需求用户请忽略此字段
// $params['SmsUpExtendCode'] = "1234567";
// *** 需用户填写部分结束, 以下代码若无必要无需更改 ***
if (!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
$params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);
}
// 初始化SignatureHelper实例用于设置参数签名以及发送请求
$helper = new SignatureHelper;
// 此处可能会抛出异常注意catch
$response = $helper->request(
$this->config['AccessKeyId']
, $this->config['AccessKeySecret']
, "dysmsapi.aliyuncs.com"
, array_merge($params, [
"RegionId" => "cn-hangzhou",
"Action" => "SendSms",
"Version" => "2017-05-25",
])
// 选填: 启用https
, true
);
// 记录日志
log_write([
'config' => $this->config,
'params' => $params
]);
log_write($response);
$this->error = $response->Message;
return $response->Code === 'OK';
}
}