eric_weixin 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.rdoc +16 -7
- data/app/controllers/eric_weixin/cms/base_controller.rb +1 -1
- data/app/controllers/eric_weixin/cms/weixin/xiaodian/products_controller.rb +18 -0
- data/app/models/eric_weixin/public_account.rb +1 -1
- data/app/models/eric_weixin/redpack_order.rb +1 -0
- data/app/models/eric_weixin/xiaodian/order.rb +8 -0
- data/app/views/eric_weixin/cms/weixin/xiaodian/products/index.html.erb +82 -0
- data/config/routes.rb +5 -0
- data/lib/eric_weixin/modules/mult_customer.rb +1 -0
- data/lib/eric_weixin/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d5d996dd245394e948403c861009e6935fc33b
|
4
|
+
data.tar.gz: b9ddafb0c72823ef812729909ba21ecb738abd6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc4bf189c3f62645d944df24b04eed1f7ae05a2fd33edc0f8d7b3a772a902c560fed5bab120654fead28cb98ad6e01d2715bfede51d2919b639483b133596605
|
7
|
+
data.tar.gz: 7df2fd4d756065acdcd70e9b071e5e9eaab8cd5273e6c1db7b6c5f17b28960fcbee63130f36a16fb1ec9e121a8e8a528a850cb8f7c22b3e15d13bd5dad9e9122
|
data/README.rdoc
CHANGED
@@ -28,22 +28,31 @@
|
|
28
28
|
* 图文素材管理: /eric_weixin/cms/weixin/article_datas
|
29
29
|
* 链接管理: /eric_weixin/cms/weixin/url_encodes
|
30
30
|
* 微信小店订单设置 /eric_weixin/cms/weixin/xiaodian/orders
|
31
|
+
* 微信小店商品刷新 /eric_weixin/cms/weixin/xiaodian/products
|
32
|
+
* 微信用户展示 /eric_weixin/cms/weixin/weixin_users
|
31
33
|
|
32
34
|
|
33
35
|
===微信小店的初始化
|
34
36
|
* 首先对所经营的分类进行归类,并且把腾讯分类同步至数据库。为了避免分类过多,一般只同步自己行业的大类,大类编号请自查,如儿童玩具大类,食品类两类更新如下:
|
35
|
-
|
36
37
|
EricWeixin::Xiaodian::Category.import_all_categories '公众账号名称,参考 weixin_public_account表', ['538088633','538071212']
|
37
38
|
* 更新SKU信息
|
38
|
-
|
39
39
|
EricWeixin::Xiaodian::Category.update_sku_info '公众账号名称,参考 weixin_public_account表'
|
40
40
|
* 更新商品信息
|
41
|
-
|
42
41
|
EricWeixin::Xiaodian::Product.get_all_products '公众账号名称,参考 weixin_public_account表'
|
43
42
|
* 同步已有订单信息
|
44
|
-
|
45
43
|
EricWeixin::Xiaodian::Order.get_order_list_and_update nil, nil ,nil ,'公众账号名称,参考 weixin_public_account表'
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
* 如果有新商品上架,则需要更新商品与SKU信息。 更新过程见商品列表页面,点击刷新按钮即可。由于接口调用限制,一天之内不要操作超过3次。
|
46
|
+
|
47
|
+
===红包的使用
|
48
|
+
* 先在项目根目录新建一个名字叫ca的目录,并设置权限,让应用程序可读。 ca目录用于存放微信官方密钥证书,主要用于发红包过程中的通信加密。
|
49
|
+
* 在weixin_public_account中设置:mch_id: 商户号, mch_key:在商户后台写的32位的那个密码,host_name_wich_schema: 当前域名,在回调时需要参考此参数。
|
50
|
+
* 调用方式:
|
51
|
+
EricWeixin::RedpackOrder.create_redpack_order wishing: 'xxx',
|
52
|
+
client_ip: '127.0.0.1', # 换成自己服务器ip
|
53
|
+
act_name: '过年送红包',
|
54
|
+
remark: '一起开心一下,祝新年快乐',
|
55
|
+
send_name: 'U果源',
|
56
|
+
re_openid: openid, # 收红包人的openid
|
57
|
+
total_amount: 100 # 金额: 单位(分)
|
58
|
+
* 定时获取红包信息:使用EricWeixin::RedpackOrder的实例调用 get_info 信息。
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class EricWeixin::Cms::Weixin::Xiaodian::ProductsController < EricWeixin::Cms::BaseController
|
2
|
+
def index
|
3
|
+
@products = EricWeixin::Xiaodian::Product.all
|
4
|
+
@products = @products.where("id >= ?", params[:start_id]) unless params[:start_id].blank?
|
5
|
+
@products = @products.where("id <= ?", params[:end_id]) unless params[:end_id].blank?
|
6
|
+
@products = @products.order(id: :desc).paginate(per_page: params[:per_page]||6, page: params[:page]||1)
|
7
|
+
end
|
8
|
+
|
9
|
+
def get_all_products
|
10
|
+
EricWeixin::PublicAccount.all.each do |pb|
|
11
|
+
EricWeixin::Xiaodian::Product.get_all_products pb.name
|
12
|
+
EricWeixin::Xiaodian::Category.update_sku_info pb.name
|
13
|
+
end
|
14
|
+
redirect_to 'EricWeixin::Cms::Weixin::Xiaodian::Products#index'
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
end
|
@@ -143,7 +143,7 @@ class EricWeixin::PublicAccount < ActiveRecord::Base
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
tmp_next_openid = response["next_openid"]
|
146
|
-
self.
|
146
|
+
self.rebuild_users_simple tmp_next_openid unless tmp_next_openid.blank?
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
@@ -18,6 +18,7 @@ class EricWeixin::Xiaodian::Order < ActiveRecord::Base
|
|
18
18
|
}
|
19
19
|
|
20
20
|
def product_info
|
21
|
+
return '' if self.sku_info.blank?
|
21
22
|
info = ""
|
22
23
|
list = self.sku_info.split(";")
|
23
24
|
list.each do |sku|
|
@@ -90,6 +91,11 @@ class EricWeixin::Xiaodian::Order < ActiveRecord::Base
|
|
90
91
|
end
|
91
92
|
|
92
93
|
|
94
|
+
def buyer_nick
|
95
|
+
CGI::unescape(self.attributes["buyer_nick"]) rescue '无法正常显示'
|
96
|
+
end
|
97
|
+
|
98
|
+
|
93
99
|
# 根据订单ID获取订单详情
|
94
100
|
def get_info
|
95
101
|
token = ::EricWeixin::AccessToken.get_valid_access_token public_account_id: self.weixin_public_account_id
|
@@ -102,6 +108,8 @@ class EricWeixin::Xiaodian::Order < ActiveRecord::Base
|
|
102
108
|
order_params.delete a
|
103
109
|
end
|
104
110
|
|
111
|
+
order_params["buyer_nick"] = CGI::escape(order_params["buyer_nick"]) if not order_params["buyer_nick"].blank?
|
112
|
+
|
105
113
|
|
106
114
|
|
107
115
|
# 获取订单详情前,weixin_product_id、sku_info、weixin_user_id应该已经有了值
|
@@ -0,0 +1,82 @@
|
|
1
|
+
|
2
|
+
<h3>产品列表</h3>
|
3
|
+
|
4
|
+
|
5
|
+
<%= button_to "刷新产品", 'products/get_all_products', method: :get, class: "button tiny" %>
|
6
|
+
|
7
|
+
|
8
|
+
<div class="row">
|
9
|
+
<%= form_tag "/eric_weixin/cms/weixin/xiaodian/products/", method: :get do %>
|
10
|
+
<div class="columns small-2">
|
11
|
+
<label class="inline text-right">起始ID</label>
|
12
|
+
</div>
|
13
|
+
<div class="columns small-3">
|
14
|
+
<%= number_field_tag 'start_id', params[:start_id], placeholder: '输入起始数字ID' %>
|
15
|
+
</div>
|
16
|
+
<div class="columns small-1 text-center">
|
17
|
+
<label class="inline center">终止ID</label>
|
18
|
+
</div>
|
19
|
+
<div class="columns small-3">
|
20
|
+
<%= number_field_tag 'end_id', params[:end_id], placeholder: '输入终止数字ID' %>
|
21
|
+
</div>
|
22
|
+
<div class="columns small-3 text-left">
|
23
|
+
<%= submit_tag "搜索", class: "button tiny" %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<table>
|
30
|
+
<thead>
|
31
|
+
<tr>
|
32
|
+
<th>商品ID</th>
|
33
|
+
<th>商品名称</th>
|
34
|
+
<th>商品特点</th>
|
35
|
+
<th>SKU信息</th>
|
36
|
+
<th>商品状态</th>
|
37
|
+
<th>公众号</th>
|
38
|
+
</tr>
|
39
|
+
</thead>
|
40
|
+
<tbody>
|
41
|
+
<% @products.each do |product| %>
|
42
|
+
<tr>
|
43
|
+
<td><%= product.id %></td>
|
44
|
+
<td><%= product.name %></td>
|
45
|
+
<td>
|
46
|
+
<% str = product.properties %>
|
47
|
+
<% a = str.gsub("=>", ":") %>
|
48
|
+
<% properties = JSON.parse(a) %>
|
49
|
+
|
50
|
+
<% properties.each do |property| %>
|
51
|
+
<%= property['id'] + ':' %>
|
52
|
+
<%= property['vid'] %>
|
53
|
+
<br>
|
54
|
+
<% end %>
|
55
|
+
</td>
|
56
|
+
<td>
|
57
|
+
<% b = product.sku_info.gsub("=>", ":") %>
|
58
|
+
<% sku_infos = JSON.parse b %>
|
59
|
+
<% sku_infos.each do |info| %>
|
60
|
+
<%= info['id'][1, info['id'].length-1] + ':' %>
|
61
|
+
<% info['vid'].each do |vid| %>
|
62
|
+
<%= vid[1, vid.length-1] %>
|
63
|
+
<% end %>
|
64
|
+
<br>
|
65
|
+
<% end %>
|
66
|
+
</td>
|
67
|
+
<td>
|
68
|
+
<% if product.status == 1 %>
|
69
|
+
<span>上架</span>
|
70
|
+
<% elsif product.status == 2 %>
|
71
|
+
<span>下架</span>
|
72
|
+
<% else %>
|
73
|
+
<span>error</span>
|
74
|
+
<% end %>
|
75
|
+
</td>
|
76
|
+
<td><%= product.weixin_public_account_id %></td>
|
77
|
+
</tr>
|
78
|
+
<% end %>
|
79
|
+
</tbody>
|
80
|
+
</table>
|
81
|
+
<%= will_paginate @collection, renderer: FoundationPagination::Rails %>
|
82
|
+
|
data/config/routes.rb
CHANGED
@@ -61,6 +61,7 @@ module EricWeixin::MultCustomer
|
|
61
61
|
# 发送多客服信息.
|
62
62
|
# ====参数说明
|
63
63
|
# app_id: 微信公众账号app_id
|
64
|
+
# weixin_number: 微信原始账号,和app_id 二选一必填
|
64
65
|
# openid: 接收消息用户的openid
|
65
66
|
# message_type: 消息类型:包含以下:text image voice video music news#
|
66
67
|
# data: 值为一个hash, 对应着公众账号里要发送的内容,它的key为msgtype
|
data/lib/eric_weixin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eric_weixin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 刘晓琦
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- app/controllers/eric_weixin/cms/weixin/users_controller.rb
|
55
55
|
- app/controllers/eric_weixin/cms/weixin/weixin_users_controller.rb
|
56
56
|
- app/controllers/eric_weixin/cms/weixin/xiaodian/orders_controller.rb
|
57
|
+
- app/controllers/eric_weixin/cms/weixin/xiaodian/products_controller.rb
|
57
58
|
- app/controllers/eric_weixin/wz/pays_controller.rb
|
58
59
|
- app/controllers/eric_weixin/wz/weixin_controller.rb
|
59
60
|
- app/helpers/eric_weixin/application_helper.rb
|
@@ -130,6 +131,7 @@ files:
|
|
130
131
|
- app/views/eric_weixin/cms/weixin/users/index.html.erb
|
131
132
|
- app/views/eric_weixin/cms/weixin/weixin_users/index.html.erb
|
132
133
|
- app/views/eric_weixin/cms/weixin/xiaodian/orders/index.html.erb
|
134
|
+
- app/views/eric_weixin/cms/weixin/xiaodian/products/index.html.erb
|
133
135
|
- app/views/eric_weixin/wz/pays/pay_fail.html.erb
|
134
136
|
- app/views/eric_weixin/wz/pays/pay_ok.html.erb
|
135
137
|
- app/views/eric_weixin/wz/pays/prepay.html.erb
|