mini_program 0.3.0 → 0.7.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.
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