PHP腾讯云短信接口
不得不说,官网的文档就是用来装逼的。
接个接口各种问题,强行解释为 签名 及其复杂,用来增加使用第三方的成本
还有调试,在线调试也有问题,有的没的,真的 连必选参数都能弄错
话不多,上代码
<?php/*** Description of Tx_sms* @author lianyu <1411479499@qq.com>* @time 2022-09-03*/
date_default_timezone_set("PRC");class Tx_sms {//put your code here
// 参数private $uid = ''; //在 云API密钥 上申请的标识身份 SecretId 入口https://console.cloud.tencent.com/capiprivate $pwd = ''; //在 云API密钥 上申请的标识身份 SecretKey private $TemplateID = ''; // 模板 ID,必须填写已审核通过的模板 ID private $SmsSdkAppid = ''; //短信SdkAppid在 [短信控制台](https://console.cloud.tencent.com/smsv2) 添加应用后生成的实际SdkAppid,示例如1400006666。private $post_url = 'https://sms.tencentcloudapi.com/';function __construct($templateid = '', $SmsSdkAppid = '') {$this->TemplateID = $templateid;$this->SmsSdkAppid = $SmsSdkAppid;}/*** 无参数短信发送* 注意点:腾讯短信接口 参数空字符不需要传递* 测试时,尽量有的没得都试一下*/function send_sms2($mobile = '18520745660') {$Timestamp = time();
// '您好,您在分期乐-京回收的卡券回收订单回收失败,请点击订单查看失败原因!请核对后重新提交!';$Nonce = mt_rand(111111, 999999);$TemplateParamSet = ''; //模板参数, 比如验证码的 数字$Sign = '京回收平台'; //短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名
// $mobile = '+8618520745660'; //例如:+8610011112222, 其中前面有一个+号 ,86为国家码,$data = array('Action' => 'SendSms','PhoneNumberSet.0' => '+86' . $mobile,'TemplateID' => $this->TemplateID,'Sign' => $Sign,
// 'TemplateParamSet.0' => $TemplateParamSet,'SmsSdkAppid' => $this->SmsSdkAppid,'Nonce' => $Nonce,'Region' => 'ap-guangzhou','SecretId' => $this->uid,'Timestamp' => $Timestamp,
// 'SessionContext'=> '您好,您在分期乐-京回收的卡券回收订单回收失败,请点击订单查看失败原因!请核对后重新提交!','Version' => '2019-07-11',);$qsign = $this->tosign('POST', $data, $this->pwd);$data['Signature'] = $qsign;$result = $this->_sendRequest($this->post_url, $data, 'POST');$result_ary = json_decode($result, true); // json转array$req = $result_ary['Response']['SendStatusSet'][0]['Code'];if ($req == 'Ok') {// 发送成功return true;} else {//记录日志require_once dirname(dirname(__FILE__)) . '/ALLClass.php';$pub = new ALLClass();$pub->data_log($result, __FUNCTION__ . '.log');}return false;}/*** 参数只有一个或者没有短信发送* 注意点:腾讯短信接口 参数空字符不需要传递* 测试时,尽量有的没得都试一下* @param type $mobile 手机号* @param type $TemplateParamSet 模板信息* @return boolean 成功返回boolean true*/function send_sms($mobile = '18520745660', $TemplateParamSet='') {$Timestamp = time();
// '您好,您收的卡券回收订单回收失败,请点击订单查看失败原因!请核对后重新提交!';$Nonce = mt_rand(111111, 999999);
// $TemplateParamSet = ''; //模板参数, 比如验证码的 数字$Sign = '京回收平台'; //短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名
// $mobile = '+8618520745660'; //例如:+8610011112222, 其中前面有一个+号 ,86为国家码,$data = array('Action' => 'SendSms','PhoneNumberSet.0' => '+86' . $mobile,'TemplateID' => $this->TemplateID,'Sign' => $Sign,'TemplateParamSet.0' => $TemplateParamSet,'SmsSdkAppid' => $this->SmsSdkAppid,'Nonce' => $Nonce,'Region' => 'ap-guangzhou','SecretId' => $this->uid,'Timestamp' => $Timestamp,
// 'SessionContext'=> '您的卡券回收订单回收失败,请点击订单查看失败原因!请核对后重新提交!','Version' => '2019-07-11',);if(empty($TemplateParamSet)){unset($data['TemplateParamSet.0']);}$qsign = $this->tosign('POST', $data, $this->pwd);$data['Signature'] = $qsign;$result = $this->_sendRequest($this->post_url, $data, 'POST');$result_ary = json_decode($result, true); // json转array$req = $result_ary['Response']['SendStatusSet'][0]['Code'];if ($req == 'Ok') {// 发送成功return true;} else {//记录日志require_once dirname(dirname(__FILE__)) . '/ALLClass.php';$pub = new ALLClass();$pub->data_log($result, __FUNCTION__ . '.log');}return false;}function _sendRequest($url, $paramArray, $method = 'POST') {$ch = curl_init();if ($method == 'POST') {$paramArray = is_array($paramArray) ? http_build_query($paramArray, null, '&', PHP_QUERY_RFC3986) : $paramArray;curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $paramArray);} else {$url .= '?' . http_build_query($paramArray, null, '&', PHP_QUERY_RFC3986);}curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_TIMEOUT, 30);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);if (false !== strpos($url, "https")) {// 证书curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);}$resultStr = curl_exec($ch);return $resultStr;}function tosign($pa, $param, $pwd) {ksort($param);$signStr = $pa . "sms.tencentcloudapi.com/?";foreach ($param as $key => $value) {$signStr = $signStr . $key . "=" . $value . "&";}$signStr = substr($signStr, 0, -1);$signature = base64_encode(hash_hmac("sha1", $signStr, $pwd, true));return $signature;}function test() {$mobile=$_REQUEST['mobile'];var_dump($mobile);$this->send_sms($mobile,'test');}}
//$sms=new Tx_sms();
//$sms->test();
调用简单,参数填写正确,直接把最后两行注释干掉,运行文件即可
下面来一首忘记了给诸君的文化瑰宝:
登鹳雀楼
作者:王之涣
白日依山尽,
黄河入海流。
欲穷千里目,
更上一层楼。
转载请注明出处。
PHP腾讯云短信接口相关推荐
- 腾讯云短信接口报错1014
{"result":1014,"errmsg":"\u6A21\u7248\u672A\u5BA1\u6279\u6216\u5185\u5BB9\u ...
- 大聪明教你学Java | 调用腾讯云短信接口,实现短信通知
前言 提到短信接口,相信每一位程序猿都不会陌生,它可以来帮助我们实现短信验证码.短信通知等等功能,刚好最近在帮朋友开发一套会员管理系统,里面也集成了短信功能(短信接口平台选择的是腾讯云平台),借此机会 ...
- 腾讯云短信接口实现(亲测可用,不能用来捶我)
写在最前 本文部分内容思路来源于博客:跳转连接 准备工作 首先要注册腾讯云账号 注册完成之后在云产品搜索密钥,点进去 默认应该是没有密钥的,新建一个新建之后SecretId和SecretKey之后会用 ...
- 【SpringBoot深入浅出系列】SpringBoot之调用腾讯云短信接口发送短信
目录 一.开发前准备 1.创建签名 2.创建正文模板管理 3.创建应用 4.创建secretId和secretKey 二.开发 1.创建 Spring Initializr 项目 tengxunsms ...
- 2021最新 Python调用腾讯云短信接口
端口相关 登录实例前,需要放通什么端口? 您需要对实例绑定安全组开放相应端口,具体操作步骤请参考 典型场景配置. 云服务器常用端口有哪些? 请参考 服务器常用端口. 为何要开启端口?如何开启某个端口? ...
- 短信接口在本地调试正常_Pivotal实践:腾讯云短信小应用
最近登录了一下腾讯云控制台,发现账户下居然每月有100条免费短信可以使用.结合一下最近成都阴晴不定的天气,女友上班老是忘记带伞的现状,于是决定开发一款天气短信提醒小应用,每天早上定时给女友发送天气状况 ...
- 使用Python开通腾讯云短信(sms)【亲测有效·超详细】
使用Python开通腾讯云短信(sms) 1.开通腾讯云短信服务 2.创建应用 3.创建签名 4.Python 操作腾讯云短信接口 模块安装 详细代码[可直接作为接口] 1.开通腾讯云短信服务 腾讯云 ...
- Vb.net发送腾讯云短信
1腾讯云短信接口sdk3.0网址如下: https://cloud.tencent.com/document/sdk/.NET 2安装包 打开vs2017,打开菜单:工具->nuget包管理器- ...
- Java调用腾讯云短信API实现发送短信验证码完整。(详细,内附工具类)
此先声明,本博文并不是为了推销腾讯云短信产品. 只是因为腾讯云短信SDK的使用指南讲的不是很详细,觉得肯定有很多人像我一样被搞的一头雾水.所以专门发一篇关于使用短信接口的博文,为了记录,也为了帮助和我 ...
- 国际短信系统平台发送接口说明方法|网页短信平台开发搭建-移讯云短信系统
国际短信系统平台发送接口说明方法|网页短信平台开发搭建-移讯云短信系统 此接口为发送接口可直接通过pos直接调用 直接发送,源码短信平台搭建平台时 包含此功能,在客户端中可查看API接口文档 接口名称 ...
最新文章
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 9. 集成学习(上)
- red hat 6 安装php,Red hat linux服务器简明安装手册(OpenSSL+Mysql+Apache2+PHP)
- css3加载ing动画
- P1552-[APIO2012]派遣【左偏树】
- linux 系统负载高 如何检查
- 项目交换成功——PM(李忠)
- 29.优化 MySQL Server
- 对 String 字符串的理解
- IAT 注入ImportInject(dll)
- 废粉盒在哪里_复印机提示“废粉盒满”“请及时更换废粉盒”
- 2021年高压电工考试APP及高压电工模拟考试题库
- 吐槽 intent:#Intent;S.K_1171477665=;end
- hive 自定义UDF函数解析HTML
- 《了不起的盖茨比》极简版:进化神驱动的二舅和二伯
- oracle lms进程 内存,lms进程耗用大量内存
- idhttp的socket error # 10054 错误的处理办法
- ExifTool常用使用方法
- 数字电路与逻辑电路芯片
- Spring学习笔记(二)
- 贴几张Google Earth的图