• Rails 之微信开发 : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed


     

    微信公众平台,使用Ruby On Rails + Win7

    在取得OpenID时,如果简单的使用http.get方法,会出现如下

    SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

    解决方案:

        def get_open_id code
        url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxx&secret=xxx&code=#{code}&grant_type=authorization_code"
       
        uri = URI.parse(url)
        http = Net::HTTP.new(uri.host, uri.port)
        http.use_ssl = true
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE
        request = Net::HTTP::Post.new("/sns/oauth2/access_token?appid=xx&secret=xxx=#{code}&grant_type=authorization_code")
        request.add_field('Content-Type', 'application/json')
        #request.body = post_data.to_json
        response = http.request(request)
        json = JSON.parse(response.body)
        return json
      end

     二, 在生成二维码的时候,取得ticket时,如果简单的使用post_form方法,会出现如下

    {"errcode":40052,"errmsg":"invalid action name"}

    原因大致就是微信服务器收到的JSON格式不合法,不知道post_form提交的最终数据是怎么样的。

    变通的方法是自己写post方法,稍微麻烦一些

    uri = URI.parse("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=#{access_token}")
    post_data = {"expire_seconds" => 1800, "action_name" => "QR_SCENE", "action_info" => {"scene" => {"scene_id" => 123}}}
    
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    request = Net::HTTP::Post.new("/cgi-bin/qrcode/create?access_token=#{access_token}")
    request.add_field(Content-Type, application/json)
    request.body = post_data.to_json
    response = http.request(request)
    json = JSON.parse(response.body)
  • 相关阅读:
    POJ
    CodeForces
    51Nod 1256 扩展欧几里得求乘法逆元
    SDUT 3917
    SDUT 3918
    从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程
    bootstrap资料索引
    理解Login函数
    细说@Html.ActionLink()的用法
    RGB颜色对照表
  • 原文地址:https://www.cnblogs.com/Fooo/p/4288193.html
Copyright © 2020-2023  润新知