thinkphp6 调用阿里云短信服务发送验证码功能实现

最近做的项目需要用手机号注册账号,之前没有对接过发送短信,今天研究了一下, 写下一贴以做记录。

项目框架用thinkphp6,短信选择阿里云的短信服务。阿里云提供了两种方式安装sdk,这里选择用composer

官方文档:

SDK及DEMO下载

PHP-SDK快速开始

OpenAPI Explorer

1.使用composer安装sdk

我的开发环境是windows系统,已经安装过composer,本篇不再讨论如何安装。

composer require alibabacloud/sdk

等待安装好就行了:

安装成功

2. 新建send_sms方法

common.php里新建send_cms:

/**
 * 发送短信
 * @param $AccessKeyId
 * @param $Secret
 * @param $params
 * @return bool
 * @throws ClientException
 */
function send_sms ($AccessKeyId, $Secret, $params) {
    if (empty($params['phone'])) {
        return false;
    }
    // 创建客户端
    AlibabaCloud::accessKeyClient($AccessKeyId, $Secret)
        ->regionId('cn-hangzhou')
        ->asDefaultClient();
    try {
        $result = AlibabaCloud::rpc()
            ->product('Dysmsapi')
            ->version('2017-05-25')
            ->action('SendSms')
            ->host('dysmsapi.aliyuncs.com')
            ->options([
            	// 这里的参数可以在openAPI Explorer里面查看
                'query' => [
                    'RigionId'     => 'cn_hangzhou',
                    'PhoneNumbers' => $params['phone'],	// 输入的手机号
                    'SignName'     => $params['sign'],	// 签名信息
                    'TemplateCode' => $params['code'],	// 短信模板id
                    'TemplateParam' => $params['param']	// 可选,模板变量值,json格式
                ]
            ])
            ->request();
//        print_r($result->toArray());
        return $result->toArray();
    } catch (ClientException $e) {
        echo $e->getErrorMessage() . PHP_EOL;
    } catch (ServerException $e) {
        echo $e->getErrorMessage() . PHP_EOL;
    }
}

创建验证手机号码方法:

/**
 * 校验手机号码
 * @param $phone
 * @return bool
 */
function validatePhone ($phone) {
    if(!preg_match("/^1[34578]\d{9}$/", $phone)){
        return false;
    }
    return true;
}

3. 定义配置信息

config目录下新建alisms.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/11/25
 * Time: 10:23
 */

return [
	// 填入自己的设置项
    'AccessKeyId' => "",
    'Secret'      => "",
    'SignName'    => "",
    'TemplateCode'=> ""
];

4. 控制器中调用方法

 /**
     * 发送手机验证码
     * @return string
     * @throws \AlibabaCloud\Client\Exception\ClientException
     */
    public function registerBySms () {
        $phone  = input('post.phone');
        if (empty($phone) || !validatePhone($phone)) {
            return json_encode(['code'=>100,'msg'=>'请输入正确的手机号!']);
        }
        $sign   = Config::get('alisms.SignName');
        $code   = Config::get('alisms.TemplateCode');
        $ak     = Config::get('alisms.AccessKeyId');
        $sk     = Config::get('alisms.Secret');
        // 请求的参数
        $params = [
            'phone' => $phone,
            'sign'  => $sign,
            'code'  => $code,
            'param' => json_encode([
                'name' => "测试名称",
                'number' => 233
            ])
        ];
        $res = send_sms($ak, $sk, $params);
        if ($res['Code'] === 'OK') {
            return json_encode(['code'=>200,'msg'=>"验证码发送成功~"]);
        }
    }

就可以啦
在这里插入图片描述


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DSShop商城系统是一套完善的B2C(单用户商城)解决方案。系统pc端后台使用国内优秀开源框架THinkPHP,基于PHP+MySQL开发,采用B/S架构,wap端使用vue.js构造,依据6年电商经验打造出的一套开源的B2C电子商务系统。 DSShop商城系统技术评价 1、B/S架构 2、MVC编码架构,wap端采用vue.js框架 3、支持Compser 4、支持阿里云存储 5、支持负载均衡 6、支持Mysql读写分离  7、支持Redis/Memcached 8、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 9、支持电脑PC端、手机端(微端)、小程序 DSShop商城系统功能: 1、设置:帐号同步、上传设置、SEO设置、邮箱、支付方式、权限设置、快递公司、运单模板、地区管理、数据备份、操作日志 2、会员:会员管理、会员级别、经验值管理、会员通知、积分管理、预存款 3、商品:商品分类、品牌管理、商品管理、类型管理、规格管理、空间管理 4、交易:发货管理、实物订单、虚拟订单、退款管理、退货管理、虚拟订单退款、咨询管理、举报管理、评价管理、发货设置、售卖区域 5、网站:文章分类、文章管理、会员协议、页面导航、广告管理、友情链接、平台客服 6、营销:基本设置、分销设置、抢购管理、虚拟抢购设置、手机拼团管理、限时折扣、满即送、优惠套餐、代金券、活动管理、兑换礼品、平台充值卡 7、统计:概述及设置、行业分析、会员统计、销量分析、商品分析、市场分析、售后分析 8、公众号:公众号配置、微菜单、关键字回复、绑定列表、消息推送 DSShop商城系统 更新日志: V3.0.5 免费版更新 1. 新增 下单页面显示已优惠金额 2. 新增 订单列表退货退款加上链接 3. 新增 阿里云OSS 4. 新增 百度敏感词过滤 5. 更新 用户红包金额发放到充值卡余额 6. 修复 生成个人推广海报的时候 获取不到会员头像的问题 7. 修复 虚拟商品下单 选择代金券后商品总价不随代金券修改的问题 8. 优化 腾讯模块 9. 优化 拼团功能和美化拼团页面 10.优化 快递鸟物流跟踪 授权版更新 1. 新增 手机端积分中心 2. 新增 待付款订单可预存款支付 3. 新增 下单页面显示已优惠金额 4. 新增 订单删除功能 5. 修复 分类图片不显示的问题 6. 修复 商品咨询验证码点击无法更换的问题 7. 优化 拼团功能和美化拼团页面 8. 优化 抢购活动 9. 优化 购物车页面 10.美化 商品详情页面和首页 V3.0.4 免费版更新 1. 修复限时折扣活动结束后 不解除商品锁定的问题 2. 修复公众号绑定已有账号的问题 3. 修复会员统计-》价格分析按月查询报错 4. 优化首页楼层二级商品分类排序 5. 优化手机端积分记录描述和PC端不一致   授权版更新 1. 优化商品详情图片点击返回键默认选择问题 V3.0.3 免费版更新 1. 优化商家发货通知 2. 优化验证码 3. 修复限时折扣活动结束后 不解除商品锁定的问题 4. 修复商品详情要么 点击好评 中评 差评 不更新评论数据的问题 5. 修改只显示一条评论的问题 6. 修复平台后台可以添加重复名称的管理员的问题 7. 优化分销功能 8. 优化登录注册页面显示 9. 优化后台 赠品 推荐合租样式 10.修复后台无法恢复备份的问题 11.修复已退款成功的订单会出现在订单列表待评价页面 12.修复对比页面 对比商品的规格值不包含现有规格属性的时候出错的问题 13.优化订单打印页面印章图片位置   授权版更新 1. 优化手机端规格为空的提示 2. 修复手机端广告位不显示的问题 3. 修复APP上 苹果手机无法使用微登录的问题 4. 新增猜你喜欢功能 5. 手机端新增显示领取优惠券 6. 修复手机端文章列表不能翻页的问题 7. 新增手机端赠品 V3.0.2 免费版更新 1.新增上传大小限制 2.修复虚拟商品退款BUG 3.修复验证码刷新BUG问题 授权版更新 1.新增专题活动手机页 2.修复统一规格标签样式 3.修复详细地址地位不准确 4.新增路由懒加载 V3.0.1 Thinkphp由TP5.0.24升级为TP6.0.2!! V2.1.8 免费版更新 1. 修复使用百度地图接口不需要配置反向代理 2. 修复商品规格显示 3. 修复微博API接口调用不了类的问题 4. 修改H5地址引用 5. 修复限时折扣 商品列表页面  商品名称带有单引号会报错 不显示商品列表的问题 6. 规范语言包 7. 新增会员等级操作日志语言项 8. 添加商品详情页面 限时折扣活动没有设置标题的默认标题 9. 修复获取在售商品会获取到下架商品的BUG 10. 修改API接口 电子营业

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值