原生PHP及thinkphp6接入阿里云短信

这篇具有很好参考价值的文章主要介绍了原生PHP及thinkphp6接入阿里云短信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 申请accesskey

原生PHP及thinkphp6接入阿里云短信
原生PHP及thinkphp6接入阿里云短信
原生PHP及thinkphp6接入阿里云短信

获取到Accesskey ID和Accesskey Secret保存下来,一会要用到

  1. 添加测试手机号,在接口测试能否正常发送

原生PHP及thinkphp6接入阿里云短信
  1. 下载阿里云短信sdk,使用composer下载,没有安装请先安装

原生PHP及thinkphp6接入阿里云短信

安装可以安装到任意文件夹下,后面代码写好后,直接复制到tp项目内就行,最新版本安装可能composer查找不到,所以我这里安装2.0.20

composer require alibabacloud/dysmsapi-20170525 2.0.20
  1. 安装完成后文件目录结构

原生PHP及thinkphp6接入阿里云短信

新建src文件夹,在里面创建一个类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));
  1. 演示调用(到这里我们的接口就已经接好了,现在调用Sample类的main方法就能发送短信了

原生调用:在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文件夹下

原生PHP及thinkphp6接入阿里云短信

(2)新建控制器Code

原生PHP及thinkphp6接入阿里云短信

Code.php代码

<?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方法传入手机号就调用成功了文章来源地址https://www.toymoban.com/news/detail-454778.html

到了这里,关于原生PHP及thinkphp6接入阿里云短信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云短信php-sdk对接

    早期用过阿里的大鱼,但现在看已经合并在了阿里云的短信服务 1)签名 2)短信模板 3)accessKeyId  4)accessKeySecret 国内消息-添加签名,添加完需要阿里云审核,大概2小时左右 国内消息-添加模板,添加完需要阿里云审核,大概2小时左右   右上角-账号-AccessKey管理 创建Acces

    2024年02月10日
    浏览(37)
  • 【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

    在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 下载后,查看目录结构,tp6的目录结构和tp5不同,默认是单应用(只有一个模块),如果需要多应用,需要开启多应用模式,后面文章再讲。 主要用到的目录有

    2024年02月05日
    浏览(56)
  • thinkphp6 入门教程合集(更新中) thinkphp6 入门(1)--安装、路由规则、多应用模式

    thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(3)--获取GET、POST请求的参数值_thinkphp获取get传值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(

    2024年02月09日
    浏览(58)
  • thinkphp6和thinkphp5有什么区别

    Thinkphp6.0完全开发手册 采用PHP7强类型(严格模式) tp5 环境要求PHP = 5.4.0 ThinkPHP6.0的环境要求 PHP = 7.2.5 6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。 支持更多的PSR规范 V6.0.10版本开始 支持 psr7 response 多应用支持 tp5默认使用多应用模式部署 tp6 安

    2024年02月06日
    浏览(54)
  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(49)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(43)
  • thinkphp6 动态开启debug模式

    1、找到config/app.php   2、自定义开启debug参数名称:示例参数为debug,可以根据自己项目情况自定义  3、必须同时设置App::debug 和 Env::set(\\\'APP_DEBUG\\\')

    2024年02月07日
    浏览(47)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(41)
  • Thinkphp6使用RabbitMQ消息队列

    Thinkphp6连接使用RabbitMQ(不止tp6,其他框架对应改下也一样),使用Docker部署RabbitMQ,在上一篇已经讲了-传送门-。 开始前先进入RabbitMQ的web管理界面,选择Queues菜单,点击底部的Add a new queue,新建一个test的队列。 安装thinkphp6框架 安装workerman扩展 安装rabbitmq扩展 生产者 在a

    2023年04月23日
    浏览(75)
  • ThinkPHP6.0 链式SQL语句

    查询单个数据 查询结果集(查询结果返回多条数据的意思) ​ 查询一个字段 ​ 查询一列 添加数据 修改数据 删除数据 根据主键删除 ​ 条件删除 ​ 查询数据 格式 where(\\\'字段名\\\',\\\'查询表达式\\\',\\\'查询条件\\\'); 模糊查询 区间查询 IN查询 Not Null Null 链式操作示例 field操作(输出选择

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包