mini_program 0.3.0 → 0.7.0

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: 9e2c0b3867e69b14bd0b48c77f4ef511a50c3eeda45bfac4bdcfd41c9fa69eb7
4
- data.tar.gz: 9a35b4627a3c00b3081ae16ab99a1fac3b31fc786466c3bce50fabe5f0391cc8
3
+ metadata.gz: 531964b9adaef42289c3a113f8ab443d0cdef8e21768c039978a3c331c99918b
4
+ data.tar.gz: 32c3cfc3299844288904f8ef4650ee13a960f05a9a3c28c1fa6782bf68dbcdd2
5
5
  SHA512:
6
- metadata.gz: aa7101d925adebb94374f8677848c8dfb75868aacc14719a09c75639e22cb771c0ef6511edcd24868a220985eaf06ccdf761d4eda5b48c045329ed529c413387
7
- data.tar.gz: b82d829d7eb32aac1a2a6f0d6f161d5f40932562bc976504516d9a10619ab509a0b51b3da0ea6c41c128fc227488e4f8618913f9ddf9a839dd2b22b75a843018
6
+ metadata.gz: 29d604fdfe44aa2f0f48b04d91724d0af1bde9350197510a9e4342232fec99557c4353e7bf9539d6ee0a95120bb6cc86254362564e68d6f019d4b5910ddd2f03
7
+ data.tar.gz: 30d0ffd3efbe1f28067297a48b0c6a859e07c5c58cad5f7adf1becba25d350bf7b91f5fc7e210fd740ac2669d5559faa559b7b9ec578b1d677fc679486854a60
data/README.md CHANGED
@@ -51,7 +51,10 @@ iv = "5tiyfVEHNVgHN4n8lzDrUA=="
51
51
  result = mp.get_phone_num(code: code, encrypted_data: encrypted_data, iv: iv)
52
52
 
53
53
  if result.success?
54
- phone_num = result[:phone_num]
54
+ phone_num = result.data[:phone]
55
+
56
+ # 或者直接使用 [] 方法获取
57
+ # phone_num = result[:phone_num]
55
58
  end
56
59
 
57
60
  ```
@@ -81,7 +84,7 @@ msg = MiniProgram::Msg.new(:progress, {
81
84
  })
82
85
 
83
86
  # send_to 的参数可以是 openid(字符串),或者是带有 open_id 方法的对象,返回 MiniProgram::ServiceResult
84
- result msg.send_to("ogT7J5YddGnll-ippRvJq62Nv5W0")
87
+ result = msg.send_to("ogT7J5YddGnll-ippRvJq62Nv5W0")
85
88
 
86
89
  # or
87
90
  user = User.first
@@ -52,13 +52,13 @@ module MiniProgram
52
52
 
53
53
  result = JSON.parse(response)
54
54
 
55
- if result["errcode"].present?
55
+ if result["errcode"].to_s != "0"
56
56
  logger.error <<~ERROR
57
57
  Get access token failed.
58
58
  api: #{api}
59
59
  error: #{result}
60
60
  ERROR
61
- return MiniProgram::ServiceResult.new(success: false, data: result, message: result["errmsg"])
61
+ return MiniProgram::ServiceResult.new(success: false, errors: result, message: result["errmsg"])
62
62
  end
63
63
 
64
64
  MiniProgram::ServiceResult.new(success: true, data: result)
@@ -80,7 +80,7 @@ module MiniProgram
80
80
 
81
81
  result = JSON.parse(response)
82
82
 
83
- if result["errcode"]
83
+ if result["errcode"].to_s != "0"
84
84
  logger.error <<~ERROR
85
85
  Get session key failed.
86
86
  api: #{api}
@@ -109,10 +109,44 @@ module MiniProgram
109
109
  api = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=#{get_token_result["access_token"]}"
110
110
  result = post(api, payload)
111
111
 
112
+ if result["errcode"].to_s != "0"
113
+ msg_logger.error {"{params: #{payload}, response: #{result}}"}
114
+ return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
115
+ end
116
+
112
117
  msg_logger.info {"{params: #{payload}, response: #{result}}"}
113
118
  MiniProgram::ServiceResult.new(success: true, data: result)
114
119
  end
115
120
 
121
+ # 「发送统一服务消息」
122
+ # 统一服务消息原本是可以从调用小程序的 api ,通过用户小程序的 openid 发送模板消息到小程序和公众号那里去,
123
+ # 现在小程序的模板消息功能关闭了,就只剩下发送模板消息到公众号这个功能了
124
+ #
125
+ def send_uniform_msg(msg, to: )
126
+ open_id = to.try(:open_id) || to
127
+
128
+ payload = msg.as_json
129
+
130
+ get_token_result = get_access_token
131
+ if get_access_token.failure?
132
+ return get_token_result
133
+ end
134
+
135
+ api = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=#{get_token_result["access_token"]}"
136
+ result = post(api, {
137
+ touser: open_id,
138
+ mp_template_msg: payload
139
+ })
140
+
141
+ if result["errcode"].to_s != "0"
142
+ msg_logger.error {"{params: #{payload}, response: #{result}}"}
143
+ return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
144
+ end
145
+
146
+ msg_logger.info { "{params: #{payload}, response: #{result}}"}
147
+ MiniProgram::ServiceResult.new(success: true, data: result)
148
+ end
149
+
116
150
  # 获取用户手机号
117
151
  def get_phone_num(code:, encrypted_data:, iv:)
118
152
  login_result = login(code)
@@ -1,3 +1,3 @@
1
1
  module MiniProgram
2
- VERSION = '0.3.0'
2
+ VERSION = '0.7.0'
3
3
  end
@@ -15,7 +15,7 @@ module MiniProgram
15
15
  data: {})
16
16
  self.success = success
17
17
  self.data = (data.presence || {}).with_indifferent_access
18
- self.errors = errors.is_a?(Enumerable) ? errors : [errors]
18
+ self.errors = errors.is_a?(Array) ? errors : [errors]
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.3.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-20 00:00:00.000000000 Z
11
+ date: 2021-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails