eric_weixin 0.1.1 → 0.2.0

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +6 -1
  3. data/app/assets/javascripts/eric_weixin/application.js +1 -0
  4. data/app/assets/javascripts/eric_weixin/cms/base.js +6 -5
  5. data/app/controllers/eric_weixin/application_controller.rb +98 -0
  6. data/app/controllers/eric_weixin/cms/base_controller.rb +1 -1
  7. data/app/controllers/eric_weixin/cms/weixin/media_articles_controller.rb +73 -0
  8. data/app/controllers/eric_weixin/cms/weixin/media_news_controller.rb +175 -0
  9. data/app/controllers/eric_weixin/cms/weixin/media_resources_controller.rb +68 -0
  10. data/app/controllers/eric_weixin/wz/pays_controller.rb +15 -0
  11. data/app/controllers/eric_weixin/wz/weixin_controller.rb +2 -2
  12. data/app/helpers/eric_weixin/application_helper.rb +6 -0
  13. data/app/helpers/eric_weixin/cms/weixin/public_accounts_helper.rb +3 -3
  14. data/app/models/eric_weixin/access_token.rb +1 -0
  15. data/app/models/eric_weixin/media_article.rb +53 -0
  16. data/app/models/eric_weixin/media_article_news.rb +6 -0
  17. data/app/models/eric_weixin/media_news.rb +216 -0
  18. data/app/models/eric_weixin/media_resource.rb +172 -0
  19. data/app/models/eric_weixin/public_account.rb +9 -0
  20. data/app/views/eric_weixin/cms/weixin/media_articles/_media_article.html.erb +131 -0
  21. data/app/views/eric_weixin/cms/weixin/media_articles/_select_pic.html.erb +78 -0
  22. data/app/views/eric_weixin/cms/weixin/media_articles/edit.html.erb +4 -0
  23. data/app/views/eric_weixin/cms/weixin/media_articles/index.html.erb +31 -0
  24. data/app/views/eric_weixin/cms/weixin/media_articles/new.html.erb +15 -0
  25. data/app/views/eric_weixin/cms/weixin/media_news/_select_article.html.erb +90 -0
  26. data/app/views/eric_weixin/cms/weixin/media_news/_select_user.html.erb +8 -0
  27. data/app/views/eric_weixin/cms/weixin/media_news/_will_send_article.html.erb +53 -0
  28. data/app/views/eric_weixin/cms/weixin/media_news/new.html.erb +284 -0
  29. data/app/views/eric_weixin/cms/weixin/media_resources/_media_resource.html.erb +62 -0
  30. data/app/views/eric_weixin/cms/weixin/media_resources/edit.html.erb +20 -0
  31. data/app/views/eric_weixin/cms/weixin/media_resources/index.html.erb +49 -0
  32. data/app/views/eric_weixin/cms/weixin/media_resources/new.html.erb +4 -0
  33. data/app/views/eric_weixin/cms/weixin/url_encodes/_new.html.erb +6 -6
  34. data/app/views/eric_weixin/wz/pays/pay_fail.html.erb +2 -0
  35. data/app/views/eric_weixin/wz/pays/pay_ok.html.erb +2 -0
  36. data/app/views/eric_weixin/wz/pays/prepay.html.erb +49 -0
  37. data/app/views/layouts/eric_weixin/cms/base.html.erb +1 -1
  38. data/app/views/layouts/eric_weixin/wz/pays.html.erb +11 -0
  39. data/config/initializers/assets.rb +1 -1
  40. data/config/initializers/inflections.rb +19 -0
  41. data/config/routes.rb +20 -6
  42. data/config/tinymce.yml +11 -0
  43. data/db/migrate/20150813080541_add_mch_id_to_weixin_public_accounts.rb +5 -0
  44. data/db/migrate/20150817105643_alert_weixin_reply_message_rules_s_reply_message_length.rb +5 -0
  45. data/db/migrate/20150817143407_add_mch_key_to_weixin_public_account.rb +5 -0
  46. data/db/migrate/20150818090435_create_weixin_media_resources.rb +13 -0
  47. data/db/migrate/20150818094553_create_weixin_media_articles.rb +17 -0
  48. data/db/migrate/20150818095654_create_weixin_media_news.rb +18 -0
  49. data/db/migrate/20150818100348_create_weixin_media_articles_news.rb +11 -0
  50. data/db/migrate/20150904045253_add_host_name_to_public_account.rb +5 -0
  51. data/lib/eric_weixin.rb +2 -0
  52. data/lib/eric_weixin/modules/ip.rb +2 -0
  53. data/lib/eric_weixin/modules/pay.rb +31 -0
  54. data/lib/eric_weixin/version.rb +1 -1
  55. metadata +38 -2
