fuiou 0.1.1 → 0.1.2

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: 72dfa9486a1fa6c267c40fc3d59a99d56c83b11a2583100e8cdb20844da84550
4
- data.tar.gz: 6a4b2fde41c36b61b76eba7179e985d35d2891aa7f62a5fec11c772513039a90
3
+ metadata.gz: 63ddfaa26a81d4d8b26ca34ea0b9c4d8a79561332faa5c7f28c2f496dfcdc633
4
+ data.tar.gz: 3f208f05b5b18f6b9514ff14ce4ef594d4bf868dde3b9354ebc786e54c0af5fa
5
5
  SHA512:
6
- metadata.gz: 3854f45fe089348f71272c9dce4d4b1d09cbe67b35fca2f5c00b74d1f8bc52a8c662342c452bd3ca4c086e778c0a660ce02655c75655b99a404d517093b6e575
7
- data.tar.gz: 7ca9b032194e67832c9cfd3fb7f2db740162256cd2e45c2bf58029f3fef7c2f5a7d0b0e34df045aa6e5aeb07be0a35e6b4bd05069ae2de5d0aeaaf3ef560028b
6
+ metadata.gz: d27a1b8865e54199e2a60ee7795a003a0972fcb78ca2ea61c6c181943ef80025ca8a579873ffbcd713fbaeda84cac036726d28d6dfb1a912a39cf36f474ae653
7
+ data.tar.gz: b1fc939daa45bda38ef3c0b5f97d4d57a03195f3e123bdb22c270cedaf1e28ac984d6845cc39fa22dfc3b35d5bf943c8d96500787e5e7db89c80e70edaf9b59d
data/lib/fuiou.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'fuiou/result'
3
4
  require 'fuiou/service'
4
5
  require 'fuiou/sign'
5
6
  require 'fuiou/version'
6
- require 'openssl'
7
7
 
8
8
  module Fuiou
9
9
  class << self
@@ -12,7 +12,10 @@ module Fuiou
12
12
  # ins_private_key 机构号私钥
13
13
  # ins_public_key 机构号公钥
14
14
  # notify_url 回调通知地址
15
+ # fuiou_21_url 统一下单地址
16
+ # fuiou_30_url 订单查询地址
15
17
  attr_accessor :mch_id, :notify_url
16
18
  attr_accessor :ins_id, :ins_private_key, :ins_public_key
19
+ attr_accessor :fuiou_21_url, :fuiou_30_url
17
20
  end
18
21
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cgi'
4
+ require 'active_support/core_ext/hash/conversions'
5
+
6
+ module Fuiou
7
+ module Result
8
+ class << self
9
+ def parse(req)
10
+ Hash.from_xml(CGI.unescape(req))["xml"]
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/fuiou/service.rb CHANGED
@@ -7,8 +7,6 @@ require 'active_support/core_ext/hash/conversions'
7
7
 
8
8
  module Fuiou
9
9
  module Service
10
- FUIOU_21_URL = "https://fundwx.fuiou.com/preCreate".freeze
11
- FUIOU_30_URL = "https://fundwx.fuiou.com/commonQuery".freeze
12
10
  ENCODE_TYPE_GBK = "GBK"
13
11
 
14
12
  class << self
@@ -17,7 +15,7 @@ module Fuiou
17
15
  def invoke_pre_create(params)
18
16
  check_required_options(params, INVOKE_PRE_CREATE_REQUIRED_FIELDS)
19
17
  payload = xmlify_payload(params)
20
- invoke_remote(FUIOU_21_URL, { req: payload })
18
+ invoke_remote(Fuiou.fuiou_21_url, { req: payload })
21
19
  end
22
20
 
23
21
  INVOKE_COMMON_QUERY_REQUIRED_FIELDS = %i[version ins_cd mchnt_cd term_id order_type mchnt_order_no random_str]
@@ -25,7 +23,7 @@ module Fuiou
25
23
  def invoke_common_query(params)
26
24
  check_required_options(params, INVOKE_COMMON_QUERY_REQUIRED_FIELDS)
27
25
  payload = xmlify_payload(params)
