1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php接入腾讯云短信SDK

php接入腾讯云短信SDK

时间:2022-08-16 07:01:10

相关推荐

php接入腾讯云短信SDK

最近心血来潮,做个注册短信验证的项目,使用了腾讯云的短信服务,由于提供了SDK,接入速度还是很快的,只花了数小时即成功。推荐使用。

这里分享一下接入SDK的步骤和一些容易出错的地方。

服务器环境:

CentOS7.7+宝塔面板

一、开通腾讯云短信应用

https://console./smsv2

注册账号登录认证这些简单的步骤就不提了,实名认证之后会赠送100条免费短信,如果有营业执照进行企业认证会额外赠送1000条。

第一步,点击国内短信创建签名和正文模板。签名就是发送者,会以中括号包住,正文就是模板化的正文,有几种可以选择,自己编辑模板可能会降低通过率。最终发送的短信为:【签名】+正文。创建好等待审核通过即可,一般半个小时左右。这里不再详细展开。创建成功后获取到签名和正文模板的ID

第二步,点击应用列表创建应用,填写名称和简介即可。主要用于获取到

SDK AppID

此处可以将自己的手机号加入白名单,方便调试接口。

二、调试接口传参

上述操作全部完成后,访问

https://console./api/explorer?Product=sms&Version=-07-11&Action=SendSms&SignVersion=

进入调试页面

语言选择PHP,左边的传参是比较重点的地方。

SecretId和SecretKey点旁边的查看密钥即可生成;

PhoneNumberSet.N 接收短信的手机号。注意开头要加上+86;

TemplateID即之前创建的正文模板ID;

SmsSdkAppid之前创建的应用ID;

Sign之前创建的签名。注意是签名内容,不是ID,这里很容易弄错;

TemplateParamSet.N短信内容:

这个内容是填充到模板里面的,如

您的注册验证码:{1},如非本人操作,请忽略本短信!

短信内容将会替换{1}和剩下的内容一起发送出去。

其他参数可不填。

信息全部填写完成后,点击在线调用->发送请求。如果响应成功,且成功收到短信,就可以进行下一步的安装SDK了。反之根据响应结果检查传参。

三、安装部署SDK

PHP文档

/document/product/382/43195

第一步,安装Composer

登录服务器终端,执行

curl -sS /installer | php

第二步,部署SDK添加依赖

注意先切换到网站目录,默认会安装到root文件夹,造成引用文件困难。

建议切换到wwwroot目录进行安装。

宝塔面板会默认禁用PHP的一些函数,根据提示去开启,从禁用列表里面删除

Composer部署成功之后,将在线调试的代码复制下来。

<?phprequire_once 'vendor/autoload.php';use TencentCloud\Common\Credential;use TencentCloud\Common\Profile\ClientProfile;use TencentCloud\Common\Profile\HttpProfile;use TencentCloud\Common\Exception\TencentCloudSDKException;use TencentCloud\Sms\V0711\SmsClient;use TencentCloud\Sms\V0711\Models\SendSmsRequest;try {$cred = new Credential("******", "******");$httpProfile = new HttpProfile();$httpProfile->setEndpoint("");$clientProfile = new ClientProfile();$clientProfile->setHttpProfile($httpProfile);$client = new SmsClient($cred, "", $clientProfile);$req = new SendSmsRequest();$params = array("PhoneNumberSet" => array( "+86***********" ),"TemplateParamSet" => array( "******" ),"TemplateID" => "******","SmsSdkAppid" => "******","Sign" => "******");$req->fromJsonString(json_encode($params));$resp = $client->SendSms($req);print_r($resp->toJsonString());}catch(TencentCloudSDKException $e) {echo $e;}

第二行,引用的autoload.php文件位置,修改成服务器上的文件地址;

$params = array("PhoneNumberSet" => array( "+86***********" ),"TemplateParamSet" => array( "短信内容" ),"TemplateID" => "******","SmsSdkAppid" => "******","Sign" => "******");

各种ID固定的传参无需修改,此处建议把手机号和短信内容改成变量,由外部传入,笔者修改成 $_GET[‘phoneNum’ ]和 [‘veriCode’]。

将全部代码保存到php文件,使用GET或者POST传参即可调用。

由于加号 “+” 使用GET方式传参需要进行encodeURI转码,实际测试中发现加号可不写,SDK会自动补上。即传参86130****0000。POST可正常传参。

可接收返回值记录到日志。

建议仅限服务端内部调用,可在执行前加上代码:

if ($_SERVER['REMOTE_ADDR']!="服务器IP地址"){die('No Auth!');}

服务器内部使用cURL调用即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。