gopay 0.1.1 → 0.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.
@@ -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