allpay 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 9b3a0957cdad73d9724b4d7106ba3f8124e14dd3
4
- data.tar.gz: 43b9aeec0c8649e309f7b54ecd36a4a35c90b853
3
+ metadata.gz: 4ad2949ec1d520b6c53ec6ef0216bd5c27a9f6f6
4
+ data.tar.gz: 53a05c5ff488e4e977d426099d311b9fc6795845
5
5
  SHA512:
6
- metadata.gz: cccf241c5d0c56716d7d57a4cebb83e449906f66a5fcb2068e9a35e67d77e8a78846018f15a06ab7c5c56dad4896d17b33c9af8844f3b61e28e46a7143a3345c
7
- data.tar.gz: f2153042784c7a9d194b7152f39b83599a66a93ff4b966e1e015642372823a51065da23112e27b04c3e22907141fef8f9b82e8fcdfb6bb765738197bb4236f96
6
+ metadata.gz: 0bc82207a82d45b7e703ab6aea65ef8ab012b3acc95b6e263d88e342415d91d14bda7c0b83e7b6a300a353445ecdd4c06f2faceb3307e02ae7b772e6a9a0a1ec
7
+ data.tar.gz: 6af50f7de0741062167ce0f09c3db56ae9a3cecb388632f95bbeb3f7ab2dcf7ef5d31e8e28792ec2affca480fd0b6bcd1051e20a154126e09391a1c68235c757
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake"
23
- spec.add_runtime_dependency 'nori', '~> 2.4.0'
22
+ spec.add_development_dependency "rake", '~> 0'
23
+ spec.add_runtime_dependency 'nori', '~> 2.4.0', '>= 2.4.0'
24
24
  spec.add_runtime_dependency 'gyoku', '~> 1.0'
25
- spec.add_runtime_dependency 'addressable', '~> 2.3.6'
25
+ spec.add_runtime_dependency 'addressable', '~> 2.3.6', '>= 2.3.6'
26
26
  end
@@ -31,7 +31,7 @@ module Allpay
31
31
 
32
32
  def get_vaccount(options = {})
33
33
  has_key?
34
- enc_data = encrypt_data(@key, @iv, {
34
+ enc_data = Client.encrypt_data(@key, @iv, {
35
35
  'MerchantID' => merchant_id,
36
36
  'MerchantTradeNo' => options[:merchant_trade_no] || SecureRandom.hex(10),
37
37
  'MerchantTradeDate' => options[:merchant_trade_date] || Time.now.strftime('%Y/%m/%d %H:%M:%S'),
@@ -43,7 +43,7 @@ module Allpay
43
43
  })
44
44
 
45
45
  begin
46
- result = parse_xml(get('/payment/Srv/gateway', {"MerchantID" => merchant_id, "PaymentType" => "vAccount", "XMLData" => enc_data}))
46
+ result = Client.parse_xml(get('/payment/Srv/gateway', {"MerchantID" => merchant_id, "PaymentType" => "vAccount", "XMLData" => enc_data}))
47
47
  rescue => e
48
48
  response = e
49
49
  end
@@ -53,11 +53,29 @@ module Allpay
53
53
 
54
54
  def get_vaccount_callback(xmldata)
55
55
  has_key?
56
- result = parse_xml(decrypt_data(@key, @iv, xmldata))
56
+ result = Client.decrypt_data(@key, @iv, xmldata)
57
57
  [result["RtnCode"].to_i, result]
58
58
  end
59
59
 
60
+ def self.decrypt_data(key, iv, data)
61
+ cipher = OpenSSL::Cipher::AES128.new(:CBC).decrypt
62
+ cipher.key = key
63
+ cipher.iv = iv
64
+ Client.parse_xml(cipher.update(Base64.decode64(data.gsub(" ","+"))) + cipher.final)
65
+ end
60
66
 
67
+ def self.encrypt_data(key, iv, data)
68
+ data = Gyoku.xml({"Root" => { "Data" => data}})
69
+ cipher = OpenSSL::Cipher::AES128.new(:CBC).encrypt
70
+ cipher.key = key
71
+ cipher.iv = iv
72
+
73
+ Base64.encode64(cipher.update(data) + cipher.final).gsub("\n","")
74
+ end
75
+
76
+ def self.parse_xml(data)
77
+ Nori.new.parse(data)["Root"]["Data"]
78
+ end
61
79
  private
62
80
 
63
81
  def has_key?
@@ -72,24 +90,5 @@ module Allpay
72
90
  open("http://#{api}/#{path}?#{uri.query}").read
73
91
  end
74
92
 
75
- def encrypt_data(key, iv, data)
76
- data = Gyoku.xml({"Root" => { "Data" => data}})
77
- cipher = OpenSSL::Cipher::AES128.new(:CBC).encrypt
78
- cipher.key = key
79
- cipher.iv = iv
80
-
81
- Base64.encode64(cipher.update(data) + cipher.final).gsub("\n","")
82
- end
83
-
84
- def decrypt_data(key, iv, data)
85
- cipher = OpenSSL::Cipher::AES128.new(:CBC).decrypt
86
- cipher.key = key
87
- cipher.iv = iv
88
- cipher.update(Base64.decode64(data.gsub(" ","+"))) + cipher.final
89
- end
90
-
91
- def parse_xml(data)
92
- Nori.new.parse(data)["Root"]["Data"]
93
- end
94
93
  end
95
94
  end
@@ -1,3 +1,3 @@
1
1
  module Allpay
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - odin1in
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
@@ -45,6 +45,9 @@ dependencies:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.4.0
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 2.4.0
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +55,9 @@ dependencies:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
57
  version: 2.4.0
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 2.4.0
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: gyoku
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +79,9 @@ dependencies:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
81
  version: 2.3.6
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 2.3.6
76
85
  type: :runtime
77
86
  prerelease: false
78
87
  version_requirements: !ruby/object:Gem::Requirement
@@ -80,6 +89,9 @@ dependencies:
80
89
  - - "~>"
81
90
  - !ruby/object:Gem::Version
82
91
  version: 2.3.6
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 2.3.6
83
95
  description: Allpay vAccount API
84
96
  email:
85
97
  - odin@pwn.so