@@ -9,6 +9,7 @@ module EricWeixin::Ip
9
9
  # ===调用示例
10
10
  # Ip.is_ip_exist? ip: "127.0.0.1", public_account_id: 1
11
11
  def self.is_ip_exist? options
12
+ return true #TODO 腾讯ip有时候不能获取正常的列表,需要调整研究
12
13
  options[:ip].to_s.to_debug
13
14
  return true if IPLIST[:iplist].include? options[:ip]
14
15
  get_ip_list options
@@ -27,6 +28,7 @@ module EricWeixin::Ip
27
28
  token = ::EricWeixin::AccessToken.get_valid_access_token public_account_id: options[:public_account_id]
28
29
  ips = RestClient.get "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=#{token}"
29
30
  ips = JSON.parse ips.body
31
+ ips.to_debug
30
32
  IPLIST[:iplist] = ips["ip_list"]
31
33
  IPLIST[:update_at] = Time.now
32
34
  end
@@ -0,0 +1,31 @@
1
+ module EricWeixin::Pay
2
+ def self.generate_prepay_id options
3
+ required_field = %i(appid mch_id openid attach body out_trade_no total_fee spbill_create_ip notify_url trade_type)
4
+ query_options = {}
5
+ required_field.each do |p|
6
+ query_options[p] = options[p]
7
+ end
8
+ query_options[:nonce_str] = SecureRandom.uuid.tr('-', '')
9
+ public_account = ::EricWeixin::PublicAccount.find_by_weixin_app_id(options[:appid])
10
+
11
+ sign = generate_sign query_options, public_account.mch_key
12
+ last_query_options = query_options
13
+ last_query_options[:sign] = sign
14
+ pay_load = "<xml>#{last_query_options.map { |k, v| "<#{k.to_s}>#{v.to_s}</#{k.to_s}>" }.join}</xml>"
15
+ require 'rest-client'
16
+
17
+ response = RestClient.post 'https://api.mch.weixin.qq.com/pay/unifiedorder', pay_load
18
+ pp "**********************下单结果 *********************************"
19
+ pp response.force_encoding("UTF-8")
20
+ result = Hash.from_xml(response.force_encoding("UTF-8"))
21
+ return result['xml']['prepay_id'] if result['xml']['return_code'] == 'SUCCESS'
22
+ nil
23
+ end
24
+
25
+ def self.generate_sign options, api_key
26
+ query = options.sort.map do |k,v|
27
+ "#{k.to_s}=#{v.to_s}"
28
+ end.join('&')
29
+ Digest::MD5.hexdigest("#{query}&key=#{api_key}").upcase
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module EricWeixin
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - 刘晓琦
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-09 00:00:00.000000000 Z
11
+ date: 2015-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -43,6 +43,9 @@ files:
43
43
  - app/controllers/eric_weixin/cms/base_controller.rb
44
44
  - app/controllers/eric_weixin/cms/weixin/article_datas_controller.rb
45
45
  - app/controllers/eric_weixin/cms/weixin/customs_service_records_controller.rb
46
+ - app/controllers/eric_weixin/cms/weixin/media_articles_controller.rb
47
+ - app/controllers/eric_weixin/cms/weixin/media_news_controller.rb
48
+ - app/controllers/eric_weixin/cms/weixin/media_resources_controller.rb
46
49
  - app/controllers/eric_weixin/cms/weixin/news_datas_controller.rb
47
50
  - app/controllers/eric_weixin/cms/weixin/public_accounts_controller.rb
48
51
  - app/controllers/eric_weixin/cms/weixin/reply_message_rules_controller.rb
@@ -50,6 +53,7 @@ files:
50
53
  - app/controllers/eric_weixin/cms/weixin/url_encodes_controller.rb
51
54
  - app/controllers/eric_weixin/cms/weixin/users_controller.rb
52
55
  - app/controllers/eric_weixin/cms/weixin/weixin_users_controller.rb
56
+ - app/controllers/eric_weixin/wz/pays_controller.rb
53
57
  - app/controllers/eric_weixin/wz/weixin_controller.rb
54
58
  - app/helpers/eric_weixin/application_helper.rb
55
59
  - app/helpers/eric_weixin/cms/weixin/public_accounts_helper.rb
@@ -57,6 +61,10 @@ files:
57
61
  - app/models/eric_weixin/article.rb
58
62
  - app/models/eric_weixin/article_news.rb
59
63
  - app/models/eric_weixin/customs_service_record.rb
64
+ - app/models/eric_weixin/media_article.rb
65
+ - app/models/eric_weixin/media_article_news.rb
66
+ - app/models/eric_weixin/media_news.rb
67
+ - app/models/eric_weixin/media_resource.rb
60
68
  - app/models/eric_weixin/message_log.rb
