阿里雲發送短信驗證碼


廢話不多說,直接干貨:

第一步:下載php sdk 地址:https://help.aliyun.com/document_detail/32381.html?spm=5176.doc51929.6.685.18WOhG

結構如圖:

也不知道能用多少;反正都留着。

第二步:打開https://help.aliyun.com/document_detail/51929.html?spm=5176.doc32381.6.688.sVNnNG

仔細閱讀本頁面,設計具體的參數獲取方法和位置。

最后有實例代碼,一個發送類: 重名為:sentmsg.php

<?php
require_once(dirname(dirname(dirname(__FILE__))).'/mns-autoloader.php'); //加載文件路徑修改
use AliyunMNS\Client;
use AliyunMNS\Topic;
use AliyunMNS\Constants;
use AliyunMNS\Model\MailAttributes;
use AliyunMNS\Model\SmsAttributes;
use AliyunMNS\Model\BatchSmsAttributes;
use AliyunMNS\Model\MessageAttributes;
use AliyunMNS\Exception\MnsException;
use AliyunMNS\Requests\PublishMessageRequest;
class PublishBatchSMSMessageDemo
{
  //放倆參數
    public function run($mobile,$code)
    {
        /**
         * Step 1. 初始化Client
         */
        $this->endPoint = "YourMNSEndpoint"; // eg. http://1234567890123456.mns.cn-shenzhen.aliyuncs.com  按着樣式寫 可以找到的
        $this->accessId = "YourAccessId"; //重要參數
        $this->accessKey = "YourAccessKey";//重要參數
        $this->client = new Client($this->endPoint, $this->accessId, $this->accessKey);
        /**
         * Step 2. 獲取主題引用
         */
        $topicName = "YourTopicName";//主題名 類似 sms.topic-cn-xxxx
        $topic = $this->client->getTopicRef($topicName);
        /**
         * Step 3. 生成SMS消息屬性
         */
        // 3.1 設置發送短信的簽名(SMSSignName)和模板(SMSTemplateCode)
        $batchSmsAttributes = new BatchSmsAttributes("YourSMSSignName", "YourSMSTemplateCode");//YourSMSSignName 多為漢字。YourSMSTemplateCode 格式:SMS_xxxxxxxxxx 
        // 3.2 (如果在短信模板中定義了參數)指定短信模板中對應參數的值
     $batchSmsAttributes->addReceiver($mobile, array("code" => $code));
        $messageAttributes = new MessageAttributes(array($batchSmsAttributes));
        /**
         * Step 4. 設置SMS消息體(必須)
         *
         * 注:目前暫時不支持消息內容為空,需要指定消息內容,不為空即可。
         */
         $messageBody = "smsmessage";
        /**
         * Step 5. 發布SMS消息
         *//這呢是返回的結果 一大串  可以修改 看看返回結果明白了
        $request = new PublishMessageRequest($messageBody, $messageAttributes);
        try
        {
            $res = $topic->publishMessage($request);
            echo $res->isSucceed();
            echo "\n";
            echo $res->getMessageId();
            echo "\n";
        }
        catch (MnsException $e)
        {
            echo $e;
            echo "\n";
        }
    }
}
$instance = new PublishBatchSMSMessageDemo();
$instance->run();
?>

 


 以上代碼中注釋很必要。

第三步:寫一個php文件把上面的類引入

require_once 'sentmsg.php';
$mobile = (string)$_POST['mobile'];
$code = (string)rand(100000,999999);
$time = date("Y-m-d H:i:s");
$instance = new PublishBatchSMSMessageDemo();
$res = $instance->run($mobile,$code);
if ($res = true) {
	echo $code.','.$time;
}	

 手機號和驗證碼必須是字符串!!! 手機號和驗證碼必須是字符串!!! 手機號和驗證碼必須是字符串!!!

沒了,是不是比把大象裝冰箱還簡單。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM