wx_pay 0.16.1 → 0.17.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 +5 -5
- data/lib/wx_pay/service.rb +78 -3
- data/lib/wx_pay/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 161782a3a1d52339e8ff2e0f3bfc408071fca7452e0390832e78af0294154f19
|
4
|
+
data.tar.gz: b8251fb2072d5dda662e27e7f2e27d88a785f5cb0737dca9c1f955817ad1f07c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f14c5ff39a759e960b3578f68a94a6120cef8b69fc9ed5349b40182f493b733999064fdb0105e1f525283146fbf3ea96e90381b38d1f2fbf5eca018dd3a88d26
|
7
|
+
data.tar.gz: aad7882af734bafc4e3bca5a91f49dd1442726a42ca31e041cdc6b005b9d4d7bde6e9feba91b13b37ce0532692b17a8419feb64e03bff3239ead289694a7d97d
|
data/lib/wx_pay/service.rb
CHANGED
@@ -8,6 +8,7 @@ module WxPay
|
|
8
8
|
module Service
|
9
9
|
GATEWAY_URL = 'https://api.mch.weixin.qq.com'.freeze
|
10
10
|
SANDBOX_GATEWAY_URL = 'https://api.mch.weixin.qq.com/sandboxnew'.freeze
|
11
|
+
FRAUD_GATEWAY_URL = 'https://fraud.mch.weixin.qq.com'.freeze
|
11
12
|
|
12
13
|
def self.generate_authorize_url(redirect_uri, state = nil)
|
13
14
|
state ||= SecureRandom.hex 16
|
@@ -124,6 +125,7 @@ module WxPay
|
|
124
125
|
params = {
|
125
126
|
appid: options.delete(:appid) || WxPay.appid,
|
126
127
|
mch_id: options.delete(:mch_id) || WxPay.mch_id,
|
128
|
+
key: options.delete(:key) || WxPay.key,
|
127
129
|
nonce_str: SecureRandom.uuid.tr('-', ''),
|
128
130
|
}.merge(params)
|
129
131
|
|
@@ -167,7 +169,8 @@ module WxPay
|
|
167
169
|
params = {
|
168
170
|
mch_appid: options.delete(:appid) || WxPay.appid,
|
169
171
|
mchid: options.delete(:mch_id) || WxPay.mch_id,
|
170
|
-
nonce_str: SecureRandom.uuid.tr('-', '')
|
172
|
+
nonce_str: SecureRandom.uuid.tr('-', ''),
|
173
|
+
key: options.delete(:key) || WxPay.key
|
171
174
|
}.merge(params)
|
172
175
|
|
173
176
|
check_required_options(params, INVOKE_TRANSFER_REQUIRED_FIELDS)
|
@@ -190,7 +193,8 @@ module WxPay
|
|
190
193
|
params = {
|
191
194
|
appid: options.delete(:appid) || WxPay.appid,
|
192
195
|
mch_id: options.delete(:mch_id) || WxPay.mch_id,
|
193
|
-
nonce_str: SecureRandom.uuid.tr('-', '')
|
196
|
+
nonce_str: SecureRandom.uuid.tr('-', ''),
|
197
|
+
key: options.delete(:key) || WxPay.key
|
194
198
|
}.merge(params)
|
195
199
|
|
196
200
|
check_required_options(params, GETTRANSFERINFO_FIELDS)
|
@@ -208,6 +212,75 @@ module WxPay
|
|
208
212
|
r
|
209
213
|
end
|
210
214
|
|
215
|
+
# 获取加密银行卡号和收款方用户名的RSA公钥
|
216
|
+
def self.risk_get_public_key(options = {})
|
217
|
+
params = {
|
218
|
+
mch_id: options.delete(:mch_id) || WxPay.mch_id,
|
219
|
+
nonce_str: SecureRandom.uuid.tr('-', ''),
|
220
|
+
key: options.delete(:key) || WxPay.key,
|
221
|
+
sign_type: 'MD5'
|
222
|
+
}
|
223
|
+
|
224
|
+
options = {
|
225
|
+
ssl_client_cert: options.delete(:apiclient_cert) || WxPay.apiclient_cert,
|
226
|
+
ssl_client_key: options.delete(:apiclient_key) || WxPay.apiclient_key,
|
227
|
+
verify_ssl: OpenSSL::SSL::VERIFY_NONE,
|
228
|
+
gateway_url: FRAUD_GATEWAY_URL
|
229
|
+
}.merge(options)
|
230
|
+
|
231
|
+
r = WxPay::Result.new(Hash.from_xml(invoke_remote("/risk/getpublickey", make_payload(params), options)))
|
232
|
+
|
233
|
+
yield r if block_given?
|
234
|
+
|
235
|
+
r
|
236
|
+
end
|
237
|
+
|
238
|
+
PAY_BANK_FIELDS = [:enc_bank_no, :enc_true_name, :bank_code, :amount, :desc]
|
239
|
+
def self.pay_bank(params, options = {})
|
240
|
+
params = {
|
241
|
+
mch_id: options.delete(:mch_id) || WxPay.mch_id,
|
242
|
+
nonce_str: SecureRandom.uuid.tr('-', ''),
|
243
|
+
key: options.delete(:key) || WxPay.key,
|
244
|
+
}.merge(params)
|
245
|
+
|
246
|
+
check_required_options(params, PAY_BANK_FIELDS)
|
247
|
+
|
248
|
+
options = {
|
249
|
+
ssl_client_cert: options.delete(:apiclient_cert) || WxPay.apiclient_cert,
|
250
|
+
ssl_client_key: options.delete(:apiclient_key) || WxPay.apiclient_key,
|
251
|
+
verify_ssl: OpenSSL::SSL::VERIFY_NONE
|
252
|
+
}.merge(options)
|
253
|
+
|
254
|
+
r = WxPay::Result.new(Hash.from_xml(invoke_remote("/mmpaysptrans/pay_bank", make_payload(params), options)))
|
255
|
+
|
256
|
+
yield r if block_given?
|
257
|
+
|
258
|
+
r
|
259
|
+
end
|
260
|
+
|
261
|
+
QUERY_BANK_FIELDS = [:partner_trade_no]
|
262
|
+
def self.query_bank(params, options = {})
|
263
|
+
params = {
|
264
|
+
mch_id: options.delete(:mch_id) || WxPay.mch_id,
|
265
|
+
nonce_str: SecureRandom.uuid.tr('-', ''),
|
266
|
+
key: options.delete(:key) || WxPay.key,
|
267
|
+
}.merge(params)
|
268
|
+
|
269
|
+
check_required_options(params, QUERY_BANK_FIELDS)
|
270
|
+
|
271
|
+
options = {
|
272
|
+
ssl_client_cert: options.delete(:apiclient_cert) || WxPay.apiclient_cert,
|
273
|
+
ssl_client_key: options.delete(:apiclient_key) || WxPay.apiclient_key,
|
274
|
+
verify_ssl: OpenSSL::SSL::VERIFY_NONE
|
275
|
+
}.merge(options)
|
276
|
+
|
277
|
+
r = WxPay::Result.new(Hash.from_xml(invoke_remote("/mmpaysptrans/query_bank", make_payload(params), options)))
|
278
|
+
|
279
|
+
yield r if block_given?
|
280
|
+
|
281
|
+
r
|
282
|
+
end
|
283
|
+
|
211
284
|
INVOKE_REVERSE_REQUIRED_FIELDS = [:out_trade_no]
|
212
285
|
def self.invoke_reverse(params, options = {})
|
213
286
|
params = {
|
@@ -371,11 +444,13 @@ module WxPay
|
|
371
444
|
|
372
445
|
def invoke_remote(url, payload, options = {})
|
373
446
|
options = WxPay.extra_rest_client_options.merge(options)
|
447
|
+
gateway_url = options.delete(:gateway_url) || get_gateway_url
|
448
|
+
url = "#{gateway_url}#{url}"
|
374
449
|
|
375
450
|
RestClient::Request.execute(
|
376
451
|
{
|
377
452
|
method: :post,
|
378
|
-
url:
|
453
|
+
url: url,
|
379
454
|
payload: payload,
|
380
455
|
headers: { content_type: 'application/xml' }
|
381
456
|
}.merge(options)
|
data/lib/wx_pay/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wx_pay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jasl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -132,12 +132,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
132
|
version: '0'
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
135
|
+
rubygems_version: 2.7.4
|
136
136
|
signing_key:
|
137
137
|
specification_version: 4
|
138
138
|
summary: An unofficial simple wechat pay gem
|
139
139
|
test_files:
|
140
140
|
- test/test_helper.rb
|
141
|
+
- test/wx_pay/sign_test.rb
|
141
142
|
- test/wx_pay/result_test.rb
|
142
143
|
- test/wx_pay/service_test.rb
|
143
|
-
- test/wx_pay/sign_test.rb
|