gfd_wechat 0.0.1

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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +321 -0
  3. data/LICENSE +21 -0
  4. data/README-CN.md +815 -0
  5. data/README.md +844 -0
  6. data/bin/wechat +520 -0
  7. data/lib/action_controller/wechat_responder.rb +72 -0
  8. data/lib/generators/wechat/config_generator.rb +36 -0
  9. data/lib/generators/wechat/install_generator.rb +20 -0
  10. data/lib/generators/wechat/menu_generator.rb +21 -0
  11. data/lib/generators/wechat/redis_store_generator.rb +16 -0
  12. data/lib/generators/wechat/session_generator.rb +36 -0
  13. data/lib/generators/wechat/templates/MENU_README +3 -0
  14. data/lib/generators/wechat/templates/app/controllers/wechats_controller.rb +12 -0
  15. data/lib/generators/wechat/templates/app/models/wechat_config.rb +46 -0
  16. data/lib/generators/wechat/templates/app/models/wechat_session.rb +17 -0
  17. data/lib/generators/wechat/templates/config/initializers/wechat_redis_store.rb +42 -0
  18. data/lib/generators/wechat/templates/config/wechat.yml +72 -0
  19. data/lib/generators/wechat/templates/config/wechat_menu.yml +6 -0
  20. data/lib/generators/wechat/templates/config/wechat_menu_android.yml +15 -0
  21. data/lib/generators/wechat/templates/db/config_migration.rb.erb +40 -0
  22. data/lib/generators/wechat/templates/db/session_migration.rb.erb +10 -0
  23. data/lib/wechat/api.rb +54 -0
  24. data/lib/wechat/api_base.rb +63 -0
  25. data/lib/wechat/api_loader.rb +145 -0
  26. data/lib/wechat/cipher.rb +66 -0
  27. data/lib/wechat/concern/common.rb +217 -0
  28. data/lib/wechat/controller_api.rb +96 -0
  29. data/lib/wechat/corp_api.rb +168 -0
  30. data/lib/wechat/helpers.rb +47 -0
  31. data/lib/wechat/http_client.rb +112 -0
  32. data/lib/wechat/message.rb +265 -0
  33. data/lib/wechat/mp_api.rb +46 -0
  34. data/lib/wechat/responder.rb +308 -0
  35. data/lib/wechat/signature.rb +10 -0
  36. data/lib/wechat/ticket/corp_jsapi_ticket.rb +14 -0
  37. data/lib/wechat/ticket/jsapi_base.rb +84 -0
  38. data/lib/wechat/ticket/public_jsapi_ticket.rb +14 -0
  39. data/lib/wechat/token/access_token_base.rb +53 -0
  40. data/lib/wechat/token/corp_access_token.rb +13 -0
  41. data/lib/wechat/token/public_access_token.rb +13 -0
  42. data/lib/wechat.rb +52 -0
  43. metadata +195 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 338d5066057a01d9933b7e9c11de3f763e966fc2
