打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[已解决] 微信支付不授权直接获取 open id 的方法 · Ruby China

微信支付不授权直接获取 open id 的方法

新手问题 · Catherine · 发布于 2016年2月01日 · 最后由 catherine 回复于 2016年2月02日 · 3282 次阅读
  • 因为只需要获取open id,不用去让用户授权一次。代码和一些处理逻辑还参考了ruby china的另一个帖子,但忘记链接了在公众号里点了按钮到check_openid的路由下,页面空白,也没有报错啥的,检查了log里没有我想要的openid出现...我把微信里的回调url改成了get_code的路由,依然日志里没有我想要的东西..不知道到底哪一步有问题。

参考的这个文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html#.E7.AC.AC.E4.B8.80.E6.AD.A5.EF.BC.9A.E7.94.A8.E6.88.B7.E5.90.8C.E6.84.8F.E6.8E.88.E6.9D.83.EF.BC.8C.E8.8E.B7.E5.8F.96code

  • 公众号花了300块,是有这个接口权限的,安全域名我也添加了服务器的域名。不知道若没有花300块是否就没有这个接口的使用权限没有调试成功的原因是:在wx文档里说安全域名不能有前缀http或https,于是我误以为回调redirect_uri也不能要,这个“我以为”就是调试不成功的原因,加上http或https就可以了。回调路由就是get_code或check_openid。
class Api::WxpaymentsController < ApplicationController  # get_code function exists for testing, could be dumped  respond_to :json  def get_code    code = params[:code]    state = params[:state]    Rails.logger.info("=====")    Rails.logger.info(code)    Rails.logger.info ("*****")    Rails.logger.info (state)    api_render_result(t, E_SUCCESS)    return  end  def check_openid    if session[:openid].blank?      code = params[:code]      if code.nil?        # with state params        # redirect_to "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{WXPAY_APPID}&redirect_uri=#{REDIRECT_URL}&response_type=code&scope=snsapi_base&state=#{REDIRECT_URL}#wechat_redirect"        # without state        redirect_to "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{WXPAY_APPID}&redirect_uri=#{REDIRECT_URL2}&response_type=code&scope=snsapi_base#wechat_redirect"      end      begin        url    = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#{WXPAY_APPID}&secret=#{WXPAY_SECRET}&code=#{code}&grant_type=authorization_code"        session[:openid] = JSON.parse(URI.parse(url).read)["openid"]      rescue Exception => e        #      end    end    if session[:openid]      Rails.logger.info("Get the openid ~!--->#{session[:openid]}")      Rails.logger.info("Get the code ~!--->#{code}")    end    # api_render_result(t, E_SUCCESS)    endend
共收到 5 条回复
1楼 已删除
2楼 已删除
imconfused · #3 · 2016年2月02日

check_openid 的 redirect_to 那里要 return 一下

linyunjiang · #4 · 2016年2月02日

如三楼说的 return一下应该就没问题了

Catherine · #5 · 2016年2月02日

#3楼 @imconfused
#4楼 @linyunjiang
谢谢,出错是在回调域名的格式上,需要加上前缀http or https

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微信静默授权登录
【微信】未关注公众号授权获取基本信息(头像昵称等)
微信公众号跳转H5页面获取openid,再跳转小程序
微信支付之openid获取
微信公众平台开发(71)OAuth2.0网页授权
利用微信服务号获取用户基本信息的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服