allpay 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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