mini_program 0.10.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b6b0f269a1a426f83bacbf5257dae849d4fe4572f767e27acf30ba6cb03eb93
4
- data.tar.gz: 446d8d31ec3c4191ce89c1b6828ae30d37cb564b82fdcb26085ad5cd4e468aa3
3
+ metadata.gz: 0c391213117d9d3978a0b1f466851236d2752a735b16b64f319b062909aa3a0b
4
+ data.tar.gz: f094303a749a75013fe60064ee7788168493f4c467e20a2a01e5cc9b644ccce8
5
5
  SHA512:
6
- metadata.gz: e7d0d588b54601429f8491c88014ab6154d764d985a80295e046ad6f11df77eaf40a5b5c8d3a75701d0dbebe8b45d63761fc8c90b1791879c62d38e9f6b0bcb7
7
- data.tar.gz: 66b5c55fbe64302ebed24e17d9bac0e78bcefdceea7be09b19656d57fd9e8a3e93ccc92521fbb6d26ba70e233fc0665e5b1a87b3db18c345b7b53e8cd6f8d406
6
+ metadata.gz: 5d8ea19affc522a1f2080360ec068c553d779bf39a6c2d3e5315259a20ee7762a31ed8f1cb1afd2e9b7f89aa69e31f8568a9d33033e485febe569aa0e3ca6830
7
+ data.tar.gz: 16ad088437eb8c3d880f2cab92b0b794fd3ea5cd2b78dd82044690041f219f3ad4a728882b2f69c1cfdefd9d1299c0167b06ef144578b1f2b99e2c3de040e7e6
data/README.md CHANGED
@@ -32,7 +32,7 @@ mp = MiniProgram::Client.new
32
32
  # code 是在小程序端调用 wx.login 拿到的
33
33
  result = mp.login(code)
34
34
  if result.success?
35
- open_id = result.data[:openid]
35
+ openid = result.data[:openid]
36
36
  session_key = result.data[:session_key]
37
37
  end
