1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 阿里云PHP-SMS短信服务——验证码发送教程

阿里云PHP-SMS短信服务——验证码发送教程

时间:2023-02-01 11:22:40

相关推荐

阿里云PHP-SMS短信服务——验证码发送教程

开通SMS服务创建签名模板 创建签名记住签名名称创建模板查看并记住模板CODE 创建并记住KeyId和KeySecret下载阿里云短信服务器PHP-SDK创建PHP-SMS项目 创建代码文件移入Requset 完成SMS短信服务DEMO打包

开通SMS服务

首先去这个网站开通阿里云的SMS短信服务:/product/sms?spm=5176.8142029.388261.295.vU5T5g

创建签名、模板

要使用短信服务器需要先创建签名和模板,并提交给阿里云审核通过才可以正常使用短信服务。

创建签名

创建签名的时候注意一下签名名称,其他的话就不累赘了。

记住签名名称

现在请记住你创建的签名名称,一会在代码中需要使用。

创建模板

创建模板也很简单,阿里云已经把要如何填写写的很清楚了。

查看并记住模板CODE

返回你的控制台,当你的模板审核通过时这就会出现大于0的数。

点击这个数,会进入模板管理面板就能看到你的模板CODE了,请记住他。

创建并记住KeyId和KeySecret

到控制台,把鼠标放到右上角你的用户名的位置会出现一个accessKeySecret点进去就可以创建KeyId和KeySecret了,如果他提醒你用RAM安全什么的,你看你要不要给你的员工分配权限,如果要的话就用RAM,否则就直接点击继续使用就行了。

)

下载阿里云短信服务器PHP-SDK

官方下载地址:/document_detail/55359.html?spm=5176.8195934.507901.12.b1ngGK

本教程使用SDK下载地址:/s/1bpF5B8z

密匙:pult

创建PHP-SMS项目

创建代码文件

创建你的代码文件,并把这个文件放在刚才下载的SDK文件夹中的api_sdk的aliyun-php-sdk-core目录下,并把以下代码写入代码文件。

aliyun-php-sdk-core目录里包含了SMS短信服务的各种模块,所以必须得放在这里面才能使用服务

<?phpinclude 'Config.php';include_once 'Request/V0525/SendSmsRequest.php';include_once 'Request/V0525/QuerySendDetailsRequest.php';$accessKeyId = "yourAccessKeyId";//阿里云KeyId $accessKeySecret = "yourAccessKeySecret";//阿里云KeySecret//短信API产品名$product = "Dysmsapi";//照写就行了//短信API产品域名$domain = "";//照着写就行了//暂时不支持多Region$region = "cn-hangzhou";//照着写就行了//初始化访问的acsCleint$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);$acsClient= new DefaultAcsClient($profile);$request = new SendSmsRequest;//必填-短信接收号码。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式$request->setPhoneNumbers("123456789");//这里填你要发送的电话号码//必填-短信签名$request->setSignName("xx项目");//这里就是刚才让你记住的项目签名//必填-短信模板Code$request->setTemplateCode("SMS_123456");//这里就是模板CODE//选填-假如模板中存在变量需要替换则为必填(JSON格式)$request->setTemplateParam("{\"name\":\"郭涛\",\"number\":\"316\"}");//选填-发送短信流水号$request->setOutId("1234");//照填就行了//发起访问请求$acsResponse = $acsClient->getAcsResponse($request);var_dump($acsResponse);//返回结果

移入Requset

还是在下载的SDK文件夹中的api_sdk目录下,有一个交Dysmsapi的文件夹,打开这个文件夹就会看到一个叫Request的文件夹,把这个Request的件夹复制粘贴到aliyun-php-sdk-core里面。说实在的我搞不清阿里云这个为什么要这样分开装SDK,可能是我使用的姿势不对吧,如果有大神搞得清,还劳烦赐教小弟,好人一生平安。

移入后,打开Request\V0525目录里有一个SendSmsRequest.php的源文件。请屏蔽第一行的空间命名。 也就是这一行namespace Dysmsapi\Reqest\V0525;最后效果如下(后来我重新实验了一次,好像更新了,这一行就不要屏蔽了。反正大家多试试嘛,要是不行就试试屏蔽或解除屏蔽)

<?php/** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements. See the NOTICE file* distributed with this work for additional information* regarding copyright ownership. The ASF licenses this file* to you under the Apache License, Version 2.0 (the* "License"); you may not use this file except in compliance* with the License. You may obtain a copy of the License at**/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing,* software distributed under the License is distributed on an* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY* KIND, either express or implied. See the License for the* specific language governing permissions and limitations* under the License.*///namespace Dysmsapi\Request\V0525;//就是屏蔽这一行代码!!!!(后来我重新实验了一次,好像更新了,这一行就不要屏蔽了。反正大家多试试嘛,要是不行就试试屏蔽或解除屏蔽)class SendSmsRequest extends \RpcAcsRequest{function __construct(){parent::__construct("Dysmsapi", "-05-25", "SendSms");}private $outId;private $signName;private $ownerId;private $resourceOwnerId;private $templateCode;private $phoneNumbers;private $resourceOwnerAccount;private $templateParam;public function getOutId() {return $this->outId;}public function setOutId($outId) {$this->outId = $outId;$this->queryParameters["OutId"]=$outId;}public function getSignName() {return $this->signName;}public function setSignName($signName) {$this->signName = $signName;$this->queryParameters["SignName"]=$signName;}public function getOwnerId() {return $this->ownerId;}public function setOwnerId($ownerId) {$this->ownerId = $ownerId;$this->queryParameters["OwnerId"]=$ownerId;}public function getResourceOwnerId() {return $this->resourceOwnerId;}public function setResourceOwnerId($resourceOwnerId) {$this->resourceOwnerId = $resourceOwnerId;$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;}public function getTemplateCode() {return $this->templateCode;}public function setTemplateCode($templateCode) {$this->templateCode = $templateCode;$this->queryParameters["TemplateCode"]=$templateCode;}public function getPhoneNumbers() {return $this->phoneNumbers;}public function setPhoneNumbers($phoneNumbers) {$this->phoneNumbers = $phoneNumbers;$this->queryParameters["PhoneNumbers"]=$phoneNumbers;}public function getResourceOwnerAccount() {return $this->resourceOwnerAccount;}public function setResourceOwnerAccount($resourceOwnerAccount) {$this->resourceOwnerAccount = $resourceOwnerAccount;$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;}public function getTemplateParam() {return $this->templateParam;}public function setTemplateParam($templateParam) {$this->templateParam = $templateParam;$this->queryParameters["TemplateParam"]=$templateParam;}}

完成

运行试试吧

SMS短信服务DEMO打包

这是我自己弄的DEMO已经测试可用啦,只要修改S\SMS\aliyun-php-sdk-core目录下的smsDemo就可以使用啦!,其他的东西都不要改,要保证S文件目录下的完整性。

百度云

链接:/s/1pLkFgVp 密码:1fi1

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