今天测试云之讯api 云之讯官网提供源码只需要修改就好
我的是放入tp5路径如下:前端代码脑补 只有一个input和按钮
直接上代码
index.php
<?php
namespace app\admin\controller;
use think\Db;
use think\Loader;
use think\Controller;
use app\admin\controller\PhoneSend;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
public function set(){
// var_dump($_POST);
$obj = new PhoneSend();
$obj->text();
}
}
PhoneSend.php
<?php
namespace app\admin\controller;
use app\admin\controller\Ucpass;
class PhoneSend{
public function text(){
//初始化必填
//填写在开发者控制台首页上的Account Sid
$options['accountsid']='0ac771342e5d4a88985e72777b940287';
//填写在开发者控制台首页上的Auth Token
$options['token']='e1cea586fcfb361167de2264d8693f56';
//初始化 $options必填
/*随机生成6位验证码 复杂方式*/
srand((double)microtime()*1000000);//create a random number feed.
$authnum;
$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list=explode(",",$ychar);
for($i=0;$i<6;$i++){
$randnum=rand(0,35); // 10+26;
$authnum[$i]=$list[$randnum];
}
$authnum = implode('', $authnum);
// 简单的验证 6位纯数字
// $authnum = rand(100000,999999);
$ucpass = new \app\admin\controller\Ucpaas($options);
$appid = "88d1b0f941f942c9a45fc354653af2ae"; //填写自己的
$mobile = $_POST['mobile'];
$templateid = "313343";
$param=$authnum;
$uid='';
$arr=$ucpass->SendSms($appid,$templateid,$param,$mobile,$uid);
/*if (substr($arr,21,6) == 000000) {
//如果成功就,这里只是测试样式,可根据自己的需求进行调节
echo "短信验证码已发送成功,请注意查收短信";
}else{
//如果不成功
echo "短信验证码发送失败,请联系客服";
}*/
}
}
Ucpass.php
<?php
namespace app\admin\controller;
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;
}
}