申請accesskey



獲取到Accesskey ID和Accesskey Secret保存下來,一會要用到
添加測試手機號,在接口測試能否正常發(fā)送

下載阿里云短信sdk,使用composer下載,沒有安裝請先安裝

安裝可以安裝到任意文件夾下,后面代碼寫好后,直接復制到tp項目內就行,最新版本安裝可能composer查找不到,所以我這里安裝2.0.20
composer require alibabacloud/dysmsapi-20170525 2.0.20
安裝完成后文件目錄結構

新建src文件夾,在里面創(chuàng)建一個類Sample,復制如下代碼
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* 使用AK&SK初始化賬號Client
* @param string $accessKeyId
* @param string $accessKeySecret
* @return Dysmsapi Client
*/
public static function createClient($accessKeyId, $accessKeySecret){
$config = new Config([
// 必填,您的 AccessKey ID
"accessKeyId" => $accessKeyId,
// 必填,您的 AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 訪問的域名
$config->endpoint = "dysmsapi.aliyuncs.com";
return new Dysmsapi($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($phone,$code){
// 工程代碼泄露可能會導致AccessKey泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考,建議使用更安全的 STS 方式,更多鑒權訪問方式請參見:https://help.aliyun.com/document_detail/311677.html
$client = self::createClient("填第一步的Accesskey ID", "填第一步的Accesskey Secret");
$sendSmsRequest = new SendSmsRequest([
"signName" => "阿里云短信測試",
"templateCode" => "SMS_154950909",
"phoneNumbers" => "$phone",
"templateParam" => "{\"code\":\"$code\"}"
]);
$runtime = new RuntimeOptions([]);
try {
// 復制代碼運行請自行打印 API 的返回值
$data=$client->sendSmsWithOptions($sendSmsRequest, $runtime);
echo json_encode($data);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 如有需要,請打印 error
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
//Sample::main(array_slice($argv, 1));
演示調用(到這里我們的接口就已經接好了,現(xiàn)在調用Sample類的main方法就能發(fā)送短信了)
原生調用:在src文件夾下新建一個index.php ,訪問index.php。傳入參數56789就調用成功了
<?php
include "Sample.php";
if($_POST['sms']==56789){
$phone=$_POST['phone'];
$code=rand(100000,999999);
$data=[
'phone'=>$phone,
'code'=>$code
];
\AlibabaCloud\SDK\Sample\Sample::main($phone,$code);
}
?>
thinkphp調用:
(一)將cmsPhp文件夾移到tp6項目public文件夾下

(2)新建控制器Code

Code.php代碼文章來源:http://www.zghlxwxcb.cn/news/detail-454778.html
<?php
namespace app\controller;
include "./cmsPhp/src/Sample.php";
use AlibabaCloud\SDK\Sample\Sample;
use think\facade\Db;
class Code
{
public function code2(){
if($_POST['sms']==56789){
$phone=$_POST['phone'];
$code=rand(100000,999999);
$date=Date('Y-m-d H:i:s');
$data=[
'phone'=>$phone,
'code'=>$code,
'date'=>$date
];
$suc=Db::table('code')->save($data);
Sample::main($phone,$code);
}
}
}
訪問code2方法傳入手機號就調用成功了文章來源地址http://www.zghlxwxcb.cn/news/detail-454778.html
到了這里,關于原生PHP及thinkphp6接入阿里云短信的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!