阿里云升级版短信验证教程PHP篇

Posted 我因代码而疯狂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云升级版短信验证教程PHP篇相关的知识,希望对你有一定的参考价值。

1.准备工作

        如果不想申请签名和模板可以通过阿里云给出的api发送测试(https://dysms.console.aliyun.com/quickstart)来进行检测,绑定手机号码并且填写给出的签名和模板

 使用上面方法可以忽略以下2条

        1.申请签名

阿里云短信服务欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://dysms.console.aliyun.com/

                访问阿里云短信服务在左侧导航栏找到国内消息

                                                                   

                点击添加签名

             

         按照实际情况选择自用或者他用,我这里选的自用,按照要求填写相关信息,只要备案域名或者是上线app肯定能通过

 

 2.申请模板

        可以按照图上填写,也可以按照实际需要填写,关联签名就是第一步申请的签名(如果你已经申请通过点一下就会出现下拉选项),场景链接就是首页的链接。

3.获取AccessKey
阿里云 OpenAPI 开发者门户https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?spm=a2c4g.11186623.0.0.76dfde53ReGJAH¶ms=%7B%7D&sdkStyle=dara&lang=php         

        点击获取AK后跳转界面创建子账户(如果是自己测试,随便玩玩的话,不需要使用子用户避免麻烦,正式开发中建议使用子用户)

 

        访问方式下的Open API调用访问打钩,填写登录名称以及显示名称

         创建成功后记录下AccessKey ID和AccessKey Secret

        点击左侧导航栏用户

        右侧会显示刚刚创建的用户,点击添加权限

         搜索短信后显示2条权限,把两条权限全部进行添加

2.下载安装

        1.下载完整工程

阿里云 OpenAPI 开发者门户https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?spm=a2c4g.11186623.0.0.76dfde53ReGJAH¶ms=%7B%7D&sdkStyle=old&lang=PHP

 

 把下载好的压缩包解压到目录

2.安装SDK依赖

        Linux:进入解压的目录

         运行命令

composer require alibabacloud/dysmsapi-20170525 2.0.18

        运行结果成功

         这时候目录内就会多出一个文件夹和一个说明文件

3.修改测试

        打开src文件夹内的Sample.php文件修改

<?php

// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\\SDK\\Sample;

use AlibabaCloud\\SDK\\Dysmsapi\\V20170525\\Dysmsapi;
use AlibabaCloud\\Tea\\Tea;
use AlibabaCloud\\Tea\\Utils\\Utils;
use AlibabaCloud\\Tea\\Console\\Console;

use Darabonba\\OpenApi\\Models\\Config;
use AlibabaCloud\\SDK\\Dysmsapi\\V20170525\\Models\\SendSmsRequest;
use AlibabaCloud\\Tea\\Utils\\Utils\\RuntimeOptions;

class Sample 
    
        public static function createClient()
        $config = new Config([
            // 您的 AccessKey ID
            "accessKeyId" => '修改',// 修改
            // 您的 AccessKey Secret
            "accessKeySecret" => '修改'// 修改
        ]);
        return new Dysmsapi($config);
    

    /**
     * @param string[] $args
     * @return void
     */
    public static function main($args)
        $client = self::createClient("ACCESS_KEY_ID", "ACCESS_KEY_SECRET");
        $phone = $args['phone'];// 新增
        $templa = $args['templa'];// 新增
        $sendSmsRequest = new SendSmsRequest([
            "phoneNumbers" => $phone,// 修改
            "signName" => "签名",// 修改
            "templateCode" => "模板",// 修改
            "templateParam" => "\\"yzm\\":\\"$templa\\""// 修改
        ]);
        $runtime = new RuntimeOptions([]);
        $resp = $client->sendSmsWithOptions($sendSmsRequest, $runtime);
        Console::log(Utils::toJSONString(Tea::merge($resp))) ;
    

$path = __DIR__ . \\DIRECTORY_SEPARATOR . '..' . \\DIRECTORY_SEPARATOR . 'vendor' . \\DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) 
    require_once $path;

Sample::main($args);// 修改

自定义文件传输参数register.php(此文件和src目录同级)

$mot=$_POST['mot'];
if(empty($mot))echo "err1";exit;
$smsv =rand(100000,999999);
session_start();
$_SESSION["REGMOT"]=$mot;
$_SESSION["REGMOTYZ"]=$smsv;
$args = ['phone'=>$mot,'templa'=>$smsv];
include("./src/Sample.php");

前端用Ajax或者from表单向register.php提交下手机号即可

说明:注意没有使用测试签名和模板的短信必须要余量

​​​​​​​

备注:如果此教程有什么问题可以私聊联系我

以上是关于阿里云升级版短信验证教程PHP篇的主要内容,如果未能解决你的问题,请参考以下文章

阿里云升级版短信验证教程PHP篇

请问 哪有阿里云 短信服务 api 请求签名PHP教程

阿里云发送短信验证码php_SDK

阿里云发送短信验证码失败

阿里云短信服务验证码模板

阿里云实现发送短信(Java实例教程)