美文网首页程序员
ruby微信开发介绍

ruby微信开发介绍

作者: 杜小龙 | 来源:发表于2014-06-16 00:27 被阅读2852次

首先我们要知道微信公众账号分两种,订阅号和服务号,它们的区别如下图:


从上图可以看出订阅号的功能其实很弱的,如果没有认证的话,连自定义菜单都没有,尼玛认证还要出300块,还不包过!!!

不过,这对我们学习微信公众账号开发并没有什么影响,因为微信提供一个测试账号供我们调试。

首先我们先进入开发者模式先,这需要我们有一个独立的服务器。
然后进行配置

url:www.xxx.com/weixin
token: abcd

然后微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:

signature    微信加密签名
timestamp    时间戳
nonce    随机数
echostr

加密/校验流程如下:

  1. 将token、timestamp、nonce三个参数进行字典序排序

  2. 将三个参数字符串拼接成一个字符串进行sha1加密

  3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    代码如下:

    def check_weixin_legality
    array = [Rails.configuration.weixin_token, params[:timestamp], params[:nonce]].sort
    render :text => "Forbidden", :status => 403 if params[:signature] != Digest::SHA1.hexdigest(array.join)
    end

然后我们通过这个www.xxx.com/weixin 接口就可以做很多事情了,根据你发送的不同的文字消息可以返回不同的消息。比如你发,新闻,然后就返回一条图文信息,发音乐,然后就返回一首歌,这个在方法里面进行判断就好了。

def text_message
  content = params[:xml][:Content]
  case content
  when "音乐"
    render xml: music_reply_message
  when "新闻"
    render xml: news_reply_message
  end
end

然后自定义菜单的实现,这需要微信提供的APPID 和APPSECRET
接口调用请求说明

http请求方式: GET

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

由于这里的token有个凭证有效时间,然后我们如果每次访问都去获取这个token的话,那实在是太浪费了,而且微信对于token的每天的获取次数是有限的。这个的话用cache来解决。

def get_access_token
  if Rails.cache.read("access_token").nil?
    params = {grant_type: "client_credential", appid:Rails.configuration.weixin_appid, secret: Rails.configuration.weixin_secret}
    response = RestClient.get 'https://api.weixin.qq.com/cgi-bin/token', {params: params}
    errcode = (JSON.parse response)["errcode"]
    @access_token = (JSON.parse response)["access_token"]
    Rails.cache.write("access_token", @access_token, expires_in: 5.minutes)
  else
    @access_token = Rails.cache.read("access_token")
  end
end

未完。。。

相关文章

  • ruby微信开发介绍

    首先我们要知道微信公众账号分两种,订阅号和服务号,它们的区别如下图: 从上图可以看出订阅号的功能其实很弱的,如果没...

  • Rails

    Rails.cache.store Ruby的HTML/XML解析库 Nokogiri 微信开发Rails3.0参...

  • node express 微信开发

    wechat-node 微信开发 基于node express框架 介绍 node express 微信开发 获取...

  • 《微信小程序开发文档》使用指南

    微信小程序开发文档,主要介绍了微信小程序的开发教程,微信小程序的api文档,微信的应用号开发资料等。 一、关于微信...

  • 微信开发之后台开发

    上一篇主要介绍了微信的网页开发。这篇来介绍一下微信后台开发。对于一般的微信运营者,微信公众平台提供了配置自动回复和...

  • 微信小程序基础

    微信小程序介绍微信小程序开发工具的使用微信小程序框架文件微信小程序逻辑层微信小程序视图层微信小程序组件介绍微信小程...

  • 微信小程序 助你爬坑

    目录 已更新 微信小程序 开发简介微信小程序 账号注册及开发工具下载微信小程序 目录结构介绍微信小程序 获取App...

  • 微信开发基本介绍

    微信订阅号,服务号,企业号,小程序?公众号要选订阅号还是服务号?小程序是什么? 订阅号?微信公众平台,微信开放平台...

  • HTML5 起航____微信JSSDK开发信息配置

    引言 好像更加接近真相了,今天向大家介绍的是微信JSSDK开发。 重点 微信JS-SDK是微信公众平台面向网页开发...

  • PC 微信扫码登陆

    目录1、注册微信开发平台2、微信开发平台添加网站应用3、PC微信登录流程介绍4、获取用户基本信息(UnionID机...

网友评论

    本文标题:ruby微信开发介绍

    本文链接:https://www.haomeiwen.com/subject/cccjtttx.html