云之讯短信开发

一、在app\comom中建一个公共的(封装类) 

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/7/17 0017
 * Time: 下午 9:11
 * 云之讯类,
 * 用于发送短信
 */
namespace  app\common;
class Ucpaas{

    //API请求地址
    const BaseUrl = "https://open.ucpaas.com/ol/sms/";

    //开发者账号ID。由32个英文字母和阿拉伯数字组成的开发者账号唯一标识符。
    private $accountSid;

    //开发者账号TOKEN
    private $token;

    public function  __construct($options)
    {
        if (is_array($options) && !empty($options)) {
            $this->accountSid = isset($options[‘accountsid‘]) ? $options[‘accountsid‘] : ‘‘;
            $this->token = isset($options[‘token‘]) ? $options[‘token‘] : ‘‘;
        } else {
            throw new Exception("非法参数");
        }
    }

    private function getResult($url, $body = null, $method)
    {
        $data = $this->connection($url,$body,$method);
        if (isset($data) && !empty($data)) {
            $result = $data;
        } else {
            $result = ‘没有返回数据‘;
        }
        return $result;
    }

    /**
     * @param $url    请求链接
     * @param $body   post数据
     * @param $method post或get
     * @return mixed|string
     */

    private function connection($url, $body,$method)
    {
        if (function_exists("curl_init")) {
            $header = array(
                ‘Accept:application/json‘,
                ‘Content-Type:application/json;charset=utf-8‘,
            );
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
            if($method == ‘post‘){
                curl_setopt($ch,CURLOPT_POST,1);
                curl_setopt($ch,CURLOPT_POSTFIELDS,$body);
            }
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            $result = curl_exec($ch);
            curl_close($ch);
        } else {
            $opts = array();
            $opts[‘http‘] = array();
            $headers = array(
                "method" => strtoupper($method),
            );
            $headers[]= ‘Accept:application/json‘;
            $headers[‘header‘] = array();
            $headers[‘header‘][]= ‘Content-Type:application/json;charset=utf-8‘;

            if(!empty($body)) {
                $headers[‘header‘][]= ‘Content-Length:‘.strlen($body);
                $headers[‘content‘]= $body;
            }

            $opts[‘http‘] = $headers;
            $result = file_get_contents($url, false, stream_context_create($opts));
        }
        return $result;
    }

    /**
    单条发送短信的function,适用于注册/找回密码/认证/操作提醒等单个用户单条短信的发送场景
     * @param $appid        应用ID
     * @param $mobile       接收短信的手机号码
     * @param $templateid   短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
     * @param null $param   变量参数,多个参数使用英文逗号隔开(如:param=“a,b,c”)
     * @param $uid			用于贵司标识短信的参数,按需选填。
     * @return mixed|string
     * @throws Exception
     */
    public function SendSms($appid,$templateid,$param=null,$mobile,$uid){
        $url = self::BaseUrl . ‘sendsms‘;
        $body_json = array(
            ‘sid‘=>$this->accountSid,
            ‘token‘=>$this->token,
            ‘appid‘=>$appid,
            ‘templateid‘=>$templateid,
            ‘param‘=>$param,
            ‘mobile‘=>$mobile,
            ‘uid‘=>$uid,
        );
        $body = json_encode($body_json);
        $data = $this->getResult($url, $body,‘post‘);
        return $data;
    }

    /**
    群发送短信的function,适用于运营/告警/批量通知等多用户的发送场景
     * @param $appid        应用ID
     * @param $mobileList   接收短信的手机号码,多个号码将用英文逗号隔开,如“18088888888,15055555555,13100000000”
     * @param $templateid   短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
     * @param null $param   变量参数,多个参数使用英文逗号隔开(如:param=“a,b,c”)
     * @param $uid			用于贵司标识短信的参数,按需选填。
     * @return mixed|string
     * @throws Exception
     */
    public function SendSms_Batch($appid,$templateid,$param=null,$mobileList,$uid){
        $url = self::BaseUrl . ‘sendsms_batch‘;
        $body_json = array(
            ‘sid‘=>$this->accountSid,
            ‘token‘=>$this->token,
            ‘appid‘=>$appid,
            ‘templateid‘=>$templateid,
            ‘param‘=>$param,
            ‘mobile‘=>$mobileList,
            ‘uid‘=>$uid,
        );
        $body = json_encode($body_json);
        $data = $this->getResult($url, $body,‘post‘);
        return $data;
    }
}