38
38
  ```
@@ -71,11 +71,11 @@ end
71
71
  # page: "/pages/index/index"
72
72
  # data:
73
73
  # thing2:
74
- # value: "%{title}"
75
- # phrase4:
76
- # value: "%{state}"
77
- # thing1:
78
- # value: "%{detail}"
74
+ # value: "%{title}"
75
+ # phrase4:
76
+ # value: "%{state}"
77
+ # thing1:
78
+ # value: "%{detail}"
79
79
 
80
80
  msg = MiniProgram::Msg.new(:progress, {
81
81
  title: "测试",
@@ -83,12 +83,12 @@ msg = MiniProgram::Msg.new(:progress, {
83
83
  detail: "测试已完成"
84
84
  })
85
85
 
86
- # send_to 的参数可以是 openid(字符串),或者是带有 open_id 方法的对象,返回 MiniProgram::ServiceResult
86
+ # send_to 的参数可以是 openid(字符串),或者是带有 openid 方法的对象,返回 MiniProgram::ServiceResult
87
87
  result = msg.send_to("ogT7J5YddGnll-ippRvJq62Nv5W0")
88
88
 
89
89
  # or
90
90
  user = User.first
91
- user.open_id # => ogT7J5YddGnll-ippRvJq62Nv5W0
91
+ user.openid # => ogT7J5YddGnll-ippRvJq62Nv5W0
92
92
  result = msg.send_to(user)
93
93
 
94
94
  if result.success?
@@ -1,4 +1,7 @@
1
1
  module MiniProgram
2
- class ApplicationController < ActionController::Base
2
+ class ApplicationController < ApplicationController
3
+ include AbstractController::Helpers
4
+ include ActionController::Cookies
5
+
3
6
  end
4
7
  end
@@ -2,18 +2,22 @@ require_dependency "mini_program/application_controller"
2
2
 
3
3
  module MiniProgram
4
4
  class WechatController < ApplicationController
5
- skip_forgery_protection
5
+ skip_forgery_protection if respond_to? :skip_forgery_protection
6
6
 
7
7
  # POST /wechat/login
8
8
  def login
9
9
  result = MiniProgram::Client.new.login(params["code"])
10
10
 
11
11
  if result.success?
12
- cookies.signed[:open_id] = result.data["openid"]
12
+ cookies.signed[:openid] = result.data["openid"]
13
13
  cookies.signed[:session_key] = result.data["session_key"]
14
+ cookies.signed[:options] = params[:options].permit!
15
+
16
+ after_mp_login if respond_to? :after_mp_login
17
+
14
18
  render json: current_mp_user
15
19
  else
16
- render json: { errors: result.errors }
20
+ render json: { error: result.error }
17
21
  end
18
22
  end
19
23
 
@@ -27,7 +31,7 @@ module MiniProgram
27
31
 
28
32
  render json: result.data
29
33
  else
30
- render json: { errors: result.errors }
34
+ render json: { error: result.error }
31
35
  end
32
36
  end
33
37
  end
@@ -1,10 +1,21 @@
1
1
 
2
2
 
3
- ActionController::Base.class_eval do
3
+ ActionController::Base.class_eval do
4
4
  def current_mp_user
5
5
  MiniProgram::User.new(open_id: cookies.signed[:open_id],
6
6
  nickname: cookies.signed[:nickname],
7
7
  phone_num: cookies.signed[:phone_num],
8
- session_key: cookies.signed[:session_key])
8
+ session_key: cookies.signed[:session_key],
9
+ options: cookies.signed[:options])
10
+ end
11
+ end
12
+
13
+ ActionController::API.class_eval do
14
+ def current_mp_user
15
+ MiniProgram::User.new(open_id: cookies.signed[:open_id],
16
+ nickname: cookies.signed[:nickname],
17
+ phone_num: cookies.signed[:phone_num],
18
+ session_key: cookies.signed[:session_key],
19
+ options: cookies.signed[:options])
9
20
  end
10
21
  end
@@ -58,7 +58,7 @@ module MiniProgram
58
58
  api: #{api}
59
59
  error: #{result}
60
60
  ERROR
61
- return MiniProgram::ServiceResult.new(success: false, errors: result, message: result["errmsg"])
61
+ return MiniProgram::ServiceResult.new(success: false, error: result, message: result["errmsg"])
62
62
  end
63
63
 
64
64
  MiniProgram::ServiceResult.new(success: true, data: result)
@@ -80,13 +80,13 @@ module MiniProgram
80
80
 
81
81
  result = JSON.parse(response)
82
82
 
83
- if result["errcode"].to_s != "0"
83
+ if result["errcode"] && result["errcode"].to_s != "0"
84
84
  logger.error <<~ERROR
85
85
  Get session key failed.
86
86
  api: #{api}
87
87
  result: #{result}
88
88
  ERROR
89
- return MiniProgram::ServiceResult.new(errors: result, message: result["errmsg"])
89
+ return MiniProgram::ServiceResult.new(error: result, message: result["errmsg"])
90
90
  end
91
91
 
92
92
  MiniProgram::ServiceResult.new(success: true, data: result)
@@ -94,11 +94,11 @@ module MiniProgram
94
94
 
95
95
  # 发送订阅消息
96
96
  # @param [MiniProgram::Msg] msg
97
- # @param [String] to 用户的open id
97
+ # @param [String] to 用户的openid
98
98
  def send_msg(msg, to: )
99
- open_id = to.try(:open_id) || to
99
+ openid = to.try(:openid) || to
100
100
 
101
- payload = msg.as_json.merge!(touser: open_id)
101
+ payload = msg.as_json.merge!(touser: openid)
102
102
 
103
103
  # 获取 access_token
104
104
  get_token_result = get_access_token
@@ -111,7 +111,7 @@ module MiniProgram
111
111
 
112
112
  if result["errcode"].to_s != "0"
113
113
  msg_logger.error {"{params: #{payload}, response: #{result}}"}
114
- return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
114
+ return MiniProgram::ServiceResult.new(success: false, error: result)
115
115
  end
116
116
 
117
117
  msg_logger.info {"{params: #{payload}, response: #{result}}"}
@@ -123,7 +123,7 @@ module MiniProgram
123
123
  # 现在小程序的模板消息功能关闭了,就只剩下发送模板消息到公众号这个功能了
124
124
  #
125
125
  def send_uniform_msg(msg, to: )
126
- open_id = to.try(:open_id) || to
126
+ openid = to.try(:openid) || to
127
127
 
128
128
  payload = msg.as_json
129
129
 
@@ -134,13 +134,13 @@ module MiniProgram
134
134
 
135
135
  api = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=#{get_token_result["access_token"]}"
136
136
  result = post(api, {
137
- touser: open_id,
137
+ touser: openid,
138
138
  mp_template_msg: payload
139
139
  })
140
140
 
141
141
  if result["errcode"].to_s != "0"
142
142
  msg_logger.error {"{params: #{payload}, response: #{result}}"}
143
- return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
143
+ return MiniProgram::ServiceResult.new(success: false, error: result["errmsg"])
144
144
  end
145
145
 
146
146
  msg_logger.info { "{params: #{payload}, response: #{result}}"}
@@ -152,7 +152,7 @@ module MiniProgram
152
152
  login_result = login(code)
153
153
  return login_result if login_result.failure?
154
154
 
155
- open_id = login_result.data[:openid]
155
+ openid = login_result.data[:openid]
156
156
  session_key = login_result.data[:session_key]
157
157
 
158
158
  data = decrypt_phone_data(encrypted_data, iv, session_key)
@@ -162,7 +162,7 @@ module MiniProgram
162
162
  MiniProgram::ServiceResult.new(
163
163
  success: true,
164
164
  data: {
165
- openid: open_id,
165
+ openid: openid,
166
166
  phone_num: phone_num
167
167
  })
168
168
  end
@@ -234,4 +234,4 @@ module MiniProgram
234
234
  end
235
235
 
236
236
  end
237
- end
237
+ end
@@ -1,14 +1,16 @@
1
1
 
2
2
  class MiniProgram::User
3
- attr_accessor :open_id, :nickname, :phone_num, :session_key
4
-
3
+ attr_accessor :open_id, :nickname, :phone_num, :session_key, :options
4
+
5
5
  def initialize(open_id: :blank_open_id,
6
6
  nickname: :blank_nickname,
7
7
  phone_num: :blank_phone_num,
8
- session_key: :blank_session_key)
8
+ session_key: :blank_session_key,
9
+ options: nil)
9
10
  @open_id = open_id
10
11
  @nickname = nickname
11
12
  @phone_num = phone_num
12
13
  @session_key = session_key
14
+ @options = options
13
15
  end
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module MiniProgram
2
- VERSION = '0.10.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  module MiniProgram
2
2
  class ServiceResult
3
3
  attr_accessor :success,
4
- :errors,
4
+ :error,
5
5
  :data,
6
6
  :message,
7
7
  :message_type
@@ -9,13 +9,13 @@ module MiniProgram
9
9
  delegate :[], :[]=, to: :data
10
10
 
11
11
  def initialize(success: false,
12
- errors: nil,
12
+ error: nil,
13
13
  message: nil,
14
14
  message_type: nil,
15
15
  data: {})
16
16
  self.success = success
17
17
  self.data = (data.presence || {}).with_indifferent_access
18
- self.errors = errors.is_a?(Array) ? errors : [errors]
18
+ self.error = error
19
19
  self.message = message
20
20
  self.message_type = message_type
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_program
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-09 00:00:00.000000000 Z
11
+ date: 2021-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails