thinkphp3.2对接短信验证码平台代码

1.短信验证码平台

云之讯短信验证码平台
注册账号实名验证,余额充值,获取对接密钥等信息
添加短信模板并审核通过

2.发送验证码代码

<?php
namespace Home\Controller;
use Think\Controller;

//默认控制器
class SmsController extends Controller {
   
    //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;
    }
   
}

3.调用方法发送验证码

public function sendMessage(){
	$mobile = '13912345678';
	$code = '123456';
	$uid = '123456';
	$options['accountsid']='16997d8eeb6******530d82cb28b21';//填写在开发者控制台首页上的Account Sid
    $options['token']='73d5d709dd31******1d3dc04fe39e8';//填写在开发者控制台首页上的Auth Token
    $ucpass = new \Home\Controller\SmsController($options);//初始化 $options必填
    $appid = "e9d37263d4******540d26455e31e";	//应用的ID,可在开发者控制台内的短信产品下查看
    $templateid = "5**75";    //可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID
    $res = json_decode( $ucpass -> SendSms($appid,$templateid,$code ,$mobile,$uid));//$uid用户透传ID,随状态报告返回,自定义参数原样返回
    dump($res);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值