作者 anyv
1 个管道 的构建 通过 耗费 0 秒

25

@@ -10,7 +10,69 @@ namespace app\portal\controller; @@ -10,7 +10,69 @@ namespace app\portal\controller;
10 10
11 use cmf\controller\WeChatBaseController; 11 use cmf\controller\WeChatBaseController;
12 use think\Db; 12 use think\Db;
13 -use extend\lib\php_Nsms_demo; 13 +
  14 +class sendAPI {
  15 + public $data; //发送数据
  16 + public $timeout = 30; //超时
  17 + private $apiUrl; //发送地址
  18 + private $username; //用户名
  19 + private $password; //密码
  20 +
  21 + function __construct($url, $username, $password) {
  22 + $this->apiUrl = $url;
  23 + $this->username = $username;
  24 + $this->password = $password;
  25 + }
  26 +
  27 + private function httpGet() {
  28 + $url = $this->apiUrl . '?' . http_build_query($this->data);
  29 + $curl = curl_init();
  30 + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  31 + curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout);
  32 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  33 + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  34 + curl_setopt($curl, CURLOPT_URL, $url);
  35 + $res = curl_exec($curl);
  36 + if (curl_errno($curl)) {
  37 + echo 'Error GET '.curl_error($curl);
  38 + }
  39 + curl_close($curl);
  40 + return $res;
  41 + }
  42 +
  43 + private function httpPost(){ // 模拟提交数据函数
  44 + $curl = curl_init(); // 启动一个CURL会话
  45 + curl_setopt($curl, CURLOPT_URL, $this->apiUrl); // 要访问的地址
  46 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
  47 + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
  48 + curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  49 + curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
  50 + curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->data)); // Post提交的数据包
  51 + curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout); // 设置超时限制防止死循环
  52 + curl_setopt($curl, CURLOPT_HEADER, false); // 显示返回的Header区域内容
  53 + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
  54 + $result = curl_exec($curl); // 执行操作
  55 + if (curl_errno($curl)) {
  56 + echo 'Error POST'.curl_error($curl);
  57 + }
  58 + curl_close($curl); // 关键CURL会话
  59 + return $result; // 返回数据
  60 + }
  61 +
  62 + /**
  63 + * @param $type|提交类型 POST/GET
  64 + * @param $isTranscoding|是否需要转 $isTranscoding 是否需要转utf-8 默认 false
  65 + * @return mixed
  66 + */
  67 + public function sendSMS($type, $isTranscoding = false) {
  68 + $this->data['content'] = $isTranscoding === true ? mb_convert_encoding($this->data['content'], "UTF-8") : $this->data['content'];
  69 + $this->data['username'] = $this->username;
  70 + $this->data['tkey'] = date('YmdHis');
  71 + $this->data['password'] = md5(md5($this->password) . $this->data['tkey']);
  72 + return $type == "POST" ? $this->httpPost() : $this->httpGet();
  73 + }
  74 +
  75 +}
14 76
15 class PersonalcenterController extends WeChatBaseController{ 77 class PersonalcenterController extends WeChatBaseController{
16 78