4
+ data.tar.gz: 6abca0ce372f0c500f1ee43800267bff99518c1c
5
+ SHA512:
6
+ metadata.gz: 266da7b2027099d40cbd2d3523d163ec971a8713bf9827be5d253577943235c96eff4fe49ed4ad345dcaf8c633824de11eef84e6863ac128474ca2d0a4baff61
7
+ data.tar.gz: 8d102abb0c0f71f452c70fb67cfcce1f2333a43aa258f3b099d8eab2fcc36e6c87edc3870557609540d3fb5c141a82ff1014da8854b09fce1d5035100c351a91
data/CHANGELOG.md ADDED
@@ -0,0 +1,321 @@
1
+ # Changelog
2
+
3
+ ## v0.10.3 (released at 10/07/2018)
4
+
5
+ * Fix new share problem in iOS by @killernova #242
6
+
7
+ ## v0.10.2 (released at 8/27/2018)
8
+
9
+ * Fix incompatible with Rails 5.2.1 by @chloerei #239
10
+
11
+ ## v0.10.1 (released at 7/1/2018)
12
+
13
+ * Allow custom_message_send using Hash as message, previous only allow Wechat::Message. by @zuoliang0 and @fogisland #234
14
+
15
+ ## v0.10.0 (released at 5/31/2018)
16
+
17
+ * Support multi wechat account at wechat_responder. by @tuliren #223
18
+ * Support wechat mini program apis & signature check. by @oiahoon #225
19
+ * Support sent template message with miniprogram. by @falm #228
20
+ * Fix request_content could be nil. by @paicha #229
21
+
22
+ ## v0.9.0 (released at 4/15/2018)
23
+
24
+ * Support multi wechat account dynamically loading from DB. by @tuliren #222
25
+ * user_create API for enterprise account. #206
26
+ * Will ignore template_message_send error 43004 by @insub #214
27
+ * using template with version if the migration version available by @killernova #220
28
+ * Remove Deprecation oauth2_url
29
+ * Remove Ruby 2.2 support, add Rails 5.2 and http v3 support
30
+
31
+ ## v0.8.12 (released at 9/13/2017)
32
+
33
+ * Read oauth2_state from ticket store every time to avoid invalid oauth2_state by @xiewenwei #196
34
+
35
+ ## v0.8.11 (released at 7/25/2017)
36
+
37
+ * oauth2 state code not refresh at the same time of jsapi tickets refresh bug, many thanks @xiewenwei #192
38
+ * Add string type scene support for qrcode_create_scene. by @libuchao #191
39
+
40
+ ## v0.8.10 (released at 6/19/2017)
41
+
42
+ * fix material_delete correctly.
43
+
44
+ ## v0.8.9 (released at 6/18/2017)
45
+
46
+ * wechat material_delete failed to work, thanks @Victorialice report #78
47
+
48
+ ## v0.8.8 (released at 5/18/2017)
49
+
50
+ * Better support multiple account. by @xiewenwei #187
51
+ * Allow load figaro via RAILS_ENV. by @goofansu #186
52
+
53
+ ## v0.8.7 (released at 4/23/2017)
54
+
55
+ * Support new wxa_get_wxacode API for miniapp.
56
+ * Add InvalidCredentialError, support audio/amr, voice/speex as file and text/plain as json. by @acenqiu #184
57
+
58
+ ## v0.8.6 (released at 3/17/2017)
59
+
60
+ * Support Rails 5.1 officially.
61
+ * make sure the formfile can be created outside. by @mechiland #181
62
+
63
+ ## v0.8.5 (released at 3/14/2017)
64
+
65
+ * Support mass send API #176
66
+ * Support new media_hq API
67
+ * Support new createwxaqrcode API for miniapp
68
+ * Fix wechat_responder not proper injected in rails 5 API #165
69
+ * parse response support XML return, by @zhangbin #167
70
+ * WeChat only allow 8 article per one news, by @kikyous #175
71
+ * Store token at cookies, by @jstdoit #174
72
+
73
+ ## v0.8.4 (released at 1/12/2017)
74
+
75
+ * Support Ruby 2.4.0
76
+ * Add support of Enterprise RedPacket API, by @zhangbin #169
77
+
78
+ ## v0.8.3 (released at 11/26/2016)
79
+
80
+ * Fix wechat template key has camelCase problem, by @RyanChenDji #159
81
+ * Fix long time of oauth2_state bug for wechat_oauth2 methods, by @IvanChou #162
82
+
83
+ ## v0.8.2 (released at 11/2/2016)
84
+
85
+ * Bug which if not using multi-account but using web login.
86
+
87
+ ## v0.8.1 (released at 11/2/2016)
88
+
89
+ * After allow sub controller using wechat_api, it's possible not initialise at first time. by @IvanChou #155
90
+ * Support web application login scope snsapi_login.
91
+ * Add unionid support for public account.
92
+ * Remove OpenId in Enterprise OAuth2 as it's not supported by Tecent.
93
+
94
+ ## v0.8.0 (released at 10/24/2016)
95
+
96
+ * Complete support multi-wechat public account. by @xiewenwei #150
97
+ * Support loading configure value from Figaro if application.yml exist.
98
+
99
+ ## v0.7.20 (released at 8/29/2016)
100
+
101
+ * Apply opt and config together when loading controller_wechat, to simplify wechat_responder params. by @bzhang443 #147
102
+
103
+ ## v0.7.19 (released at 8/25/2016)
104
+
105
+ * Enterprise account now custom_image/voice/file works now. by @zymiboxpay #145
106
+ * Fix timeout setting no effective since introduct HTTP. found by @hsluo #74
107
+
108
+ ## v0.7.18 (released at 8/21/2016)
109
+
110
+ * Support label_location message, similar to location event, but sent by user with Label. #144
111
+ * Add gem signature as additional security methods.
112
+
113
+ ## v0.7.17 (released at 8/18/2016)
114
+
115
+ * Allow declare wechat_api at ApplicationController, but using wechat at sub controller. #104
116
+
117
+ ## v0.7.16 (released at 7/27/2016)
118
+
119
+ * FIX: consider '' in params as equal with nil, in ControllerApi#wechat_public_oauth2, by @snow #135
120
+ * New tag API for public account, by @pynixwang #127
121
+ * fix SSLv3 error by use TLSv1_client, by @IvanChou #133
122
+
123
+ ## v0.7.15 (released at 7/03/2016)
124
+
125
+ * RSpec testing case on Rails 5 now.
126
+ * Resolve Rails 5 ActionController::Parameters issue.
127
+
128
+ ## v0.7.14 (released at 5/29/2016)
129
+
130
+ * Fix when access_token failed lead ticket can not refresh problem.
131
+ * Default duration should be 1 hours instead of 0 seconds for wechat_oauth2.
132
+ * New short_url allowing convert from long URL to short.
133
+
134
+ ## v0.7.13 (released at 5/14/2016)
135
+
136
+ * Wechat.config.oauth2_cookie_duration need convert to secondes, found by @gabrieltong #111
137
+
138
+ ## v0.7.12 (released at 5/12/2016)
139
+
140
+ * Fix web_userinfo wrong URL, found by @gabrieltong #110
141
+
142
+ ## v0.7.11 (released at 4/18/2016)
143
+
144
+ * To cover wrong release 0.7.10, nothing change
145
+
146
+ ## v0.7.10 (released at 4/18/2016) (yanked)
147
+
148
+ ## v0.7.9 (released at 4/12/2016)
149
+
150
+ * wechat_oauth2 support public account now.
151
+ * Refresh and store state on jsapi ticket, using it on oauth2_url to more secure.
152
+ * Remove extra sending payload in message template send json
153
+ * Allow setting oauth2_cookie_duration in config
154
+
155
+ ## v0.7.8 (released at 3/31/2016)
156
+
157
+ * New wechat_api, similar to wechat_responder, but without messange handle DSL, support web page only wechat application
158
+ * New media_uploadimg API.
159
+ * New file type of Message.
160
+ * Improved multi account support per different controller.
161
+
162
+ ## v0.7.7 (released at 3/18/2016)
163
+
164
+ * New wechat_oauth2, only support enterprise account still.
165
+ * fix 'skip_before_action :verify_authenticity_token' bug for v5.0.0.beta3 by @vkill #97
166
+ * Support Rails 3.2 again after support Rails 5.0, by @guange2015 #96
167
+
168
+ ## v0.7.6 (released at 3/05/2016)
169
+
170
+ * Support wechat public account conditional menu. #95
171
+
172
+ ## v0.7.5 (released at 2/21/2016)
173
+
174
+ * New wechat_config_js to simplify the Wechat jsapi config.
175
+ * Support sent shortvideo.
176
+
177
+ ## v0.7.4 (released at 1/23/2016)
178
+
179
+ * Add Redis store token/ticket support, close #76, #60
180
+ * Rails 5 support without deprecate warning or other not necessory call. #82
181
+
182
+ ## v0.7.3 (released at 1/19/2016)
183
+
184
+ * Allow transfer_customer_service to specific account.
185
+ * New customservice_getonlinekflist API.
186
+ * session support class WechatSession no need table_exists? methods exist.
187
+
188
+ ## v0.7.2 (released at 1/18/2016)
189
+
190
+ * Optional session support by @zfben #81, #88, #91
191
+ * Replace after_wechat_response with Rails Nofications facility, by @zfben, original issue is #79
192
+ * New user_batchget API. #89
193
+ * Support Rails 3.2 again after support Rails 5.0. by @guange2015 #87
194
+ * Fetch setting from RAILS_ENV first, then fetch default. by @kikyous #85
195
+ * Warning not support on :scan with regular expression, reason see #84
196
+
197
+ ## v0.7.1 (released at 1/11/2016)
198
+
199
+ * Fix after using http, upload file function break. #78
200
+ * Add callback function after_wechat_response support. by @zfben #79
201
+ * Should using department_id instead of departmentid at enterprise api: user_simplelist/user_list.
202
+
203
+ ## v0.7.0 (released at 1/1/2016)
204
+
205
+ * Using [http](https://github.com/httprb/http) instead of rest-client for performance reason. (not support upload file yet)
206
+
207
+ ## v0.6.10 (released at 1/17/2016)
208
+
209
+ * Support Rails 3.2 again after support Rails 5.0. by @guange2015 #87
210
+ * Fetch setting from RAILS_ENV first, then fetch default. by @kikyous #85
211
+ * Warning not support on :scan with regular expression. by @kikyous #84
212
+
213
+ ## v0.6.9 (released at 1/6/2016)
214
+
215
+ * Fix token refresh bug on multi worker. #76
216
+ * Rewrite the token relative code to add more storage support in future.
217
+
218
+ ## v0.6.8 (released at 12/25/2015)
219
+
220
+ * Support Rails 5.0.0.beta1.
221
+ * English README available
222
+ * Fix oauth2_url calling error, fix #75
223
+
224
+ ## v0.6.7 (released at 12/18/2015)
225
+
226
+ * Add timeout configuration option, close #74
227
+ * New getuserinfo and oauth2_url to support getting FromUserName from web page.
228
+
229
+ ## v0.6.6 (released at 12/15/2015)
230
+
231
+ * Add jsapi_ticket support for Enterprise Account
232
+ * Default generated WechatsController < ActionController::Base, as many Rails application may having #authenticate_user or #set_current_user in ApplicationController, so easily affect the first time using experience.
233
+ * New syntax `on :view, with: 'VIEW_URL'` support.
234
+ * New command `upload_replaceparty` which combine three sub command to make uploading department easier.
235
+ * New command `upload_replaceuser` which combine three sub command to make uploading user easier.
236
+
237
+ ## v0.6.5 (released at 11/24/2015)
238
+
239
+ * Handle 48001 error if token is expire/not valid, close #71
240
+ * ApiLoader will do config reading and initialize the api instead of spreading the logic.
241
+
242
+ ## v0.6.4 (released at 11/16/2015)
243
+
244
+ * Command mode now display different command set based on enterprise/public account setting
245
+ * Move config logic in command/wechat to ApiLoader class
246
+ * Unsubscribe can only reply plain text 'success' #68
247
+ * Fix 404 qrcode download problem, by @huangxiangdan #69
248
+
249
+ ## v0.6.3 (released at 11/14/2015)
250
+
251
+ * Official testing and support public encrypt mode, also fix one cipher bug, many thanks to @hlltc #67
252
+ * hlltc report public account FILE_BASE no longer needs, clean code #67
253
+ * Media command line reflect recent Tecent json schema change. #67
254
+
255
+ ## v0.6.2 (released at 11/05/2015)
256
+
257
+ * Tecent report location API changed, so change wechat gems also. #64
258
+
259
+ ## v0.6.1 (released at 10/20/2015)
260
+
261
+ * Handle 40001, invalid credential, access_token is invalid or not latest hint # 57
262
+ * Support at Rails 4.2.1 wechat can not run #58
263
+
264
+ ## v0.6.0 (released at 10/08/2015)
265
+
266
+ ### Scan and Batch job are BREAK CHANGE!
267
+
268
+ * Scan 2D barcode using new syntax `on :scan, with: 'BINDING_QR_CODE' ` instead of `on :event, with: 'BINDING_QR_CODE' ` in previous version #55
269
+ Which will fix can not using `on :event, with: "scan" ` problem
270
+ * Batch job using new syntax `on :batch_job, with: 'replace_user' `
271
+ instead of previous `on :event, with: 'replace_user' `.
272
+ * Click menu support new syntax `on :click, with: 'BOOK_LUNCH' `, but `on :event, with: 'BOOK_LUNCH' ` still supported. perfer `on :click` because it running faster and more nature expression.
273
+ * Wechat::Responder using Hash for new :client and :batch_job event, avoid time consuming Array match responder
274
+ * Fix refresh token not working problem under ruby 2.0.0 #54
275
+ * New department_update, user_batchdelete, convert_to_openid API
276
+
277
+ ## v0.5.0 (released at 9/25/2015)
278
+
279
+ * Only relay on activesupport on run time, so will greatly improve wechat cli startup time
280
+ * Add rails generator support `rails g wechat:install`
281
+ * Add batch job support for enterprise account like batch create user/department, both API, callback responder and CLI
282
+ * Add material management API and CLI
283
+ * Add tag API and CLI for enterprise account
284
+ * Add QR code scene function for public account
285
+
286
+ ## v0.4.2 (released at 9/7/2015)
287
+
288
+ * Fix wrong number of arguments at Wechat::Responder.on by using arity #47
289
+ * Fix can not access wechat method after using instance level context.
290
+ * Fix skip_verify_ssl parameter error.
291
+
292
+ ## v0.4.1 (released at 9/6/2015)
293
+
294
+ * Limit news articles collection to 10, close #5
295
+ * Resolve the conflict with gem "responders" by @seamon #45
296
+
297
+ ## v0.4.0 (released at 9/5/2015)
298
+
299
+ * Enable the verify SSL for enterprise mode by default, as security is more importent than speed, but still can switch off by configure
300
+ * Support scancode_push/scancode_waitmsg event.
301
+ * New API method can get wechat server IP list
302
+ * New API to query/create department/media/material
303
+ * Fix can not read token_file in mingw bug, which introduce at #43
304
+
305
+ ## v0.3.0 (released at 8/30/2015)
306
+
307
+ * New user group management API
308
+ * Allow transfer to customer service on fallback. #42
309
+ * Read and write access_token properly using file locking, #43
310
+
311
+ ## v0.2.0 (released at 8/27/2015)
312
+
313
+ * Add wechat enterprise account support
314
+ * Make responder execute in action context, by @lazing #15
315
+ * jsapi_ticket support, by @feitian124 #27
316
+ * Rename gems to wechat and ambitious to being #1 gems about development wechat. thanks Xiaoning transfer this gem name.
317
+ * Original gem `wechat-rails` author skinnyworm trasfer to Eric-Guo as maintainer
318
+
319
+ ## v0.1.1
320
+
321
+ * Initial release from [wechat-rails](https://github.com/skinnyworm/wechat-rails).
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 skinnyworm
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.