EricWeixin–提升微信项目的研发效率

目前EricWeixin已封装了认证服务号80%以上的接口,并且有一套后台管理界面与功能自成体系。

  • 官网暂无。

  • 大部分功能正在研发中。

  • 要求数据库支持 utf8mb4 编码格式。 用于表情存储。 mysql 要求在 5.5及以上版本。

requirements

从大的情况来看,基本上适用于rails4.1.4及以上版本。我自己则是在4.1.4版本上进行研发。 Gem 中使用了delayed_job 作为队列机制,用来加快响应速度。 在项目中需要配置好队列。具体可参考: 细节待更新。

使用方式

路由(Routes)

  • 首先在自己的Application的 /config/routes 中添加以下代码,以便在应用中使用Gem提供的一系列功能:

    mount EricWeixin::Engine, at: “eric_weixin”

  • 在微信管理界面的配置地址:http://#host_name/eric_weixin/weixin/service/#app_id,如下:

    www.xxx.com/eric_weixin/weixin/service/wx51729870d9092531

数据库迁移(migration),目前仅支持MySQL语法。

  • 第一次使用Gem或对Gem升级以后,都需要对migration进行升级,进入到Application目录下,执行如下操作:

    rake eric_weixin:install:migrations

管理平台的链接

  • 二维码: /eric_weixin/cms/weixin/two_dimension_codes

  • 关键字回复: /eric_weixin/cms/weixin/reply_message_rules

  • 公众账号管理: /eric_weixin/cms/weixin/public_accounts

  • 图文管理: /eric_weixin/cms/weixin/news_datas

  • 图文素材管理: /eric_weixin/cms/weixin/article_datas

  • 链接管理: /eric_weixin/cms/weixin/url_encodes

  • 微信小店订单设置 /eric_weixin/cms/weixin/xiaodian/orders

  • 微信小店商品刷新 /eric_weixin/cms/weixin/xiaodian/products

  • 微信用户展示 /eric_weixin/cms/weixin/weixin_users

客户展示链接

  • 查看“我的订单” eric_weixin/weixin/orders?openid=<OPENID>

微信小店的初始化

  • 首先对所经营的分类进行归类,并且把腾讯分类同步至数据库。为了避免分类过多,一般只同步自己行业的大类,大类编号请自查,如儿童玩具大类,食品类两类更新如下:

EricWeixin::Xiaodian::Category.import_all_categories ‘公众账号名称,参考 weixin_public_account表’, [‘538088633’,‘538071212’]

  • 更新SKU信息

EricWeixin::Xiaodian::Category.update_sku_info ‘公众账号名称,参考 weixin_public_account表’

  • 更新商品信息

EricWeixin::Xiaodian::Product.get_all_products ‘公众账号名称,参考 weixin_public_account表’

  • 同步已有订单信息

EricWeixin::Xiaodian::Order.get_order_list_and_update nil, nil ,nil ,‘公众账号名称,参考 weixin_public_account表’

  • 如果有新商品上架,则需要更新商品与SKU信息。 更新过程见商品列表页面,点击刷新按钮即可。由于接口调用限制,一天之内不要操作超过3次。

红包的使用

  • 先在项目根目录新建一个名字叫ca的目录,并设置权限,让应用程序可读。 ca目录用于存放微信官方密钥证书,主要用于发红包过程中的通信加密。

  • 在weixin_public_account中设置:mch_id: 商户号, mch_key:在商户后台写的32位的那个密码,host_name_wich_schema: 当前域名,在回调时需要参考此参数。

  • 调用方式:

    EricWeixin::RedpackOrder.create_redpack_order wishing: 'xxx',
                                                client_ip: '127.0.0.1', # 换成自己服务器ip
                                                act_name: '过年送红包',
                                                remark: '一起开心一下,祝新年快乐',
                                                send_name: 'U果源',
                                                re_openid: openid, # 收红包人的openid
                                                total_amount: 100 # 金额: 单位(分)
    
  • 定时获取红包信息:使用EricWeixin::RedpackOrder的实例调用 get_info 信息。

队列配置