PHP 对接阿里云短信

Posted 大郎,起来喝药了

tags:

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

一、前期要准备工作:

1、tp5.1框架

2、composer

二、下载官方的SDK

1、关于asseccKeyId和asseccKeySecret、模板签名此处略过了。如果您只是要做开发接口,并不想申请的话可以使用官方提供的测试模板:

2、在tp5.1框架composer阿里云短信的依赖包、官方的API文档里面有教程!

官方有两个SDK的选择,选择升级版的SDK。至于没选这个原版的SDK是有原因的,我第一次选的就是原版的SDK,在执行“composer require alibabacloud/dysmsapi 1.8.1236” 时composer提示没有找到该包,至于是什么问题目前也没有找出,百度找到的问题就说是镜像的问题,可我切换到了其他镜像也无法成功下载下来,所以就直接选择了升级版(ps:可能是我太菜了吧!)

在composer的SDK时需要注意php版本!官方的环境要求和版本的说明是这样子的:

在tp5.1的根目录下按照顺序执行composer语句即可,执行完没有报错的话就是下载成功!

在根目录的extend文件夹下创建文件夹Alicode、然后在建立Sample.php文件

将下面的代码复制到Sample.php中

<?php
namespace Alicode;

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;

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[] $data
     * @return void
     */
    public static function main($data)
        extract($data);
        $client = self::createClient($accessKeyId,$accessKeySecret);
        $sendSmsRequest = new SendSmsRequest([
            "phoneNumbers" => $phone,
            "signName" => $signName,
            "templateCode" => $templateCode,
            "templateParam" => $templateParam,
        ]);
        $resp = $client->sendSms($sendSmsRequest);
    

到此步骤基本上是搭建成功,接下来就是调用:

public function phoneCode()

        //手机号

        $phone = $this->request->param('phone');

        //生成验证码

        $code = createCaptcha();

        // 阿里云规定必须json字符串

        $templateParam = json_decode(['code'=>$code]);

        $data = [

            'accessKeyId' => $accessKeyId,//accessKeyId

            'accessKeySecret' => $accessKeySecret,//accessKeySecret

            'phone' => $phone,//手机号

            'templateParam' => $templateParam,//验证码字符串

            'signName' => '阿里云短信测试',//签名名称

            'templateCode' => 'SMS_154950909',//模版Code

        ];

        $Sample = new \\Alicode\\Sample();

        $Sample->main($data);

    

以上是关于PHP 对接阿里云短信的主要内容,如果未能解决你的问题,请参考以下文章

crmeb标准版和PRO安装阿里云短信开发对接使用

.Net对接阿里云短信平台

对接阿里云短信接口

java对接阿里云短信服务器,附代码和截图

系统对接阿里云短信接口(Java开发实践)

低代码对接腾讯云-阿里云短信平台