对core文件夹中的autoreply.lib.php和curl.lib.php作标记注释

src
fanbo 2 months ago
parent be5b58387c
commit 8c107f4bbf

@ -1,14 +1,28 @@
<?php <?php
namespace LaneWeChat\Core; namespace LaneWeChat\Core;
/**
* 自动回复类
* 这个类用于处理微信公众号的自动回复功能。
*/
class AutoReply{ class AutoReply{
/**
* 获取自动回复规则
* 这个函数用于从微信公众号的API获取当前的自动回复规则。
*
* @param int $industryId1 主行业ID
* @param int $industryId2 副行业ID
* @return String 返回结果与字段说明请查看微信公众平台文档
* http://mp.weixin.qq.com/wiki/7/7b5789bb1262fb866d01b4b40b0efecb.html
*/
public static function getRole($industryId1, $industryId2){ public static function getRole($industryId1, $industryId2){
// 构建请求URL这里需要替换'access_token'为实际的access_token值
$queryUrl = 'https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info?access_token=' . AccessToken::getAccessToken(); $queryUrl = 'https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info?access_token=' . AccessToken::getAccessToken();
// 定义请求方法为POST
$queryAction = 'POST'; $queryAction = 'POST';
$template = array(); $template = array();// 初始化模板数组
$template['industry_id1'] = "$industryId1"; $template['industry_id1'] = "$industryId1"; // 设置主行业ID
$template['industry_id2'] = "$industryId2"; $template['industry_id2'] = "$industryId2";// 设置副行业ID
$template = json_encode($template); $template = json_encode($template);// 将模板数组转换为JSON格式
return Curl::callWebServer($queryUrl, $template, $queryAction); return Curl::callWebServer($queryUrl, $template, $queryAction);// 调用Curl类的方法发送请求并获取结果
} }
} }