28
- invoke_remote(FUIOU_30_URL, { req: payload })
26
+ invoke_remote(Fuiou.fuiou_30_url, { req: payload })
29
27
  end
30
28
 
31
29
  private
@@ -39,7 +37,7 @@ module Fuiou
39
37
  charset: ENCODE_TYPE_GBK
40
38
  }
41
39
  )
42
- Hash.from_xml(CGI.unescape(resp.body))["xml"]
40
+ Fuiou::Result.parse(resp.body)
43
41
  end
44
42
 
45
43
  def xmlify_payload(params)
data/lib/fuiou/sign.rb CHANGED
@@ -13,7 +13,6 @@ module Fuiou
13
13
  def rsa_sign(rsa_string)
14
14
  rsa = OpenSSL::PKey::RSA.new(Fuiou.ins_private_key)
15
15
  sign = rsa.sign(SIGN_TYPE_MD5, rsa_string.encode(ENCODE_TYPE_GBK))
16
- Base64.strict_encode64(sign)
17
16
  CGI.escape(Base64.strict_encode64(sign))
18
17
  end
19
18
 
data/lib/fuiou/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fuiou
4
- VERSION = "0.1.1".freeze
4
+ VERSION = "0.1.2".freeze
5
5
  end
data/test/test_helper.rb CHANGED
@@ -8,6 +8,8 @@ require "webmock/minitest"
8
8
  Fuiou.mch_id = "0002900F0370542"
9
9
  Fuiou.notify_url = "http://www.wrx.cn"
10
10
  Fuiou.ins_id = "08A9999999"
11
+ Fuiou.fuiou_21_url = "https://fundwx.fuiou.com/preCreate"
12
+ Fuiou.fuiou_30_url = "https://fundwx.fuiou.com/commonQuery"
11
13
 
12
14
  Fuiou.ins_private_key = "-----BEGIN RSA PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJgAzD8fEvBHQTyxUEeK963mjziMWG7nxpi+pDMdtWiakc6xVhhbaipLaHo4wVI92A2wr3ptGQ1/YsASEHm3m2wGOpT2vrb2Ln/S7lz1ShjTKaT8U6rKgCdpQNHUuLhBQlpJer2mcYEzG/nGzcyalOCgXC/6CySiJCWJmPyR45bJAgMBAAECgYBHFfBvAKBBwIEQ2jeaDbKBIFcQcgoVa81jt5xgz178WXUg/awu3emLeBKXPh2i0YtN87hM/+J8fnt3KbuMwMItCsTD72XFXLM4FgzJ4555CUCXBf5/tcKpS2xT8qV8QDr8oLKA18sQxWp8BMPrNp0epmwun/gwgxoyQrJUB5YgZQJBAOiVXHiTnc3KwvIkdOEPmlfePFnkD4zzcv2UwTlHWgCyM/L8SCAFclXmSiJfKSZZS7o0kIeJJ6xe3Mf4/HSlhdMCQQCnTow+TnlEhDTPtWa+TUgzOys83Q/VLikqKmDzkWJ7I12+WX6AbxxEHLD+THn0JGrlvzTEIZyCe0sjQy4LzQNzAkEAr2SjfVJkuGJlrNENSwPHMugmvusbRwH3/38ET7udBdVdE6poga1Z0al+0njMwVypnNwy+eLWhkhrWmpLh3OjfQJAI3BV8JS6xzKh5SVtn/3Kv19XJ0tEIUnn2lCjvLQdAixZnQpj61ydxie1rggRBQ/5vLSlvq3H8zOelNeUF1fT1QJADNo+tkHVXLY9H2kdWFoYTvuLexHAgrsnHxONOlSA5hcVLd1B3p9utOt3QeDf6x2i1lqhTH2w8gzjvsnx13tWqg==\n-----END RSA PRIVATE KEY-----\n"
13
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fuiou
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - wen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-11 00:00:00.000000000 Z
11
+ date: 2021-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -89,6 +89,7 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - Rakefile
91
91
  - lib/fuiou.rb
92
+ - lib/fuiou/result.rb
92
93
  - lib/fuiou/service.rb
93
94
  - lib/fuiou/sign.rb
94
95
  - lib/fuiou/version.rb