Commit 5cce4f9d authored by 734642908@qq.com's avatar 734642908@qq.com

修改request返回内容

parent 8c9b6061
...@@ -4,14 +4,15 @@ swoole框架websocket ...@@ -4,14 +4,15 @@ swoole框架websocket
##project 应用部署目录 ##project 应用部署目录
* ├─application 应用目录(可设置) * ├─application 应用目录(可设置)
* │ ├─socket 模块目录(可更改) * │ ├─socket 业务模块目录(可更改)
* │ │ ├─controller 控制器目录 * │ │ ├─controller 控制器目录
* │ │ ├─model 模型目录 * │ │ ├─model 模型目录
* │ ├─common.php 应用公共(函数)文件 * │ ├─common.php 应用公共(函数)文件
* │ ├─config.php 应用(公共)配置文件 * │ ├─config.php 应用(公共)配置文件
* ├─extend 扩展类库目录(可定义) * ├─extend 扩展类库目录(可定义)
* ├─swoole swoole框架目录(可更改)
* ├─server.php 服务启动文件 * ├─server.php 服务启动文件
* ├─swoole.log 运行log文件 * ├─swoole.log 运行log文件
* ├─README.md README 文件 * ├─README.md README 文件
#请求协议: #请求协议:
......
<?PHP
/**
* 微信接口公共函数类
*/
/**
* 普通模式 获取access_token
*/
function get_access_token($appid,$secret){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$data = https_request($url);
if($data){
$result = json_decode($data, true);// 默认false,为Object,若是True,为Array
return $result['access_token'];
}else{
return false;
}
}
//获取微信的access_token
/*
* 返回:
* $return = array(
* 'access_token'=>'token值',
* 'expires_in'=>'有效时间(秒)',
* 't'=>'有效时间'
* );
*/
function get_access_token2(){
$f = new zdeFile();
$info = $f->readAll(WEBPATH_DIR."cache/access_token.php");
if($info){//如果有读到数据,而且数据还有效,则直接返回
$info = json_decode($info,true);
if(isset($info['t']) && $info['t']>time()-60){
return $info;
}
}
//获取token url
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$GLOBALS["appid"]."&secret=".$GLOBALS["secret"];
//发送http请求得到json流
$res = https_request($url);
$req_data = json_decode($res, true);
if(!empty($req_data['access_token'])){
$req_data['t'] = time() + $req_data['expires_in'];
//保存数据
$f->write(WEBPATH_DIR."cache/access_token.php",json_encode($req_data),false);
return $req_data;
}else{
return false;
}
}
/**
* 授权模式 获取的token
*/
function get_sns_token($appid,$secret,$code){
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
//sys_log_write_content( $url ,"error_log","url_error");
$result = https_request($url);
if($result){
//sys_log_write_content( 'OPENID成功'.$result.__FILE__.__LINE__ ,"error_log","openid_ok");
$json_obj = json_decode($result,true);
return $json_obj;
}else{
sys_log_write_content( 'OPENID出错'.$result.__FILE__.__LINE__ ,"error_log","openid_error");
return false;
}
}
/**
* 获取已关注公众号的全部用户的openid
*/
function get_user_sub($token){
$data = https_request("https://api.weixin.qq.com/cgi-bin/user/get?access_token=$token");
if($data){
$result = json_decode($data, true);// 默认false,为Object,若是True,为Array
foreach( $result['data']['openid'] as $k=>$v) {
$user_sub[] = $v;
}
return $user_sub;
}else{
return false;
}
}
/**
* 获取已关注公众号的用户信息
*/
function get_sub_user($token,$openid){
$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid;
$data = https_request($url);
if($data){
$result = json_decode($data, true);// 默认false,为Object,若是True,为Array
return $result;
}else{
return false;
}
}
/**
* 获取授权登录的用户信息
*/
function get_sns_user($token,$openid){
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$token.'&openid='.$openid;
$data = https_request($url);
if($data){
sys_log_write_content( 'get_sns_user成功'.$data.__FILE__.__LINE__ ,"error_log","get_sns_user_ok");
$result = json_decode($data, true);// 默认false,为Object,若是True,为Array
return $result;
}else{
sys_log_write_content( 'get_sns_user出错'.$data.__FILE__.__LINE__ ,"error_log","get_sns_user_error");
return false;
}
}
/**
* 是否已关注了公众号
*/
function is_att_wx($appid,$secret,$openid){
$access_token = get_access_token($appid,$secret);
if(!$access_token){
return false;
}
$url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$access_token.'&openid='.$openid;
$result = https_request($url);
$data = json_decode($result,true);
if($data){
return $data;
//$data["subscribe"] = $data['subscribe']==0?0:1;
}else{
return false;
}
}
/**
* 获取米大师 sig 签名
*/
function get_offer_sig($obj,$secret,$key,$url){
foreach ($obj as $k => $v){
$arr[$k] = $v;
}
ksort($arr);
$string = format_biz_query_para_map($arr, false);
$string_sign = $string.'&org_loc='.$url.'&method=POST&secret='.$secret;
return $sig = hash_hmac('sha256',$string_sign,$key);//HMAC-SHA256签名
}
/**
* 获取米大师 mp_sig 签名
*/
function get_offer_mp_sig($obj,$session_key,$key,$url){
foreach ($obj as $k => $v){
$arr[$k] = $v;
}
ksort($arr);
$string = format_biz_query_para_map($arr, false);
$string_sign = $string.'&org_loc='.$url.'&method=POST&session_key='.$session_key;
return $sig = hash_hmac('sha256',$string_sign,$key);//HMAC-SHA256签名
}
/**
* 作用:格式化参数,签名过程需要使用
*/
function format_biz_query_para_map($paraMap, $urlencode){
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k => $v){
if($urlencode){
$v = urlencode($v);
}
//$buff .= strtolower($k) . "=" . $v . "&";
$buff .= $k . "=" . $v . "&";
}
$reqPar;
if (strlen($buff) > 0) {
$reqPar = substr($buff, 0, strlen($buff)-1);
}
return $reqPar;
}
/**
* 检验数据的真实性,并且获取解密后的明文.
* @param $encryptedData string 加密的用户数据
* @param $iv string 与用户数据一同返回的初始向量
* @param $sessionKey string 用户登陆后从微信返回的session_key
*
* @return 解密后的数据
*/
function wx_decryptData( $encryptedData, $iv,$sessionKey){
if (strlen($sessionKey) != 24) {
return false;
}
$aesKey=base64_decode($sessionKey);
if (strlen($iv) != 24) {
return false;
}
$aesIV=base64_decode($iv);
$aesCipher=base64_decode($encryptedData);
$result= openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
$dataObj=json_decode($result,true);
if( empty($dataObj) ){
return false;
}
if( $dataObj['watermark']['appid'] != $GLOBALS["appid"] ) {
return false;
}
return $dataObj;
}
\ No newline at end of file
...@@ -6,7 +6,6 @@ include_once("extend/mysql/Connection.php");//mysql方法 ...@@ -6,7 +6,6 @@ include_once("extend/mysql/Connection.php");//mysql方法
class socketWork { class socketWork {
public $server; public $server;
public $userTable = 'user_info';
public function __construct($server) { public function __construct($server) {
$this->server = $server; $this->server = $server;
...@@ -63,7 +62,7 @@ class socketWork { ...@@ -63,7 +62,7 @@ class socketWork {
} else { } else {
// $data = $this->server->db->select('sysid as id,name')->from('yl_goods')->where('sysid=1')->row(); // $data = $this->server->db->select('sysid as id,name')->from('yl_goods')->where('sysid=1')->row();
// $reData = json_encode(array('c'=>1,'msg'=>'success','d'=>array('list'=>$data))); // $reData = json_encode(array('c'=>1,'msg'=>'success','d'=>array('list'=>$data)));
$response->write($GLOBALS['redisDB']->get('hezijp001')); $response->write('websocket server respone');
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment