<commit_before>= 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},如下：

  http://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


===微信小店的初始化
* 首先对所经营的分类进行归类，并且把腾讯分类同步至数据库。为了避免分类过多，一般只同步自己行业的大类，大类编号请自查，如儿童玩具大类，食品类两类更新如下：
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 信息。

===队列配置
* 队列配置详情： https://github.com/collectiveidea/delayed_job。
* 可以起多个任务：

<commit_msg>修改文档关于“我的订单”的链接说明<commit_after>= 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},如下：

  http://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 信息。

===队列配置
* 队列配置详情： https://github.com/collectiveidea/delayed_job。
* 可以起多个任务：


{'fraction_non_alphanumeric': 0.1111745669141443, 'fraction_numerical': 0.021701884637350087, 'mean_word_length': 3.980094786729858, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 24, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5029109', 'n_tokens_mistral': 3052, 'n_tokens_neox': 3275, 'n_words': 223}