@ -1,24 +1,40 @@
<?php <?php
namespace LaneWeChat\Core; namespace LaneWeChat\Core;
/**
* CURL工具类
* 用于简化HTTP请求的发送支持GET、POST等请求方法。
* Class Curl
*/
class Curl { class Curl {
private static $_ch; private static $_ch; // 存储CURL会话句柄
private static $_header; private static $_header;// 存储响应头部信息
private static $_body; private static $_body;// 存储响应主体信息
private static $_cookie = array(); private static $_cookie = array();// 存储Cookie信息
private static $_options = array(); private static $_options = array();// 存储额外的CURL选项
private static $_url = array (); private static $_url = array ();// 存储URL信息
private static $_referer = array (); private static $_referer = array ();// 存储Referer信息
/**
* 调用外部URL
* 根据提供的参数使用GET或POST方法发送请求并返回结果。
* @param string $queryUrl 请求的URL地址
* @param mixed $param 发送的数据,可以是数组或字符串
* @param string $method 请求方法,默认为'get'
* @param bool $is_json 是否期望返回JSON格式的数据
* @param bool $is_urlcode 是否对参数进行URL编码
* @return bool|mixed 请求失败返回false成功则返回解码后的数据或原始数据
*/
public static function callWebServer($queryUrl, $param='', $method='get', $is_json=true, $is_urlcode=true) { public static function callWebServer($queryUrl, $param='', $method='get', $is_json=true, $is_urlcode=true) {
if (empty($queryUrl)) { if (empty($queryUrl)) {
return false; return false;// 如果URL为空则直接返回false
} }
$method = strtolower($method); $method = strtolower($method);
$ret = ''; $ret = '';
$param = empty($param) ? array() : $param; $param = empty($param) ? array() : $param;
self::_init(); self::_init();
// 根据请求方法,调用对应的私有方法发送请求
if ($method == 'get') { if ($method == 'get') {
$ret = self::_httpGet($queryUrl, $param); $ret = self::_httpGet($queryUrl, $param);
} elseif($method == 'post') { } elseif($method == 'post') {
@ -26,27 +42,44 @@ class Curl {
} }
if(!empty($ret)){ if(!empty($ret)){
if($is_json){ if($is_json){
return json_decode($ret, true); return json_decode($ret, true);// 如果期望返回JSON格式的数据则对返回的数据进行JSON解码
}else{ }else{
return $ret; return $ret;// 否则返回原始数据
} }
} }
return true; return true;// 如果请求成功则返回true
} }
/**
* 初始化CURL会话
* 创建一个新的CURL会话并设置一些默认的CURL选项。
*/
private static function _init() { private static function _init() {
self::$_ch = curl_init(); self::$_ch = curl_init();
curl_setopt(self::$_ch, CURLOPT_HEADER, true); curl_setopt(self::$_ch, CURLOPT_HEADER, true);// 设置CURL选项启用响应头和返回传输
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, true); curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, true);
} } // 设置CURL选项使每次请求都是新的连接
// curl_setopt(self::$_ch, CURLOPT_FRESH_CONNECT, true);
/**
* 设置CURL选项
* 允许用户自定义CURL会话的选项。
* @param array $optArray 包含选项的关联数组,其中'key'是CURL选项的常量'value'是对应的值
*/
public static function setOption($optArray=array()) { public static function setOption($optArray=array()) {
foreach($optArray as $opt) { foreach($optArray as $opt) {
curl_setopt(self::$_ch, $opt['key'], $opt['value']); curl_setopt(self::$_ch, $opt['key'], $opt['value']);
} }
} }
/**
* 关闭CURL会话
* 释放CURL会话占用的资源。
* @return bool 操作成功返回true
*/
private static function _close() { private static function _close() {
if (is_resource(self::$_ch)) { if (is_resource(self::$_ch)) {
curl_close(self::$_ch); curl_close(self::$_ch);
@ -55,25 +88,48 @@ class Curl {
return true; return true;
} }
/**
* 发送GET请求
* 构建并发送一个HTTP GET请求并将响应返回。
* @param string $url 请求的URL地址
* @param array $query 请求参数数组
* @return string 请求的响应内容
*/
private static function _httpGet($url, $query=array()) { private static function _httpGet($url, $query=array()) {
if (!empty($query)) { if (!empty($query)) {
$url .= (strpos($url, '?') === false) ? '?' : '&'; $url .= (strpos($url, '?') === false) ? '?' : '&';
$url .= is_array($query) ? http_build_query($query) : $query; $url .= is_array($query) ? http_build_query($query) : $query; // 将数组参数转换为URL参数字符串
} }
// 设置CURL选项指定请求的URL
curl_setopt(self::$_ch, CURLOPT_URL, $url); curl_setopt(self::$_ch, CURLOPT_URL, $url);
// 设置CURL选项启用返回传输
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1);
// 设置CURL选项不返回响应头
curl_setopt(self::$_ch, CURLOPT_HEADER, 0); curl_setopt(self::$_ch, CURLOPT_HEADER, 0);
// 设置CURL选项不验证SSL证书
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// 设置CURL选项设置SSL版本
curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1); curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1);
// 执行CURL请求并获取响应
$ret = self::_execute(); $ret = self::_execute();
self::_close(); self::_close();// 关闭CURL会话
return $ret; return $ret;
} }
/**
* 发送POST请求
* 构建并发送一个HTTP POST请求并将响应返回。
* @param string $url 请求的URL地址
* @param array $query 请求参数数组
* @param bool $is_urlcode 是否对参数进行URL编码
* @return string 请求的响应内容
*/
private static function _httpPost($url, $query=array(), $is_urlcode=true) { private static function _httpPost($url, $query=array(), $is_urlcode=true) {
// 如果参数是数组则对每个参数进行URL编码
if (is_array($query)) { if (is_array($query)) {
foreach ($query as $key => $val) { foreach ($query as $key => $val) {
if($is_urlcode){ if($is_urlcode){
@ -91,33 +147,68 @@ class Curl {
} }
} }
} }
curl_setopt(self::$_ch, CURLOPT_URL, $url); // 设置CURL选项指定请求的URL
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt(self::$_ch, CURLOPT_URL, $url);
curl_setopt(self::$_ch, CURLOPT_HEADER, 0); // 设置CURL选项启用返回传输
curl_setopt(self::$_ch, CURLOPT_POST, true ); curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(self::$_ch, CURLOPT_POSTFIELDS, $query); // 设置CURL选项不返回响应头
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt(self::$_ch, CURLOPT_HEADER, 0);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 设置CURL选项启用POST请求
curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1); curl_setopt(self::$_ch, CURLOPT_POST, true );
// 设置CURL选项指定POST请求的数据
curl_setopt(self::$_ch, CURLOPT_POSTFIELDS, $query);
// 设置CURL选项不验证SSL证书
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// 设置CURL选项设置SSL版本
curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1);
$ret = self::_execute(); // 执行CURL请求并获取响应
self::_close(); $ret = self::_execute();
return $ret; // 关闭CURL会话
self::_close();
return $ret;
} }
/**
* 发送PUT请求
* 构建并发送一个HTTP PUT请求并将响应返回。
* @param string $url 请求的URL地址
* @param array $query 请求参数数组
* @return string 请求的响应内容
*/
private static function _put($url, $query = array()) { private static function _put($url, $query = array()) {
// 设置CURL选项指定请求方法为PUT
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'PUT');
return self::_httpPost($url, $query); return self::_httpPost($url, $query);
} }
/**
* 发送DELETE请求
* 构建并发送一个HTTP DELETE请求并将响应返回。
* @param string $url 请求的URL地址
* @param array $query 请求参数数组
* @return string 请求的响应内容
*/
private static function _delete($url, $query = array()) { private static function _delete($url, $query = array()) {
// 设置CURL选项指定请求方法为DELETE
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
return self::_httpPost($url, $query); return self::_httpPost($url, $query);
} }
/**
* 发送HEAD请求
* 构建并发送一个HTTP HEAD请求并将响应返回。
* @param string $url 请求的URL地址
* @param array $query 请求参数数组
* @return string 请求的响应内容
*/
private static function _head($url, $query = array()) { private static function _head($url, $query = array()) {
// 设置CURL选项指定请求方法为HEAD
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'HEAD');
return self::_httpPost($url, $query); return self::_httpPost($url, $query);
@ -133,5 +224,5 @@ class Curl {
return $response; return $response;
} }
} }
// 执行CURL请求
?> // 执行CURL会话

Loading…
Cancel
Save