二、在模块中的model中建一个类(应用类)

  

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/7/17 0017
 * Time: 下午 9:17
 * 短信实现类
 */
namespace app\index\model;

use  think\Model;
use app\common\Ucpaas;

class  ServerSid extends Model
{
    private static $options = array();
    public static $ucpass = null;
    public static $appid = null;
    public static $templateid = null;

    public function __construct()
    {
        //初始化必填
        //填写在开发者控制台首页上的Account Sid
        self::$options[‘accountsid‘] = ‘0a95667b776d7bbxxxxxxxxxxxxxx‘;
        //填写在开发者控制台首页上的Auth Token
        self::$options[‘token‘] = ‘de5c9fb5f0xxxxxxxxxxxxx‘;
        //应用的ID,可在开发者控制台内的短信产品下查看
        self::$appid = "76a98d7fxxxxxxxxxxxxxxxxxxxxxxx";
        //可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
        self::$ucpass = new Ucpaas(self::$options);
    }

    /**
     * 单条短信发送
     * @param $templateid 短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
     * @param $param //多个参数使用英文逗号隔开(如:param=“a,b,c”),如为参数则留空
     * @param $mobile //发送到的手机号码
     * @param $uid
     */
    public function one_sendSms($templateid="351494", $param, $mobile, $uid)
    {
        self::$ucpass->SendSms(self::$appid, $templateid, $param, $mobile, $uid);

    }
    /**
    群发送短信的function,适用于运营/告警/批量通知等多用户的发送场景
     *
     * @param $mobileList   接收短信的手机号码,多个号码将用英文逗号隔开,如“18088888888,15055555555,13100000000”
     * @param $templateid   短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
     * @param null $param   变量参数,多个参数使用英文逗号隔开(如:param=“a,b,c”)
     * @param $uid			用于贵司标识短信的参数,按需选填。
     * @return mixed|string
     * @throws Exception
     */

    public  function  array_Batch($templateid,$param=null,$mobileList,$uid){
        $url = self::BaseUrl . ‘sendsms_batch‘;
        $body_json = array(
            ‘sid‘=>$this->accountSid,
            ‘token‘=>$this->token,
            ‘appid‘=>self::$appid,
            ‘templateid‘=> $templateid,
            ‘param‘=>$param,
            ‘mobile‘=>$mobileList,
            ‘uid‘=>$uid,
        );
        $body = json_encode($body_json);
        $data = $this->getResult($url, $body,‘post‘);
        return $data;

    }
}

三、调用应用类中的方法:

 public  function  text(){
        $templateid=351494; //短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
        $param = "351494"; //多个参数使用英文逗号隔开(如:param=“a,b,c”),如为参数则留空
        $mobile = 15600000000;
        $uid = "";
        $server=new ServerSid();
        $server->one_sendSms($param,$mobile,$uid);
        echo"到了";
        exit;

    }

  

原文地址:https://www.cnblogs.com/li7671269/p/9326361.html

时间: 2024-11-05 20:36:25

云之讯短信开发的相关文章

路飞项目搭建3 TODO注释, 自定义模态框, vue-cookies操作浏览器cookies, 腾讯云短信开发, 代码(登录注册页面,多方式登录,手机是否存在验证接口,腾讯短信开发)

TODO注释 """ 作用:todo是一种特殊的注释,书写就是 # TODO 注释内容,可以在TODO控制台面板快速定位注释位置 """ 自定义模态框 componses/Login.vue <template> <div class="login"> <span @click="close_login">x</span> </div> </

JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信

腾讯云应用列表 传送门 使用Gradle编译项目 传送门 SDK&API:qcloudsms_java 传送门 package com.Gary.sms.controller; import java.io.IOException; import org.json.JSONException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.ann

百度api短信开发

