php调用es原生api,#PHP# 华为云 API 方式发送短信

使用给华为云 消息 服务 API 方式发送短信

代码来自华为云,已通过测试

/**

* 华为云发送短信示例代码

* 本段代码需要使用自己的配置信息才能正常运行,出配置信息外,不需要改动任何代码内容即可运行

*

* @version 0.1

* @author huawei cloud(https://support.huaweicloud.com/devg-msgsms/sms_04_0003.html)

*

* 2019-03-05 IIS10 + PHP 7.2.5调试通过

*/

//

// 为避免误调用而加入的提示,测试&部署时需移除本段代码

//

$tips = array(

"code"=>"200",

"msg"=>"Config ur info first",

"time"=>date("h:i:sa")

);

die(json_encode($tips));

//必填,请参考"开发准备"获取如下数据,替换为实际值

$url = 'https://api.rtc.huaweicloud.com:10443/sms/batchSendSms/v1'; //APP接入地址+接口访问URI

$APP_KEY = ''; //APP_Key

$APP_SECRET = ''; //APP_Secret

$sender = ''; //国内短信签名通道号或国际/港澳台短信通道号

$TEMPLATE_ID = ''; //模板ID

//条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称

//国际/港澳台短信不用关注该参数

$signature = ''; //签名名称

//必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔

$receiver = '+8615123456789,+8615123456789'; //短信接收人号码

//选填,短信状态报告接收地址,推荐使用域名,为空或者不填表示不接收状态报告

$statusCallback = '';

/**

* 选填,使用无变量模板时请赋空值 $TEMPLATE_PARAS = '';

* 单变量模板示例:模板内容为"您的验证码是${NUM_6}"时,$TEMPLATE_PARAS可填写为'["369751"]'

* 双变量模板示例:模板内容为"您有${NUM_2}件快递请到${TXT_32}领取"时,$TEMPLATE_PARAS可填写为'["3","人民公园正门"]'

* 查看更多模板变量规则:常见问题>业务规则>短信模板内容审核标准

* @var string $TEMPLATE_PARAS

*/

$TEMPLATE_PARAS = '["369751"]'; //模板变量,根据自身使用的模板,其值长度和个数与模板对应

//请求Headers

$headers = [

'Content-Type: application/x-www-form-urlencoded',

'Authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"',

'X-WSSE: ' . buildWsseHeader($APP_KEY, $APP_SECRET)

];

//请求Body

$data = http_build_query([

'from' => $sender,

'to' => $receiver,

'templateId' => $TEMPLATE_ID,

'templateParas' => $TEMPLATE_PARAS,

'statusCallback' => $statusCallback,

// 'signature' => $signature //使用国内短信通用模板时,必须填写签名名称

]);

$context_options = [

'http' => ['method' => 'POST', 'header'=> $headers, 'content' => $data],

'ssl' => ['verify_peer' => false, 'verify_peer_name' => false] //为防止因HTTPS证书认证失败造成API调用失败,需要先忽略证书信任问题

];

print_r($context_options) . PHP_EOL; //打印请求信息

$response = file_get_contents($url, false, stream_context_create($context_options));

print_r(json_decode($response)) . PHP_EOL; //打印响应信息

/**

* 构造X-WSSE参数值

* @param string $appKey

* @param string $appSecret

* @return string

*/

function buildWsseHeader(string $appKey, string $appSecret){

date_default_timezone_set('Asia/Shanghai');

$now = date('Y-m-d\TH:i:s\Z'); //Created

$nonce = uniqid(); //Nonce

$base64 = base64_encode(hash('sha256', ($nonce . $now . $appSecret))); //PasswordDigest

return sprintf("UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\"",

$appKey, $base64, $nonce, $now);

}

?>

8db16dc373878e6807648a4a5958c0a1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值