Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
weixin_authorize
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ikcrm_common
weixin_authorize
Commits
90626d36
Commit
90626d36
authored
Apr 05, 2014
by
lanrion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added error_handler
parent
0890bd17
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
139 additions
and
5 deletions
+139
-5
lib/weixin_authorize.rb
+13
-2
lib/weixin_authorize/adapter/storage.rb
+3
-3
lib/weixin_authorize/error_handler.rb
+2
-0
lib/weixin_authorize/error_handler/global_code.rb
+89
-0
lib/weixin_authorize/error_handler/result_handler.rb
+32
-0
No files found.
lib/weixin_authorize.rb
View file @
90626d36
require
"rest-client"
require
"multi_json"
require
"weixin_authorize/config"
require
"weixin_authorize/error_handler"
require
"weixin_authorize/adapter"
require
"weixin_authorize/api"
require
"weixin_authorize/client"
module
WeixinAuthorize
# autoload :Message, "wechat/message"
OK_MSG
=
"ok"
.
freeze
OK_CODE
=
0
.
freeze
class
<<
self
def
http_get_without_token
(
url
,
headers
=
{},
endpoint
=
"plain"
)
get_api_url
=
endpoint_url
(
endpoint
,
url
)
load_json
(
RestClient
.
get
(
get_api_url
,
:params
=>
headers
))
result
=
load_json
(
RestClient
.
get
(
get_api_url
,
:params
=>
headers
))
# binding.pry
result
end
def
http_post_without_token
(
url
,
payload
=
{},
headers
=
{},
endpoint
=
"plain"
)
...
...
@@ -22,7 +30,10 @@ module WeixinAuthorize
# return hash
def
load_json
(
string
)
JSON
.
parse
(
string
)
result_hash
=
JSON
.
parse
(
string
)
code
=
result_hash
.
delete
(
"errcode"
)
en_msg
=
result_hash
.
delete
(
"errmsg"
)
ResultHandler
.
new
(
code
,
en_msg
,
result_hash
)
end
def
endpoint_url
(
endpoint
,
url
)
...
...
lib/weixin_authorize/adapter/storage.rb
View file @
90626d36
...
...
@@ -19,8 +19,8 @@ module WeixinAuthorize
def
valid?
valid_result
=
http_get_access_token
if
valid_result
.
keys
.
include?
(
"access_token"
)
set_access_token_for_client
(
valid_result
)
if
valid_result
.
code
==
OK_CODE
set_access_token_for_client
(
valid_result
.
result
)
return
true
end
false
...
...
@@ -40,7 +40,7 @@ module WeixinAuthorize
end
def
set_access_token_for_client
(
access_token_infos
=
nil
)
token_infos
=
access_token_infos
||
http_get_access_token
token_infos
=
access_token_infos
||
http_get_access_token
.
result
client
.
access_token
=
token_infos
[
"access_token"
]
client
.
expired_at
=
Time
.
now
.
to_i
+
token_infos
[
"expires_in"
].
to_i
end
...
...
lib/weixin_authorize/error_handler.rb
0 → 100644
View file @
90626d36
require
"weixin_authorize/error_handler/global_code.rb"
require
"weixin_authorize/error_handler/result_handler"
lib/weixin_authorize/error_handler/global_code.rb
0 → 100644
View file @
90626d36
# encoding: utf-8
module
WeixinAuthorize
GLOBAL_CODES
=
{
"-1"
=>
"系统繁忙"
,
"0"
=>
"请求成功"
,
"40001"
=>
"获取access_token时AppSecret错误,或者access_token无效"
,
"40002"
=>
"不合法的凭证类型"
,
"40003"
=>
"不合法的OpenID"
,
"40004"
=>
"不合法的媒体文件类型"
,
"40005"
=>
"不合法的文件类型"
,
"40006"
=>
"不合法的文件大小"
,
"40007"
=>
"不合法的媒体文件id"
,
"40008"
=>
"不合法的消息类型"
,
"40009"
=>
"不合法的图片文件大小"
,
"40010"
=>
"不合法的语音文件大小"
,
"40011"
=>
"不合法的视频文件大小"
,
"40012"
=>
"不合法的缩略图文件大小"
,
"40013"
=>
"不合法的APPID"
,
"40014"
=>
"不合法的access_token"
,
"40015"
=>
"不合法的菜单类型"
,
"40016"
=>
"不合法的按钮个数"
,
"40017"
=>
"不合法的按钮个数"
,
"40018"
=>
"不合法的按钮名字长度"
,
"40019"
=>
"不合法的按钮KEY长度"
,
"40020"
=>
"不合法的按钮URL长度"
,
"40021"
=>
"不合法的菜单版本号"
,
"40022"
=>
"不合法的子菜单级数"
,
"40023"
=>
"不合法的子菜单按钮个数"
,
"40024"
=>
"不合法的子菜单按钮类型"
,
"40025"
=>
"不合法的子菜单按钮名字长度"
,
"40026"
=>
"不合法的子菜单按钮KEY长度"
,
"40027"
=>
"不合法的子菜单按钮URL长度"
,
"40028"
=>
"不合法的自定义菜单使用用户"
,
"40029"
=>
"不合法的oauth_code"
,
"40030"
=>
"不合法的refresh_token"
,
"40031"
=>
"不合法的openid列表"
,
"40032"
=>
"不合法的openid列表长度"
,
"40033"
=>
"不合法的请求字符,不能包含xxxx格式的字符"
,
"40035"
=>
"不合法的参数"
,
"40038"
=>
"不合法的请求格式"
,
"40039"
=>
"不合法的URL长度"
,
"40050"
=>
"不合法的分组id"
,
"40051"
=>
"分组名字不合法"
,
"41001"
=>
"缺少access_token参数"
,
"41002"
=>
"缺少appid参数"
,
"41003"
=>
"缺少refresh_token参数"
,
"41004"
=>
"缺少secret参数"
,
"41005"
=>
"缺少多媒体文件数据"
,
"41006"
=>
"缺少media_id参数"
,
"41007"
=>
"缺少子菜单数据"
,
"41008"
=>
"缺少oauth code"
,
"41009"
=>
"缺少openid"
,
"42001"
=>
"access_token超时"
,
"42002"
=>
"refresh_token超时"
,
"42003"
=>
"oauth_code超时"
,
"43001"
=>
"需要GET请求"
,
"43002"
=>
"需要POST请求"
,
"43003"
=>
"需要HTTPS请求"
,
"43004"
=>
"需要接收者关注"
,
"43005"
=>
"需要好友关系"
,
"44001"
=>
"多媒体文件为空"
,
"44002"
=>
"POST的数据包为空"
,
"44003"
=>
"图文消息内容为空"
,
"44004"
=>
"文本消息内容为空"
,
"45001"
=>
"多媒体文件大小超过限制"
,
"45002"
=>
"消息内容超过限制"
,
"45003"
=>
"标题字段超过限制"
,
"45004"
=>
"描述字段超过限制"
,
"45005"
=>
"链接字段超过限制"
,
"45006"
=>
"图片链接字段超过限制"
,
"45007"
=>
"语音播放时间超过限制"
,
"45008"
=>
"图文消息超过限制"
,
"45009"
=>
"接口调用超过限制"
,
"45010"
=>
"创建菜单个数超过限制"
,
"45015"
=>
"回复时间超过限制"
,
"45016"
=>
"系统分组,不允许修改"
,
"45017"
=>
"分组名字过长"
,
"45018"
=>
"分组数量超过上限"
,
"46001"
=>
"不存在媒体数据"
,
"46002"
=>
"不存在的菜单版本"
,
"46003"
=>
"不存在的菜单数据"
,
"46004"
=>
"不存在的用户"
,
"47001"
=>
"解析JSON/XML内容错误"
,
"48001"
=>
"api功能未授权"
,
"50001"
=>
"用户未授权该api"
}
unless
defined?
(
GLOBAL_CODES
)
end
lib/weixin_authorize/error_handler/result_handler.rb
0 → 100644
View file @
90626d36
# encoding: utf-8
module
WeixinAuthorize
class
ResultHandler
attr_accessor
:code
,
:cn_msg
,
:en_msg
,
:result
def
initialize
(
code
=
nil
,
en_msg
=
nil
,
result
=
{})
@code
=
code
||
0
@en_msg
=
en_msg
||
"ok"
@cn_msg
=
GLOBAL_CODES
[
@code
.
to_s
]
@result
=
package_result
(
result
)
end
private
# if define Rails constant
# result = WeixinAuthorize::ResultHandler.new("0", "success", {:ok => "true"})
# result.result["ok"] #=> true
# result.result[:ok] #=> true
# result.result['ok'] #=> true
def
package_result
(
result
)
if
defined?
(
Rails
)
ActiveSupport
::
HashWithIndifferentAccess
.
new
(
result
)
else
result
end
end
end
end
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