IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> PHP通过移动云MAS发送短信 -> 正文阅读

[开发测试]PHP通过移动云MAS发送短信

PHP通过移动云MAS发送模板短信

官方文档好多都不准确,有问题问客服!有问题问客服!有问题问客服!重要的事情说三遍!!!客服可以解决大部分问题

1.封装Mas Class

<?php


namespace common\sms;


class Mas
{
    private $ecName = '***';
    private $apId = '***';
    private $secretKey = '***';
    private $sign = '***';
    private $addSerial = '';
    private $norSmsUrl = 'https://112.35.10.201:28888/sms/tmpsubmit';

    /**
     * 根据MAS的接口规范,需要装配一组mac字符串做验证
     * @param string $mobiles 逗号分隔得电话号码字符串
     * @param $params
     * @return string
     */
    private function makeMacString($mobiles, $params, $templateId)
    {
        $macstr = $this->ecName . $this->apId . $this->secretKey . $templateId . $mobiles . $params . $this->sign . $this->addSerial;
        return strtolower(md5($macstr));
    }

    /**
     * 内置一个curl定制的发送请求的函数,专门配置
     * @param string $data 发送的数据
     * @return string 请求结果信息
     */
    private function post($url, $data)
    {
        if (!$url) {
            return false;
        }
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        $res = curl_exec($curl);
        curl_close($curl);
        return $res;
    }

    public function sendTplSms($phoneList, $params, $templateId)
    {
        $mobiles = implode(',', $phoneList);
        $mobiles = ltrim(rtrim($mobiles, ','),',');
        $macstr = $this->makeMacString($mobiles, '["' . $params . '"]', $templateId);
        $data = [
            'ecName' => $this->ecName,
            'apId' => $this->apId,
            'secretKey' => $this->secretKey,
            'templateId' => $templateId,
            'mobiles' => $mobiles,
            'params' => [(string) $params],
            'sign'=> $this->sign,
            'mac' => $macstr,
            'addSerial' => $this->addSerial
        ];
        $dataContent = base64_encode(json_encode($data));
        $res = json_decode($this->post($this->norSmsUrl, $dataContent));
        return $res;
    }
}

2.调用封装好的类和方法

$sms_info = new Mas();
$mobile = [***,***];//实际开发中接收短信的手机号组成的数组
$captcha_code = "123456";//实际开发中对应的模板短信参数(这里举例只写了一个,可以有多个,自行添加)
$templateId = "***";//实际开发中对应的模板短信ID
$object = $sms_info->sendTplSms($mobile, $captcha_code, $templateId);//发送短信,得到返回值
$result = json_decode(json_encode($object),true);
if($result["success"]){
    return ["code" =>0, "message" => "验证码发送成功,5分钟后过期!", "captcha" => $captcha_code];
}else{
    return ["code" =>1, "message" => "验证码发送失败!"];
}

最后附上一张模板短信mac格式图
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:22:01  更:2022-03-21 21:23:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:42:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码