123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Kevin
- * Date: 2018/6/6
- * Time: 16:32
- */
- namespace yzx;
- 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;
- }
- }
|