diff --git a/app/api/mobile/apis/new_comment.rb b/app/api/mobile/apis/new_comment.rb index cb74efbb5..a0ca248ab 100644 --- a/app/api/mobile/apis/new_comment.rb +++ b/app/api/mobile/apis/new_comment.rb @@ -21,8 +21,9 @@ module Mobile raise "无法获取到openid,请在微信中打开本页面" unless openid us = UsersService.new #login mail password - openid_length = openid.length + #根据openid生成一个用户名 + openid_length = openid.length login = openid[0..10]+openid[openid_length-3..openid_length-1]+Time.now.to_i.to_s access_token = session[:access_token] @@ -32,25 +33,18 @@ module Mobile Rails.logger.info session if access_token && refresh_token - refreshinfo = Wechat.api.web_refresh_access_token(refresh_token) + #先刷新下access_token 已防止过期 + refreshinfo = Wechat.api.web_refresh_access_token(refresh_token) access_token = refreshinfo["access_token"] refresh_token = refreshinfo["refresh_token"] session[:access_token] = access_token session[:refresh_token] = refresh_token - require "open-uri" - #如果有GET请求参数直接写在URI地址中 - uri = 'https://api.weixin.qq.com/sns/userinfo?access_token='+access_token+'&openid='+openid+'&lang=zh_CN' - userinfo = nil - open(uri) do |http| - userinfo = JSON.parse(http.read) - end - - # userinfo = Wechat.api.web_userinfo(access_token,openid) - + #获取用户信息 + userinfo = Wechat.api.web_userinfo(access_token,openid) + Rails.logger.info "userinfo!!!!!!!!!" Rails.logger.info userinfo - Rails.logger.info userinfo["nickname"] name = userinfo["nickname"] else name = openid[0..3]+"***"+openid.last diff --git a/lib/wechat/lib/wechat/api.rb b/lib/wechat/lib/wechat/api.rb index 76890a833..7b754a07c 100644 --- a/lib/wechat/lib/wechat/api.rb +++ b/lib/wechat/lib/wechat/api.rb @@ -132,14 +132,23 @@ module Wechat end def web_userinfo(access_token,openid) - params = { - access_token: access_token, - openid: openid, - lang: "zh_CN" - } - - # get 'https://api.weixin.qq.com/sns/userinfo',params: params - get 'userinfo', params: params, base: OAUTH2_USERINFO + # params = { + # access_token: access_token, + # openid: openid, + # lang: "zh_CN" + # } + # + # # get 'https://api.weixin.qq.com/sns/userinfo',params: params + # get 'userinfo', params: params, base: OAUTH2_USERINFO + + require "open-uri" + #如果有GET请求参数直接写在URI地址中 + uri = 'https://api.weixin.qq.com/sns/userinfo?access_token='+access_token+'&openid='+openid+'&lang=zh_CN' + userinfo = nil + open(uri) do |http| + userinfo = JSON.parse(http.read) + end + userinfo end end end