Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
swooleframe
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
石振业
swooleframe
Commits
5cce4f9d
Commit
5cce4f9d
authored
Oct 16, 2018
by
734642908@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改request返回内容
parent
8c9b6061
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
222 additions
and
4 deletions
+222
-4
README.md
README.md
+3
-2
common.php
extend/wechat/common.php
+218
-0
socketWork.php
swoole/socketWork.php
+1
-2
No files found.
README.md
View file @
5cce4f9d
...
@@ -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 文件
#请求协议:
#请求协议:
...
...
extend/wechat/common.php
0 → 100644
View file @
5cce4f9d
<?
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
swoole/socketWork.php
View file @
5cce4f9d
...
@@ -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'
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment