This article mainly shares with you how to send verification codes for Alibaba Cloud PHP SMS SMS service. I hope it can help you.
Open SMS service
First go to this website to activate Alibaba Cloud’s SMS text message service: https://www.aliyun.com/product/sms?spm=5176.8142029.388261.295.vU5T5g
Create signatures and templates
To use the SMS server, you need to create a signature and template first and submit them to Alibaba Cloud for review before you can use the SMS service normally.
Create signature
When creating a signature, pay attention to the name of the signature, and the rest will not be cumbersome.
Remember the signature name
Now please remember the signature name you created, you will need to use it in the code later.
Create a template
Creating a template is also very simple. Alibaba Cloud has clearly written how to fill it in.
Check and remember the template CODE
Return to your console. When your template is approved, a number greater than 0 will appear.
Click this number and you will enter the template management panel and see your template CODE. Please remember it.
Create and remember KeyId and KeySecret
Go to the console and put your mouse in the upper right corner of your user There will be an accessKeySecret in the name, click it and you can create KeyId and KeySecret. If it reminds you to use RAM for security or something, you can see if you want to assign permissions to your employees. If so, use RAM, otherwise just click on it. Just keep using it.
Download Alibaba Cloud SMS Server PHP-SDK
Official download address: https: //help.aliyun.com/document_detail/55359.html?spm=5176.8195934.507901.12.b1ngGK
This tutorial uses the SDK download address: http://pan.baidu.com/s/1bpF5B8z
Key: pult
Create PHP-SMS project
Create code file
Create your code file and put this file In the api_sdk aliyun-php-sdk-core directory in the SDK folder you just downloaded, write the following code into the code file.
aliyun-php-sdk-core directory contains various modules of SMS text message service, so it must be placed here to use the service
<?php include 'Config.php'; include_once 'Request/V20170525/SendSmsRequest.php'; include_once 'Request/V20170525/QuerySendDetailsRequest.php'; $accessKeyId = "LTAIvAaNs61JeBiN"; //阿里云KeyId $accessKeySecret = "Y3H7durYJ6GIqmJJrsdbJwPi6E8O8M"; //阿里云KeySecret //短信API产品名 $product = "Dysmsapi"; //照写就行了 //短信API产品域名 $domain = "dysmsapi.aliyuncs.com"; //照着写就行了 //暂时不支持多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);//返回结果
Move into Requset
Still in the api_sdk directory in the downloaded SDK folder, there is a folder for Dysmsapi. When you open this folder, you will see a folder called Request. Put this Request. Copy and paste the folder into aliyun-php-sdk-core. To be honest, I can't figure out why Alibaba Cloud installs the SDK separately like this. Maybe it's because I'm using it in a wrong way. If there is a master who can figure it out, please give me some advice. May good people live a safe life.
After moving in, open the source file SendSmsRequest.php in the Request\V20170525 directory. Please disable the space naming in the first line. That is, this line namespace Dysmsapi\Reqest\V20170525;The final effect is as follows
<?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 * * http://www.apache.org/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\V20170525;//就是屏蔽这一行代码!!!! class SendSmsRequest extends \RpcAcsRequest { function __construct() { parent::__construct("Dysmsapi", "2017-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; } }
Complete
Run it and try it
Related recommendations:
How to use PHP to implement SMS verification code sending
JS to implement SMS verification code
The above is the detailed content of How to send Alibaba Cloud PHP SMS SMS service verification code. For more information, please follow other related articles on the PHP Chinese website!