gopay 0.1.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  urls:
2
2
  test:
3
- full_integration: https://testgw.gopay.cz/gw/pay-full-v2
4
- wsdl: https://testgw.gopay.cz/axis/EPaymentServiceV2?wsdl
3
+ full_integration: http://testgw.gopay.cz/gw/pay-full-v2
4
+ wsdl: http://testgw.gopay.cz/axis/EPaymentServiceV2?wsdl
5
5
  base_integration: https://testgw.gopay.cz/gw/pay-base-v2
6
6
  get_account_statement_url: https://testgw.gopay.cz/gw/services/get-account-statement
7
7
  production:
@@ -16,12 +16,12 @@ module GoPay
16
16
  des.encrypt
17
17
  des.key = GoPay.configuration.secure_key
18
18
  result = des.update(string)
19
- result.unpack("H*").to_s
19
+ result.unpack("H*")[0]
20
20
  end
21
21
 
22
22
  def decrypt(encrypted_data, padding_off = false)
23
23
  encrypted_data = bin2hex(encrypted_data)
24
- des = OpenSSL::Cipher::Cipher.new("des-ede3")
24
+ des = OpenSSL::Cipher.new("des-ede3")
25
25
  des.decrypt
26
26
  des.padding = 0 if padding_off
27
27
  des.key = GoPay.configuration.secure_key
@@ -30,7 +30,7 @@ module GoPay
30
30
  end
31
31
 
32
32
  def bin2hex(bin)
33
- bin.scan(/../).map { | tuple | tuple.hex.chr }.to_s
33
+ bin.scan(/../).map { |tuple| tuple.hex }.pack 'c*'
34
34
  end
35
35
  end
36
36
 
@@ -30,8 +30,10 @@ module GoPay
30
30
  soap.body = {"paymentCommand" => payment_command_hash}
31
31
  end
32
32
  self.response = soap_response.to_hash[:create_payment_response][:create_payment_return]
33
- self.payment_session_id = response[:payment_session_id]
34
33
  valid_response?(response, GoPay::STATUSES[:created])
34
+ valid = valid_response?(response, GoPay::STATUSES[:created])
35
+ self.payment_session_id = response[:payment_session_id] if valid
36
+ valid
35
37
  end
36
38
 
37
39
  def load(validated_status = nil)
@@ -111,9 +113,10 @@ module GoPay
111
113
  end
112
114
 
113
115
  def valid_identity?(params, padding_off = false)
114
- params['targetGoId'] == target_goid.to_s &&
115
- params['orderNumber'] == order_number.to_s &&
116
- GoPay::Crypt.sha1(concat_payment_identity(params)) == GoPay::Crypt.decrypt(params['encryptedSignature'], padding_off)
116
+ raise 'invalid targetGoId' unless params['targetGoId'] == target_goid.to_s
117
+ raise 'invalid orderNumber' unless params['orderNumber'] == order_number.to_s
118
+ raise 'invalid encryptedSignature' unless GoPay::Crypt.sha1(concat_payment_identity(params)) == GoPay::Crypt.decrypt(params['encryptedSignature'], padding_off)
119
+ true
117
120
  end
118
121
 
119
122
  def concat_payment_identity(params)
@@ -1,3 +1,3 @@
1
1
  module GoPay
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2"
3
3
  end
@@ -7,7 +7,7 @@ class ConfigTest < Test::Unit::TestCase
7
7
 
8
8
  should "load both config and country_codes yml files" do
9
9
  assert_equal "Česká Republika", GoPay.configuration.country_codes["CZE"]
10
- assert_equal "https://testgw.gopay.cz/gw/pay-full-v2", GoPay.configuration.urls["full_integration"]
10
+ assert_equal "http://testgw.gopay.cz/gw/pay-full-v2", GoPay.configuration.urls["full_integration"]
11
11
  end
12
12
 
13
13
  end
@@ -3,7 +3,12 @@ $: << File.join(File.expand_path(File.dirname(__FILE__)), "../lib")
3
3
  require "rubygems"
4
4
  require 'test/unit'
5
5
  require "shoulda"
6
- require 'mocha'
6
+
7
+ if RUBY_VERSION > "1.9"
8
+ require 'mocha/setup'
9
+ else
10
+ require 'mocha'
11
+ end
7
12
 
8
13
  require "gopay"
9
14
  require "awesome_print"
@@ -14,3 +19,5 @@ end
14
19
 
15
20
  # create your own test.yml (see test.example.yml)
16
21
  GoPay.configure_from_yaml(File.join(File.dirname(__FILE__), "test.yml"))
22
+
23
+ HTTPI.log = false # silences warning like HTTPI executes HTTP POST using the net_http adapter
metadata CHANGED
@@ -1,74 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gopay
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.2'
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - papricek
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-09-23 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: savon
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: shoulda
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
38
25
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: shoulda
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: mocha
50
39
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
52
41
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
60
54
  type: :development
61
- version_requirements: *id003
62
- description: GoPay is a library making it easy to access GoPay http://www.gopay.cz paygate from Ruby. It offers some basic wrapper around soap calls in the form of AR-like models. Its autoconfigurable from Rails.
63
- email:
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: GoPay is a library making it easy to access GoPay http://www.gopay.cz
63
+ paygate from Ruby. It offers some basic wrapper around soap calls in the form of
64
+ AR-like models. Its autoconfigurable from Rails.
65
+ email:
64
66
  - patrikjira@gmail.com
65
67
  executables: []
66
-
67
68
  extensions: []
68
-
69
69
  extra_rdoc_files: []
70
-
71
- files:
70
+ files:
72
71
  - .gitignore
73
72
  - .rvmrc
74
73
  - Gemfile
@@ -92,38 +91,29 @@ files:
92
91
  - test/test_helper.rb
93
92
  homepage: http://gopay.defactory.net
94
93
  licenses: []
95
-
96
94
  post_install_message:
97
95
  rdoc_options: []
98
-
99
- require_paths:
96
+ require_paths:
100
97
  - lib
101
- required_ruby_version: !ruby/object:Gem::Requirement
98
+ required_ruby_version: !ruby/object:Gem::Requirement
102
99
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
105
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
119
110
  requirements: []
120
-
121
111
  rubyforge_project: gopay
122
112
  rubygems_version: 1.8.21
123
113
  signing_key:
124
114
  specification_version: 3
125
115
  summary: A little gem making integration of GoPay easy
126
- test_files:
116
+ test_files:
127
117
  - test/config_test.rb
128
118
  - test/crypt_test.rb
129
119
  - test/models_test.rb