廢話不多說,直接干貨:
第一步:下載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; }
手機號和驗證碼必須是字符串!!! 手機號和驗證碼必須是字符串!!! 手機號和驗證碼必須是字符串!!!
沒了,是不是比把大象裝冰箱還簡單。