公司原来有一个短信发送的功能,是调用第三方的,但是很不稳定,时不时就收不到短信,但是钱已经扣了.对于这样的事,谁都忍受不了的.于是想找一个稳定短信发送平台,第一想到的是阿里云,百度.在这两个平台上公司都有认证了,于是省了很多事.现在开始吧. 找到百度开放云登录窗口,然后登录,进入控制中心,然后在产品服务中找到,如下图 简单消息服务SMS.前提是账号已经认证了. 点击它跳转到 首先是短信签名申请,这个可以根据他们提供的文档一一操作,盖章,拍照上传,等待他们审核(大概两个星期吧).审核成功,然后是短

JavaWeb-SpringBoot_使用MySQL管理用户登录注册+接入腾讯短信SDK

使用Gradle编译项目 传送门 项目已托管到Github上 传送门 JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信 传送门 用户注册 用户并非一定要输入正确的手机验证码去激活当前信息,用户提交注册表单后不会去数据库进行重复校验,只有当用户正确输入手机验证码,则该用户state状态在数据库中设置为1,而用户错误错误手机验证码或未输入手机验证码后,则该用户state状态在数据库中设置为0[手机验证码为随机四位整数] 用户登录 用户点击登录按钮时,用户名账号密码输入错误则用户无

短信开发系列(三):短信接收引擎

短信开发系列目录: 短信开发系列(一):GSM手机短信开发初探短信开发系列(二):GSM手机短信开发之短信解码短信开发系列(三):短信接收引擎 之前写了短信接收处理的一些内容,今年事情实在太多了,就停顿了这么一大段的时间.接下来会继续完成相关的内容. 今天先写用之前写的短信类库的一个应用,短信接收引擎.可以用在处理一些短信的提醒:作为前面两篇文章的一个实战运用,可以作为一个多线程.委托和事件.串口等方面知识的一个综合运用. 先来分析一下整个程序的流程: - 启动线程 - 定时运行线程主函数 -

PHP接入阿里云市场 阿里短信服务DEMO

阿里短信服务:支持三大运营商短信.智能管道等优质能力,产品特点:3秒可达.99%到达率.超低资费. 使用阿里短信服务步骤: 1.购买服务 到https://market.aliyun.com/products/57002003/cmapi011900.html#item-1购买短信服务 2.设置签名档 3.创建短信模板 4.根据demo接入阿里短信服务 请求参数: 名称 类型 是否必须 描述 ParamString STRING 可选 模板变量,其中数字必须转换为字符串,个人用户每个变量长度必须

腾讯短信服务精简版(PHP )

短信视乎已经被慢慢淡出平常的交流工具队列,但始终抹不去它的存在,短信验证码视乎从未被取代,此外在重要的信息通知的地位也是不可取的的.所以了解短信的使用是开发中很有必要的一环. 腾讯云的短信服务提供有100条内免费,所以方便开发测试. 申请短信服务并建立模板 https://console.cloud.tencent.com/sms 查看SDK https://cloud.tencent.com/document/product/382/13410 提供了多种语言的SDK PHP短信模板精简 实现

android拓展之使用bmob后端云来实现短信验证码

bmob后端云,这个就不用我说了吧,它在我们安卓开发的过程当中非常重要.具体有哪些服务可以bmob的官网来查询 关于怎么实现短信验证码的方式,其实在bmob的后端云里面已经详细的介绍了的.我在这里最主要的是分享一下经验 1.要想实现短信验证码,必须在bmob的官网上下载短信验证码的sdk,然后导入工程 2.使用SDK,这个sdk可以单独使用,直接初始化就可以使用.那什么是单独使用呢?就是直接初始化这个SDK就可以使用,而不用初始化Bmob A.怎么初始化bmob? 通过调用Bmob.initia

1、背景介绍及移动云MAS平台 --短信平台

目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和宝贵意见. 项目背景: 起因是单位新政策,领导要求能够通过短信回复操控工作流审批.于是年初我接到了单位这个项目,开发一个短信平台. 之前单位有过一个短信平台,二零零几年开发的了,具有一些问题,首先是无法发送长短信,这个是由于移动的组件所限,只能发送200字以内的短信,而且会被拆分每70字发送一条:其