wx_pay 0.11.0 → 0.12.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 +4 -4
- data/lib/wx_pay.rb +1 -1
- data/lib/wx_pay/service.rb +22 -2
- data/lib/wx_pay/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 509e50b1a6926828e434a63bf8621fd853709ac0
|
4
|
+
data.tar.gz: fee8d3226f9576f72209bcc74ed02b514483ecc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 448dbfed70032ce996f2ec727f2af69ac2c2d9a0e03ee01baa4ec91a9f8b87c5dbd7340b5c6255fd216d8cb86c508d015c989abee0b3b707783e2ac5de4e54ed
|
7
|
+
data.tar.gz: b203b3950ff9663896e8d4cde3ad2042cd525a418be4e4f0bc0978fb00fb5ab3c1a5a42810623f9b9ea25f0533950e9361dab8ca69b5b0d9a699b7a2ac44bf3f
|
data/lib/wx_pay.rb
CHANGED
@@ -8,7 +8,7 @@ module WxPay
|
|
8
8
|
@debug_mode = true
|
9
9
|
|
10
10
|
class<< self
|
11
|
-
attr_accessor :appid, :mch_id, :key, :extra_rest_client_options, :debug_mode
|
11
|
+
attr_accessor :appid, :mch_id, :key, :appsecret, :extra_rest_client_options, :debug_mode
|
12
12
|
attr_reader :apiclient_cert, :apiclient_key
|
13
13
|
|
14
14
|
def set_apiclient_by_pkcs12(str, pass)
|
data/lib/wx_pay/service.rb
CHANGED
@@ -1,10 +1,30 @@
|
|
1
1
|
require 'rest_client'
|
2
|
+
require 'json'
|
3
|
+
require 'cgi'
|
4
|
+
require 'securerandom'
|
2
5
|
require 'active_support/core_ext/hash/conversions'
|
3
6
|
|
4
7
|
module WxPay
|
5
8
|
module Service
|
6
9
|
GATEWAY_URL = 'https://api.mch.weixin.qq.com'
|
7
10
|
|
11
|
+
def self.generate_authorize_url(redirect_uri, state = nil)
|
12
|
+
state ||= SecureRandom.hex 16
|
13
|
+
"https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{WxPay.appid}&redirect_uri=#{CGI::escape redirect_uri}&response_type=code&scope=snsapi_base&state=#{state}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.authenticate(authorization_code, options = {})
|
17
|
+
options = WxPay.extra_rest_client_options.merge(options)
|
18
|
+
url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#{WxPay.appid}&secret=#{WxPay.appsecret}&code=#{authorization_code}&grant_type=authorization_code"
|
19
|
+
|
20
|
+
::JSON.parse(RestClient::Request.execute(
|
21
|
+
{
|
22
|
+
method: :get,
|
23
|
+
url: url
|
24
|
+
}.merge(options)
|
25
|
+
), quirks_mode: true)
|
26
|
+
end
|
27
|
+
|
8
28
|
INVOKE_UNIFIEDORDER_REQUIRED_FIELDS = [:body, :out_trade_no, :total_fee, :spbill_create_ip, :notify_url, :trade_type]
|
9
29
|
def self.invoke_unifiedorder(params, options = {})
|
10
30
|
params = {
|
@@ -193,9 +213,9 @@ module WxPay
|
|
193
213
|
nonce_str: SecureRandom.uuid.tr('-', '')
|
194
214
|
}.merge(params)
|
195
215
|
|
196
|
-
check_required_options(params, ORDER_QUERY_REQUIRED_FIELDS)
|
197
216
|
|
198
217
|
r = WxPay::Result.new(Hash.from_xml(invoke_remote("#{GATEWAY_URL}/pay/orderquery", make_payload(params), options)))
|
218
|
+
check_required_options(params, ORDER_QUERY_REQUIRED_FIELDS)
|
199
219
|
|
200
220
|
yield r if block_given?
|
201
221
|
|
@@ -267,7 +287,7 @@ module WxPay
|
|
267
287
|
private
|
268
288
|
|
269
289
|
def check_required_options(options, names)
|
270
|
-
return
|
290
|
+
return unless WxPay.debug_mode?
|
271
291
|
names.each do |name|
|
272
292
|
warn("WxPay Warn: missing required option: #{name}") unless options.has_key?(name)
|
273
293
|
end
|
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.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jasl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|