この記事では主に、Alibaba Cloud PHP SMS SMS サービスの確認コードを送信する方法を説明します。お役に立てれば幸いです。
SMS サービスをアクティブ化します
まず、この Web サイトにアクセスして、Alibaba Cloud の SMS テキスト メッセージ サービスをアクティブ化します: https://www.aliyun.com/product/sms?spm=5176.8142029.388261.295.vU5T5g
署名とテンプレートを作成します
使用するには SMS サービスを通常に使用するには、まず SMS サーバーで署名とテンプレートを作成し、レビューのために Alibaba Cloud に送信する必要があります。
署名を作成します
署名を作成するときは、署名の名前に注意してください。後は面倒ではありません。
署名名を覚えておいてください
ここで、作成した署名名を覚えておいてください。この名前は、後のコードで必要になります。
テンプレートを作成する
Alibaba Cloud には、テンプレートの作成方法も非常に簡単に記載されています。
テンプレートのコードを確認して覚えてください
コンソールに戻り、テンプレートが承認されると、0より大きい数字が表示されます。
この番号をクリックすると、テンプレート管理パネルに入り、テンプレートのコードが表示されるので、覚えておいてください。
KeyId と KeySecret を作成して覚えてください
コンソールに移動し、ユーザー名がある右上隅にマウスを置くと、accessKeySecret が表示されます。クリックすると、KeyId と KeySecret を作成できます。セキュリティ目的で RAM を使用する場合は、従業員にアクセス許可を割り当てるかどうかによって異なります。そうでない場合は、クリックして使用を続けます。
Alibaba Cloud SMS Server PHP-SDKをダウンロード
公式ダウンロードアドレス: https://help.aliyun.com/document_detail/55359.html?spm=5176.8195934.507901.12.b1ngGK
このチュートリアルSDKのダウンロードアドレスを使用します: http://pan.baidu.com/s/1bpF5B8z
キー: pult
PHP-SMSプロジェクトを作成します
コードファイルを作成します
コードファイルを作成してこれを配置しますファイルはダウンロードした SDK フォルダー内の api_sdk の aliyun-php-sdk-core ディレクトリに配置され、次のコードがコード ファイルに書き込まれます。
aliyun-php-sdk-coreディレクトリにはSMSテキストメッセージサービスのさまざまなモジュールが含まれているため、サービスを使用するにはここに配置する必要があります
<?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);//返回结果
Requsetに移動します
ダウンロードしたSDKフォルダのapi_sdkディレクトリにまだあります 次に、 Dysmsapi のフォルダーがあります。このフォルダーを開くと、「Put this Requests」というフォルダーが表示されます。フォルダーをコピーして aliyun-php-sdk-core に貼り付けます。正直に言うと、Alibaba Cloud がこのように SDK を個別にインストールする理由がわかりません。おそらく私の使い方が間違っているからです。それを理解できるマスターがいたら、アドバイスをお願いします。善良な人々が安全な生活を送れますように。
移動したら、RequestV20170525 ディレクトリにあるソース ファイル SendSmsRequest.php を開きます。最初の行のスペース名を無効にしてください。 つまり、この行の名前空間 DysmsapiReqestV20170525; 最終的な効果は次のとおりです
<?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
実行して試してください
関連する推奨事項:
JSはユーザー登録時にSMS認証コードとカウントダウン機能を取得するためのサンプルコード共有を実装します
以上がAlibaba Cloud PHP SMS SMS サービス確認コードの送信方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。