61
69
  - app/models/eric_weixin/news.rb
62
70
  - app/models/eric_weixin/public_account.rb
@@ -74,6 +82,19 @@ files:
74
82
  - app/views/eric_weixin/cms/weixin/article_datas/new.html.erb
75
83
  - app/views/eric_weixin/cms/weixin/article_datas/show.html.erb
76
84
  - app/views/eric_weixin/cms/weixin/customs_service_records/index.html.erb
85
+ - app/views/eric_weixin/cms/weixin/media_articles/_media_article.html.erb
86
+ - app/views/eric_weixin/cms/weixin/media_articles/_select_pic.html.erb
87
+ - app/views/eric_weixin/cms/weixin/media_articles/edit.html.erb
88
+ - app/views/eric_weixin/cms/weixin/media_articles/index.html.erb
89
+ - app/views/eric_weixin/cms/weixin/media_articles/new.html.erb
90
+ - app/views/eric_weixin/cms/weixin/media_news/_select_article.html.erb
91
+ - app/views/eric_weixin/cms/weixin/media_news/_select_user.html.erb
92
+ - app/views/eric_weixin/cms/weixin/media_news/_will_send_article.html.erb
93
+ - app/views/eric_weixin/cms/weixin/media_news/new.html.erb
94
+ - app/views/eric_weixin/cms/weixin/media_resources/_media_resource.html.erb
95
+ - app/views/eric_weixin/cms/weixin/media_resources/edit.html.erb
96
+ - app/views/eric_weixin/cms/weixin/media_resources/index.html.erb
97
+ - app/views/eric_weixin/cms/weixin/media_resources/new.html.erb
77
98
  - app/views/eric_weixin/cms/weixin/news_datas/_news_data.html.erb
78
99
  - app/views/eric_weixin/cms/weixin/news_datas/edit.html.erb
79
100
  - app/views/eric_weixin/cms/weixin/news_datas/index.html.erb
@@ -97,11 +118,17 @@ files:
97
118
  - app/views/eric_weixin/cms/weixin/url_encodes/index.html.erb
98
119
  - app/views/eric_weixin/cms/weixin/users/index.html.erb
99
120
  - app/views/eric_weixin/cms/weixin/weixin_users/index.html.erb
121
+ - app/views/eric_weixin/wz/pays/pay_fail.html.erb
122
+ - app/views/eric_weixin/wz/pays/pay_ok.html.erb
123
+ - app/views/eric_weixin/wz/pays/prepay.html.erb
100
124
  - app/views/layouts/eric_weixin/application.html.erb
101
125
  - app/views/layouts/eric_weixin/cms/base.html.erb
102
126
  - app/views/layouts/eric_weixin/weixin/aa.erb
127
+ - app/views/layouts/eric_weixin/wz/pays.html.erb
103
128
  - config/initializers/assets.rb
129
+ - config/initializers/inflections.rb
104
130
  - config/routes.rb
131
+ - config/tinymce.yml
105
132
  - db/migrate/20150610031604_create_weixin_report_user_data.rb
106
133
  - db/migrate/20150610031935_create_weixin_report_news_data.rb
107
134
  - db/migrate/20150610032545_create_weixin_report_msg_data.rb
@@ -115,11 +142,20 @@ files:
115
142
  - db/migrate/20150610090206_create_weixin_user.rb
116
143
  - db/migrate/20150612104303_add_index_to_weixin_message_logs.rb
117
144
  - db/migrate/20150625065249_delete_clomn_weixin_token_from_public_account.rb
145
+ - db/migrate/20150813080541_add_mch_id_to_weixin_public_accounts.rb
146
+ - db/migrate/20150817105643_alert_weixin_reply_message_rules_s_reply_message_length.rb
147
+ - db/migrate/20150817143407_add_mch_key_to_weixin_public_account.rb
148
+ - db/migrate/20150818090435_create_weixin_media_resources.rb
149
+ - db/migrate/20150818094553_create_weixin_media_articles.rb
150
+ - db/migrate/20150818095654_create_weixin_media_news.rb
151
+ - db/migrate/20150818100348_create_weixin_media_articles_news.rb
152
+ - db/migrate/20150904045253_add_host_name_to_public_account.rb
118
153
  - lib/eric_weixin.rb
119
154
  - lib/eric_weixin/engine.rb
120
155
  - lib/eric_weixin/modules/analyze_data.rb
121
156
  - lib/eric_weixin/modules/ip.rb
122
157
  - lib/eric_weixin/modules/mult_customer.rb
158
+ - lib/eric_weixin/modules/pay.rb
123
159
  - lib/eric_weixin/modules/reply_message.rb
124
160
  - lib/eric_weixin/modules/snsapi.rb
125
161
  - lib/eric_weixin/version.rb