cielo 0.1.5 → 1.1.0

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: b43856db1eb4a50fbfc9e3c2bfd9022b114375d8
4
- data.tar.gz: aecbf80ba9ca794a0ebe301978aebf447284fe51
3
+ metadata.gz: b921260fbe9520158aa715c12f453f806acdfd21
4
+ data.tar.gz: bdde2c9a1fa680f7df6dd43d3b1c03c594bcefaf
5
5
  SHA512:
6
- metadata.gz: dbfc915f125e4b2e270d72bd00029a400e0bef881293c4ece4299062d3db806d4379ed66ee2c8ccee0276dcdc4a3026fd8b606ee1721e7688d25780c3bdc4ad6
7
- data.tar.gz: 07bb9dbd69917a3bf877614eeb4e3f3440f5546b0192dbea4a5d59d54caa371fc4d5767ac1a3948274ccf30488200919bb5d48a33101cae5238a30c9d9a55a98
6
+ metadata.gz: 3935e55ed2ad67d32ffdf4303882bd1ea408c98a117afb6b54c4ff149a5c8fed0f036397ebc8827b0a8798d93ad65fb2f2f45cf3a4dc323aec4adcb5e6ace42e
7
+ data.tar.gz: e0f2c8696c0f076de5b2773ac0fa12c1ab6d0104bfdd28e6e5de57e69da20e710822253f08cd8723b40ca67e190c00e1642e892fefffaf5ca0e20de423ed1022
data/README.rdoc CHANGED
@@ -28,7 +28,7 @@ Integração com a Cielo via WebServices [Buy Page Cielo / Buy Page Loja ]
28
28
  valor: "123123",
29
29
  moeda: "986",
30
30
  bandeira: 'visa',
31
- :'url-retorno' => 'http://url.retorno',
31
+ 'url-retorno' => 'http://url.retorno',
32
32
  cartao_numero: '4012001037141112',
33
33
  cartao_validade: '201805',
34
34
  cartao_seguranca: '123',
@@ -48,9 +48,9 @@ Integração com a Cielo via WebServices [Buy Page Cielo / Buy Page Loja ]
48
48
  token_request = Cielo::Token.new
49
49
 
50
50
  token_parameters = {
51
- :cartao_numero => '4012888888881881',
52
- :cartao_validade => '201508',
53
- :cartao_portador => 'Nome portador' }
51
+ cartao_numero: '4012888888881881',
52
+ cartao_validade: '201508',
53
+ cartao_portador: 'Nome portador' }
54
54
  }
55
55
 
56
56
  response = token_request.create! token_parameters, :store
@@ -73,7 +73,7 @@ Integração com a Cielo via WebServices [Buy Page Cielo / Buy Page Loja ]
73
73
 
74
74
  Caso seja necessário fazer uma transação recorrente, basta alterar a tag autorizar para 4.
75
75
 
76
- Uma transação com um o campo "gerar-token" => true, gera um token correspondente que pode ser armazenado para transações futuras.
76
+ Uma transação com um o campo gerar-token": true, gera um token correspondente que pode ser armazenado para transações futuras.
77
77
 
78
78
  == Buy Page Cielo
79
79
 
@@ -84,7 +84,7 @@ Uma transação com um o campo "gerar-token" => true, gera um token corresponden
84
84
  valor: "123123",
85
85
  moeda: "986",
86
86
  bandeira: 'visa',
87
- :'url-retorno' => 'http://url.retorno',
87
+ 'url-retorno' => 'http://url.retorno',
88
88
  }
89
89
 
90
90
  transaction.create!(transaction_parameters, :cielo) #inicia uma nova transação / :cielo é padrão
@@ -115,7 +115,8 @@ Se torna necessário somente configurar o módulo Cielo
115
115
  == Avisos
116
116
 
117
117
  * O retorno da cielo é convertido em um hash, então, atributos no xml como url-retorno ficam :"url-retorno", cuidado com esses detalhes.
118
- * Foi desenvolvido e testado em ruby 2.0.0, 1.9.3, 1.9.2 e 1.8.7
118
+ * Gem testada em versões do ruby 2.0.0, 2.1.8, 2.2.4 e 2.3
119
+ * Para usar em versões anteriores do Ruby, use versões da gem anteriores a 1.0
119
120
 
120
121
  == Contributing to cielo
121
122
 
@@ -135,6 +136,7 @@ Se torna necessário somente configurar o módulo Cielo
135
136
  * Gabriel Paladino and Scupen [https://github.com/gabpaladino , https://github.com/scupen] (Ruby 1.8.7 support)
136
137
  * Wilbert Ribeiro [https://github.com/wilbert/cielo, https://twitter.com/wilbertribeiro ]
137
138
  * Elton Okada [https://github.com/eltonokada, https://twitter.com/eltonokada ]
139
+ * Alex Buschle [https://github.com/alexwbuschle, https://twitter.com/alexwbuschle ]
138
140
 
139
141
  == Copyright
140
142
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cielo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Crafters Software Studio
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-09 00:00:00.000000000 Z
12
+ date: 2016-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,50 +17,22 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 3.0.7
20
+ version: 3.2.22
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 3.0.7
28
- - !ruby/object:Gem::Dependency
29
- name: i18n
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
27
+ version: 3.2.22
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: builder
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: 2.0.0
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: 2.0.0
56
- - !ruby/object:Gem::Dependency
57
- name: watir-webdriver
58
30
  requirement: !ruby/object:Gem::Requirement
59
31
  requirements:
60
32
  - - ">="
61
33
  - !ruby/object:Gem::Version
62
34
  version: '0'
63
- type: :development
35
+ type: :runtime
64
36
  prerelease: false
65
37
  version_requirements: !ruby/object:Gem::Requirement
66
38
  requirements:
@@ -68,13 +40,13 @@ dependencies:
68
40
  - !ruby/object:Gem::Version
69
41
  version: '0'
70
42
  - !ruby/object:Gem::Dependency
71
- name: shoulda
43
+ name: bundler
72
44
  requirement: !ruby/object:Gem::Requirement
73
45
  requirements:
74
46
  - - ">="
75
47
  - !ruby/object:Gem::Version
76
48
  version: '0'
77
- type: :development
49
+ type: :runtime
78
50
  prerelease: false
79
51
  version_requirements: !ruby/object:Gem::Requirement
80
52
  requirements:
@@ -82,13 +54,13 @@ dependencies:
82
54
  - !ruby/object:Gem::Version
83
55
  version: '0'
84
56
  - !ruby/object:Gem::Dependency
85
- name: bundler
57
+ name: rake
86
58
  requirement: !ruby/object:Gem::Requirement
87
59
  requirements:
88
60
  - - ">="
89
61
  - !ruby/object:Gem::Version
90
62
  version: '0'
91
- type: :development
63
+ type: :runtime
92
64
  prerelease: false
93
65
  version_requirements: !ruby/object:Gem::Requirement
94
66
  requirements:
@@ -96,7 +68,7 @@ dependencies:
96
68
  - !ruby/object:Gem::Version
97
69
  version: '0'
98
70
  - !ruby/object:Gem::Dependency
99
- name: jeweler
71
+ name: shoulda
100
72
  requirement: !ruby/object:Gem::Requirement
101
73
  requirements:
102
74
  - - ">="
@@ -124,7 +96,7 @@ dependencies:
124
96
  - !ruby/object:Gem::Version
125
97
  version: '0'
126
98
  - !ruby/object:Gem::Dependency
127
- name: fakeweb
99
+ name: vcr
128
100
  requirement: !ruby/object:Gem::Requirement
129
101
  requirements:
130
102
  - - ">="
@@ -138,7 +110,7 @@ dependencies:
138
110
  - !ruby/object:Gem::Version
139
111
  version: '0'
140
112
  - !ruby/object:Gem::Dependency
141
- name: simplecov
113
+ name: webmock
142
114
  requirement: !ruby/object:Gem::Requirement
143
115
  requirements:
144
116
  - - ">="
@@ -159,25 +131,8 @@ extra_rdoc_files:
159
131
  - LICENSE.txt
160
132
  - README.rdoc
161
133
  files:
162
- - ".document"
163
- - ".travis.yml"
164
- - Gemfile
165
- - Gemfile.lock
166
134
  - LICENSE.txt
167
135
  - README.rdoc
168
- - Rakefile
169
- - cielo.gemspec
170
- - lib/cielo.rb
171
- - lib/cielo/connection.rb
172
- - lib/cielo/token.rb
173
- - lib/cielo/transaction.rb
174
- - lib/cielo/version.rb
175
- - lib/generators/cielo/install_generator.rb
176
- - lib/generators/templates/cielo.rb
177
- - spec/cielo/connection_spec.rb
178
- - spec/cielo/token_spec.rb
179
- - spec/cielo/transaction_spec.rb
180
- - spec/spec_helper.rb
181
136
  homepage: http://github.com/crafters/cielo
182
137
  licenses:
183
138
  - MIT
@@ -198,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
153
  version: '0'
199
154
  requirements: []
200
155
  rubyforge_project:
201
- rubygems_version: 2.4.5
156
+ rubygems_version: 2.5.1
202
157
  signing_key:
203
158
  specification_version: 4
204
159
  summary: Integração com a cielo
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 1.9.3
5
- - 2.0.0
6
- script: bundle exec rspec spec
data/Gemfile DELETED
@@ -1,18 +0,0 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- gem "activesupport", ">= 3.0.7"
5
- gem "i18n"
6
- gem 'builder', ">= 2.0.0"
7
-
8
- # Add dependencies to develop your gem here.
9
- # Include everything needed to run rake, tests, features, etc.
10
- group :development do
11
- gem 'watir-webdriver'
12
- gem "shoulda", ">= 0"
13
- gem "bundler"
14
- gem "jeweler"
15
- gem "rspec"
16
- gem "fakeweb"
17
- gem "simplecov"
18
- end
data/Gemfile.lock DELETED
@@ -1,106 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- activesupport (4.0.1)
5
- i18n (~> 0.6, >= 0.6.4)
6
- minitest (~> 4.2)
7
- multi_json (~> 1.3)
8
- thread_safe (~> 0.1)
9
- tzinfo (~> 0.3.37)
10
- addressable (2.3.5)
11
- atomic (1.1.14)
12
- builder (3.2.2)
13
- childprocess (0.4.0)
14
- ffi (~> 1.0, >= 1.0.11)
15
- diff-lcs (1.2.5)
16
- docile (1.1.5)
17
- fakeweb (1.3.0)
18
- faraday (0.8.8)
19
- multipart-post (~> 1.2.0)
20
- ffi (1.9.3)
21
- git (1.2.6)
22
- github_api (0.10.1)
23
- addressable
24
- faraday (~> 0.8.1)
25
- hashie (>= 1.2)
26
- multi_json (~> 1.4)
27
- nokogiri (~> 1.5.2)
28
- oauth2
29
- hashie (2.0.5)
30
- highline (1.6.20)
31
- httpauth (0.2.0)
32
- i18n (0.6.5)
33
- jeweler (1.8.8)
34
- builder
35
- bundler (~> 1.0)
36
- git (>= 1.2.5)
37
- github_api (= 0.10.1)
38
- highline (>= 1.6.15)
39
- nokogiri (= 1.5.10)
40
- rake
41
- rdoc
42
- json (1.8.1)
43
- jwt (0.1.8)
44
- multi_json (>= 1.5)
45
- minitest (4.7.5)
46
- multi_json (1.8.2)
47
- multi_xml (0.5.5)
48
- multipart-post (1.2.0)
49
- nokogiri (1.5.10)
50
- oauth2 (0.9.2)
51
- faraday (~> 0.8)
52
- httpauth (~> 0.2)
53
- jwt (~> 0.1.4)
54
- multi_json (~> 1.0)
55
- multi_xml (~> 0.5)
56
- rack (~> 1.2)
57
- rack (1.5.2)
58
- rake (10.1.0)
59
- rdoc (4.0.1)
60
- json (~> 1.4)
61
- rspec (2.14.1)
62
- rspec-core (~> 2.14.0)
63
- rspec-expectations (~> 2.14.0)
64
- rspec-mocks (~> 2.14.0)
65
- rspec-core (2.14.7)
66
- rspec-expectations (2.14.4)
67
- diff-lcs (>= 1.1.3, < 2.0)
68
- rspec-mocks (2.14.4)
69
- rubyzip (1.1.0)
70
- selenium-webdriver (2.39.0)
71
- childprocess (>= 0.2.5)
72
- multi_json (~> 1.0)
73
- rubyzip (~> 1.0)
74
- websocket (~> 1.0.4)
75
- shoulda (3.5.0)
76
- shoulda-context (~> 1.0, >= 1.0.1)
77
- shoulda-matchers (>= 1.4.1, < 3.0)
78
- shoulda-context (1.1.6)
79
- shoulda-matchers (2.4.0)
80
- activesupport (>= 3.0.0)
81
- simplecov (0.10.0)
82
- docile (~> 1.1.0)
83
- json (~> 1.8)
84
- simplecov-html (~> 0.10.0)
85
- simplecov-html (0.10.0)
86
- thread_safe (0.1.3)
87
- atomic
88
- tzinfo (0.3.38)
89
- watir-webdriver (0.6.4)
90
- selenium-webdriver (>= 2.18.0)
91
- websocket (1.0.7)
92
-
93
- PLATFORMS
94
- ruby
95
-
96
- DEPENDENCIES
97
- activesupport (>= 3.0.7)
98
- builder (>= 2.0.0)
99
- bundler
100
- fakeweb
101
- i18n
102
- jeweler
103
- rspec
104
- shoulda
105
- simplecov
106
- watir-webdriver
data/Rakefile DELETED
@@ -1,49 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
- require "rspec/core/rake_task"
14
- RSpec::Core::RakeTask.new
15
-
16
- require 'jeweler'
17
- require './lib/cielo/version.rb'
18
- Jeweler::Tasks.new do |gem|
19
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
20
- gem.name = "cielo"
21
- gem.homepage = "http://github.com/crafters/cielo"
22
- gem.license = "MIT"
23
- gem.summary = %Q{Integração com a cielo}
24
- gem.description = %Q{Integração com a cielo}
25
- gem.email = "crafters@crafters.com.br"
26
- gem.authors = ["Crafters Software Studio", "Felipe Rodrigues"]
27
- gem.version = Cielo::Version::STRING
28
- # dependencies defined in Gemfile
29
- end
30
- Jeweler::RubygemsDotOrgTasks.new
31
-
32
- require 'rake/testtask'
33
- Rake::TestTask.new(:test) do |test|
34
- test.libs << 'lib' << 'test'
35
- test.pattern = 'test/**/test_*.rb'
36
- test.verbose = true
37
- end
38
-
39
- task :default => :test
40
-
41
- require 'rdoc/task'
42
- Rake::RDocTask.new do |rdoc|
43
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
-
45
- rdoc.rdoc_dir = 'rdoc'
46
- rdoc.title = "cielo #{version}"
47
- rdoc.rdoc_files.include('README*')
48
- rdoc.rdoc_files.include('lib/**/*.rb')
49
- end
data/cielo.gemspec DELETED
@@ -1,83 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
- # stub: cielo 0.1.5 ruby lib
6
-
7
- Gem::Specification.new do |s|
8
- s.name = "cielo"
9
- s.version = "0.1.5"
10
-
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.authors = ["Crafters Software Studio", "Felipe Rodrigues"]
13
- s.date = "2014-01-21"
14
- s.description = "Integra\u{e7}\u{e3}o com a cielo"
15
- s.email = "crafters@crafters.com.br"
16
- s.extra_rdoc_files = [
17
- "LICENSE.txt",
18
- "README.rdoc"
19
- ]
20
- s.files = [
21
- ".document",
22
- ".travis.yml",
23
- "Gemfile",
24
- "Gemfile.lock",
25
- "LICENSE.txt",
26
- "README.rdoc",
27
- "Rakefile",
28
- "cielo.gemspec",
29
- "lib/cielo.rb",
30
- "lib/cielo/connection.rb",
31
- "lib/cielo/token.rb",
32
- "lib/cielo/transaction.rb",
33
- "lib/cielo/version.rb",
34
- "lib/generators/cielo/install_generator.rb",
35
- "lib/generators/templates/cielo.rb",
36
- "spec/cielo/connection_spec.rb",
37
- "spec/cielo/token_spec.rb",
38
- "spec/cielo/transaction_spec.rb",
39
- "spec/spec_helper.rb"
40
- ]
41
- s.homepage = "http://github.com/crafters/cielo"
42
- s.licenses = ["MIT"]
43
- s.require_paths = ["lib"]
44
- s.rubygems_version = "2.1.9"
45
- s.summary = "Integra\u{e7}\u{e3}o com a cielo"
46
-
47
- if s.respond_to? :specification_version then
48
- s.specification_version = 4
49
-
50
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
- s.add_runtime_dependency(%q<activesupport>, [">= 3.0.7"])
52
- s.add_runtime_dependency(%q<i18n>, [">= 0"])
53
- s.add_runtime_dependency(%q<builder>, [">= 2.0.0"])
54
- s.add_development_dependency(%q<watir-webdriver>, [">= 0"])
55
- s.add_development_dependency(%q<shoulda>, [">= 0"])
56
- s.add_development_dependency(%q<bundler>, [">= 0"])
57
- s.add_development_dependency(%q<jeweler>, [">= 0"])
58
- s.add_development_dependency(%q<rspec>, [">= 0"])
59
- s.add_development_dependency(%q<fakeweb>, [">= 0"])
60
- else
61
- s.add_dependency(%q<activesupport>, [">= 3.0.7"])
62
- s.add_dependency(%q<i18n>, [">= 0"])
63
- s.add_dependency(%q<builder>, [">= 2.0.0"])
64
- s.add_dependency(%q<watir-webdriver>, [">= 0"])
65
- s.add_dependency(%q<shoulda>, [">= 0"])
66
- s.add_dependency(%q<bundler>, [">= 0"])
67
- s.add_dependency(%q<jeweler>, [">= 0"])
68
- s.add_dependency(%q<rspec>, [">= 0"])
69
- s.add_dependency(%q<fakeweb>, [">= 0"])
70
- end
71
- else
72
- s.add_dependency(%q<activesupport>, [">= 3.0.7"])
73
- s.add_dependency(%q<i18n>, [">= 0"])
74
- s.add_dependency(%q<builder>, [">= 2.0.0"])
75
- s.add_dependency(%q<watir-webdriver>, [">= 0"])
76
- s.add_dependency(%q<shoulda>, [">= 0"])
77
- s.add_dependency(%q<bundler>, [">= 0"])
78
- s.add_dependency(%q<jeweler>, [">= 0"])
79
- s.add_dependency(%q<rspec>, [">= 0"])
80
- s.add_dependency(%q<fakeweb>, [">= 0"])
81
- end
82
- end
83
-
data/lib/cielo.rb DELETED
@@ -1,36 +0,0 @@
1
- #encoding: utf-8
2
- require 'active_support/core_ext/class/attribute_accessors'
3
- require 'active_support/core_ext/module/attribute_accessors'
4
- require 'active_support/core_ext/hash'
5
- require "net/http"
6
- require "net/https"
7
- require "rexml/document"
8
- require "builder"
9
- [:connection, :transaction, :token].each { |lib| require "cielo/#{lib}" }
10
-
11
- module Cielo
12
-
13
- class Production
14
- BASE_URL = "ecommerce.cbmp.com.br"
15
- WS_PATH = "/servicos/ecommwsec.do"
16
- end
17
-
18
- class Test
19
- BASE_URL = "qasecommerce.cielo.com.br"
20
- WS_PATH = "/servicos/ecommwsec.do"
21
- end
22
-
23
- @@environment = :test
24
- mattr_accessor :environment
25
- @@numero_afiliacao = "1001734898"
26
- mattr_accessor :numero_afiliacao
27
- @@chave_acesso="e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832"
28
- mattr_accessor :chave_acesso
29
- @@return_path = "http://localhost:3000"
30
- mattr_accessor :return_path
31
-
32
- def self.setup
33
- yield self
34
- end
35
- class MissingArgumentError < StandardError; end
36
- end
@@ -1,75 +0,0 @@
1
- #encoding: utf-8
2
-
3
- module Cielo
4
- class Connection
5
- VERSAO_DEFAULT = '1.2.1'
6
- attr_reader :environment
7
- attr_reader :numero_afiliacao
8
- attr_reader :chave_acesso
9
- attr_reader :versao
10
-
11
- def initialize numero_afiliacao = Cielo.numero_afiliacao, chave_acesso = Cielo.chave_acesso, versao = VERSAO_DEFAULT
12
- @environment = eval(Cielo.environment.to_s.capitalize)
13
- @numero_afiliacao = numero_afiliacao
14
- @chave_acesso = chave_acesso
15
- @versao = versao
16
- port = 443
17
- @http = Net::HTTP.new(@environment::BASE_URL,port)
18
- @http.ssl_version = :TLSv1 if @http.respond_to? :ssl_version
19
- @http.use_ssl = true
20
- @http.open_timeout = 10*1000
21
- @http.read_timeout = 40*1000
22
- end
23
-
24
- def request!(params={})
25
- str_params = ""
26
- params.each do |key, value|
27
- str_params+="&" unless str_params.empty?
28
- str_params+="#{key}=#{value}"
29
- end
30
- @http.request_post(self.environment::WS_PATH, str_params)
31
- end
32
-
33
- def xml_builder(group_name, &block)
34
- xml = Builder::XmlMarkup.new
35
- xml.instruct! :xml, :version=>"1.0", :encoding=>"ISO-8859-1"
36
- xml.tag!(group_name, :id => "#{Time.now.to_i}", :versao => @versao) do
37
- block.call(xml, :before)
38
- xml.tag!("dados-ec") do
39
- xml.numero @numero_afiliacao #Cielo.numero_afiliacao
40
- xml.chave @chave_acesso #Cielo.chave_acesso
41
- end
42
- block.call(xml, :after)
43
- end
44
- xml
45
- end
46
-
47
- def make_request!(message)
48
- params = { :mensagem => message.target! }
49
- result = self.request! params
50
- parse_response(result)
51
- end
52
-
53
- def parse_response(response)
54
- case response
55
- when Net::HTTPSuccess
56
- document = REXML::Document.new(response.body)
57
- parse_elements(document.elements)
58
- else
59
- {:erro => { :codigo => "000", :mensagem => "Impossível contactar o servidor"}}
60
- end
61
- end
62
-
63
- def parse_elements(elements)
64
- map={}
65
- elements.each do |element|
66
- element_map = {}
67
- element_map = element.text if element.elements.empty? && element.attributes.empty?
68
- element_map.merge!("value" => element.text) if element.elements.empty? && !element.attributes.empty?
69
- element_map.merge!(parse_elements(element.elements)) unless element.elements.empty?
70
- map.merge!(element.name => element_map)
71
- end
72
- map.symbolize_keys
73
- end
74
- end
75
- end
data/lib/cielo/token.rb DELETED
@@ -1,22 +0,0 @@
1
- #encoding: utf-8
2
- module Cielo
3
- class Token
4
- def initialize
5
- @connection = Cielo::Connection.new
6
- end
7
-
8
- def create!(parameters = {}, buy_page = :cielo)
9
- message = @connection.xml_builder('requisicao-token') do |xml, target|
10
- if target == :after
11
- xml.tag!("dados-portador") do
12
- xml.tag!('numero', parameters[:cartao_numero])
13
- xml.tag!('validade', parameters[:cartao_validade])
14
- xml.tag!('nome-portador', parameters[:cartao_portador])
15
- end
16
- end
17
- end
18
-
19
- @connection.make_request! message
20
- end
21
- end
22
- end
@@ -1,152 +0,0 @@
1
- #encoding: utf-8
2
- require 'bigdecimal'
3
- module Cielo
4
- class Transaction
5
-
6
- attr_reader :numero_afiliacao
7
- attr_reader :chave_acesso
8
- attr_reader :versao
9
-
10
- def initialize numero_afiliacao = Cielo.numero_afiliacao, chave_acesso = Cielo.chave_acesso, versao = '1.2.1'
11
- @numero_afiliacao = numero_afiliacao
12
- @chave_acesso = chave_acesso
13
- @versao = versao
14
- @connection = Cielo::Connection.new @numero_afiliacao, @chave_acesso, @versao
15
- end
16
-
17
- def create!(parameters = {}, buy_page = :cielo)
18
- if buy_page == :store
19
- store_page_create!(parameters)
20
- else
21
- cielo_page_create!(parameters)
22
- end
23
- end
24
-
25
- def store_page_create!(parameters={})
26
- analysis_parameters(parameters, :buy_page_store)
27
- message = @connection.xml_builder('requisicao-transacao') do |xml, target|
28
- if target == :after
29
- xml.tag!("dados-portador") do
30
- if parameters[:token].present?
31
- xml.tag!('token', parameters[:token])
32
- else
33
- xml.tag!('numero', parameters[:cartao_numero])
34
- xml.tag!('validade', parameters[:cartao_validade])
35
- xml.tag!('indicador', parameters[:cartao_indicador])
36
- xml.tag!('codigo-seguranca', parameters[:cartao_seguranca])
37
- xml.tag!('nome-portador', parameters[:cartao_portador])
38
- xml.tag!('token', '')
39
- end
40
- end
41
- default_transaction_xml(xml, parameters)
42
- end
43
- end
44
-
45
- @connection.make_request! message
46
- end
47
-
48
- def cielo_page_create!(parameters={})
49
- analysis_parameters(parameters, :buy_page_cielo)
50
- message = @connection.xml_builder("requisicao-transacao") do |xml, target|
51
- if target == :after
52
- default_transaction_xml(xml, parameters)
53
- end
54
- end
55
- @connection.make_request! message
56
- end
57
-
58
- def verify!(cielo_tid)
59
- return nil unless cielo_tid
60
- message = @connection.xml_builder("requisicao-consulta") do |xml, target|
61
- if target == :before
62
- xml.tid "#{cielo_tid}"
63
- end
64
- end
65
-
66
- @connection.make_request! message
67
- end
68
-
69
- def catch!(cielo_tid)
70
- return nil unless cielo_tid
71
- message = @connection.xml_builder("requisicao-captura") do |xml, target|
72
- if target == :before
73
- xml.tid "#{cielo_tid}"
74
- end
75
- end
76
- @connection.make_request! message
77
- end
78
-
79
- def authorize!(cielo_tid)
80
- return nil unless cielo_tid
81
- message = @connection.xml_builder("requisicao-autorizacao-tid") do |xml, target|
82
- if target == :before
83
- xml.tid "#{cielo_tid}"
84
- end
85
- end
86
- @connection.make_request! message
87
- end
88
-
89
- def cancel!(cielo_tid, valor=0)
90
- return nil unless cielo_tid
91
- message = @connection.xml_builder("requisicao-cancelamento") do |xml, target|
92
- if target == :before
93
- xml.tid "#{cielo_tid}"
94
- end
95
- if target == :after
96
- xml.valor "#{valor}" if BigDecimal.new(valor.nil? ? 0 : valor) > 0
97
- end
98
- end
99
- @connection.make_request! message
100
- end
101
-
102
- private
103
- def default_transaction_xml(xml, parameters)
104
- xml.tag!("dados-pedido") do
105
- [:numero, :valor, :moeda, :"data-hora", :idioma].each do |key|
106
- xml.tag!(key.to_s, parameters[key].to_s)
107
- end
108
- end
109
- xml.tag!("forma-pagamento") do
110
- [:bandeira, :produto, :parcelas].each do |key|
111
- xml.tag!(key.to_s, parameters[key].to_s)
112
- end
113
- end
114
- xml.tag!("url-retorno", parameters[:"url-retorno"])
115
- xml.autorizar parameters[:autorizar].to_s
116
- xml.capturar parameters[:capturar].to_s
117
- xml.tag!("gerar-token", parameters[:"gerar-token"])
118
- end
119
-
120
- def analysis_parameters(parameters={}, buy_page = :buy_page_cielo)
121
- to_analyze = [:numero, :valor, :bandeira, :"url-retorno"]
122
-
123
- if buy_page == :buy_page_store
124
- if parameters[:token].present?
125
- to_analyze.concat([:token])
126
- else
127
- to_analyze.concat([:cartao_numero, :cartao_validade, :cartao_portador])
128
- to_analyze.concat([:cartao_seguranca]) unless ['1.0.0', '1.1.0', '1.1.1'].include?(@versao)
129
- end
130
- end
131
-
132
- to_analyze.each do |parameter|
133
- raise Cielo::MissingArgumentError, "Required parameter #{parameter} not found" unless parameters[parameter]
134
- end
135
-
136
- parameters.merge!(:moeda => "986") unless parameters[:moeda]
137
- parameters.merge!(:"data-hora" => Time.now.strftime("%Y-%m-%dT%H:%M:%S")) unless parameters[:"data-hora"]
138
- parameters.merge!(:idioma => "PT") unless parameters[:idioma]
139
- parameters.merge!(:produto => "1") unless parameters[:produto]
140
- parameters.merge!(:parcelas => "1") unless parameters[:parcelas]
141
- parameters.merge!(:autorizar => "2") unless parameters[:autorizar]
142
- parameters.merge!(:capturar => "true") unless parameters[:capturar]
143
- parameters.merge!(:"url-retorno" => Cielo.return_path) unless parameters[:"url-retorno"]
144
- parameters.merge!(:cartao_indicador => '1') unless parameters[:cartao_indicador] && buy_page == :buy_page_store
145
- parameters.merge!(:"gerar-token" => false) unless parameters[:"gerar-token"]
146
-
147
- parameters
148
- end
149
-
150
-
151
- end
152
- end
data/lib/cielo/version.rb DELETED
@@ -1,8 +0,0 @@
1
- module Cielo
2
- module Version
3
- MAJOR = 0
4
- MINOR = 1
5
- PATCH = 5
6
- STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
- end
8
- end
@@ -1,14 +0,0 @@
1
- module Cielo
2
- module Generators
3
- class InstallGenerator < Rails::Generators::Base
4
- source_root File.expand_path("../../templates", __FILE__)
5
-
6
- desc "Cria o initializer da cielo na app rails"
7
-
8
- def copy_initializer
9
- template "cielo.rb", "config/initializers/cielo.rb"
10
- end
11
-
12
- end
13
- end
14
- end
@@ -1,22 +0,0 @@
1
- # encoding: utf-8
2
- # Use esse arquivo para configurar a integração com a cielo.
3
- Cielo.setup do |config|
4
- # Altere para production ao final dos seus testes
5
- # config.environment = :test
6
-
7
- # Número de afiliação fornecido pela cielo.
8
- # O numero padrão é o número usado para testes.
9
- # Utilize "1001734898" para testes Buy page Cielo e "1006993069" para Buy page loja
10
- # config.numero_afiliacao = "1001734898"
11
-
12
- # Chave de acesso para autenticação.
13
- # O número padrão é o número usado para os testes.
14
- # hash para Buy Page Cielo: "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832"
15
- # hash para Buy page Loja: "25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3"
16
- # config.chave_acesso = "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832"
17
-
18
- # Após o processamento pela cielo, o usuário será redirecionado para uma página.
19
- # que é configurada abaixo, nessa action você pode consultar o status do TID
20
- # para poder mostrar na tela.
21
- # config.return_path = "http://localhost:3000"
22
- end
@@ -1,48 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Cielo::Connection do
4
- before do
5
- FakeWeb.allow_net_connect = true
6
-
7
- @connection = Cielo::Connection.new
8
- @connection2 = Cielo::Connection.new "1001734898", "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832"
9
- end
10
-
11
- after do
12
- FakeWeb.allow_net_connect = false
13
- end
14
-
15
- it "should estabilish connection when was created" do
16
- @connection.environment.should_not be_nil
17
- @connection2.environment.should_not be_nil
18
- end
19
-
20
- it 'use version 1.2.1 by default' do
21
- @connection.versao.should eq '1.2.1'
22
- Cielo::Connection::VERSAO_DEFAULT.should eq '1.2.1'
23
- end
24
-
25
- it 'can use other version' do
26
- connection = Cielo::Connection.new "1001734898", "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832", "1.1.1"
27
- connection.versao.should eq '1.1.1'
28
- end
29
-
30
- describe "making a request" do
31
- it "should make a request" do
32
- response = @connection.request! :data => "Anything"
33
-
34
- response.body.should_not be_nil
35
- response.should be_kind_of Net::HTTPSuccess
36
- end
37
- end
38
-
39
- describe "passing an access key and a client number" do
40
- it "should make a request whithout any problem" do
41
- response = @connection2.request! :data => "Anything"
42
-
43
- response.body.should_not be_nil
44
- response.should be_kind_of Net::HTTPSuccess
45
- end
46
- end
47
-
48
- end
@@ -1,28 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe Cielo::Token do
5
- let(:card_params) { { :cartao_numero => '4012888888881881', :cartao_validade => '201508', :cartao_portador => 'Nome portador' } }
6
- let(:token) { Cielo::Token.new }
7
-
8
- describe "create a token for a card" do
9
- before do
10
- Cielo.stub(:numero_afiliacao).and_return('1006993069')
11
- Cielo.stub(:chave_acesso).and_return('25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3')
12
- end
13
-
14
- it 'delivers an successful message and have a card token' do
15
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
16
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><retorno-token versao=\"1.2.1\" id=\"57239017\" xmlns=\"http://ecommerce.cbmp.com.br\"><token><dados-token><codigo-token>TuS6LeBHWjqFFtE7S3zR052Jl/KUlD+tYJFpAdlA87E=</codigo-token><status>1</status><numero-cartao-truncado>455187******0183</numero-cartao-truncado></dados-token></token></retorno-token>", :content_type => "application/xml")
17
-
18
- response = token.create! card_params, :store
19
-
20
- response[:"retorno-token"][:token][:"dados-token"][:"codigo-token"].should eq 'TuS6LeBHWjqFFtE7S3zR052Jl/KUlD+tYJFpAdlA87E='
21
- response[:"retorno-token"][:token][:"dados-token"][:"numero-cartao-truncado"].should eq '455187******0183'
22
-
23
- # Respose type
24
- # {:"retorno-token"=>{:token=>{:"dados-token"=>{:"codigo-token"=>"2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE=", :status=>"1", :"numero-cartao-truncado"=>"401288******1881"}}}}
25
- end
26
- end
27
-
28
- end
@@ -1,227 +0,0 @@
1
- #encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe Cielo::Transaction do
5
- let(:default_params) { {:numero => "1", :valor => "100", :bandeira => "visa", :"url-retorno" => "http://some.thing.com"} }
6
- let(:card_params) { { :cartao_numero => '4012888888881881', :cartao_validade => '201508', :cartao_indicador => '1', :cartao_seguranca => '973', :cartao_portador => 'Nome portador' } }
7
- let(:card_token_params) { { :cartao_numero => '4012888888881881', :cartao_validade => '201508', :cartao_portador => 'Nome portador' } }
8
- let(:authentication_card_params){ { :cartao_numero => '5453010000066167', :cartao_validade => '201805', :cartao_seguranca => "123", :cartao_portador => "Nome portador" }}
9
-
10
- before do
11
- @transaction = Cielo::Transaction.new
12
- @token = Cielo::Token.new
13
- end
14
-
15
- describe "create a buy page store transaction with token" do
16
- before do
17
- Cielo.stub(:numero_afiliacao).and_return('1006993069')
18
- Cielo.stub(:chave_acesso).and_return('25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3')
19
-
20
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
21
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><retorno-token versao=\"1.2.1\" id=\"57239017\" xmlns=\"http://ecommerce.cbmp.com.br\"><token><dados-token><codigo-token>TuS6LeBHWjqFFtE7S3zR052Jl/KUlD+tYJFpAdlA87E=</codigo-token><status>1</status><numero-cartao-truncado>455187******0183</numero-cartao-truncado></dados-token></token></retorno-token>", :content_type => "application/xml")
22
-
23
- response = @token.create! card_token_params, :store
24
- token = response[:"retorno-token"][:token][:"dados-token"][:"codigo-token"]
25
-
26
- @params = default_params.merge(:token => token, :autorizar => 3)
27
- end
28
-
29
- it 'delivers an successful message' do
30
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
31
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><transacao versao=\"1.2.1\" id=\"1385758302\" xmlns=\"http://ecommerce.cbmp.com.br\"><tid>10069930690BB0381001</tid><pan>52WC7RsmcNuEUSjrYWAEhCOjoLMnMCm4KMTQBqN7PdM=</pan><dados-pedido><numero>1</numero><valor>100</valor><moeda>986</moeda><data-hora>2013-11-29T18:51:43.854-02:00</data-hora><idioma>PT</idioma><taxa-embarque>0</taxa-embarque></dados-pedido><forma-pagamento><bandeira>visa</bandeira><produto>1</produto><parcelas>1</parcelas></forma-pagamento><status>6</status><autenticacao><codigo>6</codigo><mensagem>Transacao sem autenticacao</mensagem><data-hora>2013-11-29T18:51:43.865-02:00</data-hora><valor>100</valor><eci>7</eci></autenticacao><autorizacao><codigo>6</codigo><mensagem>Transa??o autorizada</mensagem><data-hora>2013-11-29T18:51:43.869-02:00</data-hora><valor>100</valor><lr>00</lr><arp>123456</arp><nsu>766008</nsu></autorizacao><captura><codigo>6</codigo><mensagem>Transacao capturada com sucesso</mensagem><data-hora>2013-11-29T18:51:44.006-02:00</data-hora><valor>100</valor></captura></transacao>", :content_type => "application/xml")
32
-
33
- response = @transaction.create! @params, :store
34
-
35
- # 7 is when transactions was not autenticated
36
- response[:transacao][:autenticacao][:eci].should eq("7")
37
- end
38
- end
39
-
40
- describe "create a recurring transaction with token" do
41
- before do
42
- Cielo.stub(:numero_afiliacao).and_return('1006993069')
43
- Cielo.stub(:chave_acesso).and_return('25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3')
44
-
45
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
46
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><retorno-token versao=\"1.2.1\" id=\"57239017\" xmlns=\"http://ecommerce.cbmp.com.br\"><token><dados-token><codigo-token>TuS6LeBHWjqFFtE7S3zR052Jl/KUlD+tYJFpAdlA87E=</codigo-token><status>1</status><numero-cartao-truncado>455187******0183</numero-cartao-truncado></dados-token></token></retorno-token>", :content_type => "application/xml")
47
-
48
- response = @token.create! card_token_params, :store
49
- token = response[:"retorno-token"][:token][:"dados-token"][:"codigo-token"]
50
-
51
- # #autorizar => 4 indicates recurring transaction
52
- @params = default_params.merge(:token => token, :autorizar => 4)
53
- end
54
-
55
- it 'delivers an successful message' do
56
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
57
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><transacao versao=\"1.2.1\" id=\"1385758302\" xmlns=\"http://ecommerce.cbmp.com.br\"><tid>10069930690BB0381001</tid><pan>52WC7RsmcNuEUSjrYWAEhCOjoLMnMCm4KMTQBqN7PdM=</pan><dados-pedido><numero>1</numero><valor>100</valor><moeda>986</moeda><data-hora>2013-11-29T18:51:43.854-02:00</data-hora><idioma>PT</idioma><taxa-embarque>0</taxa-embarque></dados-pedido><forma-pagamento><bandeira>visa</bandeira><produto>1</produto><parcelas>1</parcelas></forma-pagamento><status>6</status><autenticacao><codigo>6</codigo><mensagem>Transacao sem autenticacao</mensagem><data-hora>2013-11-29T18:51:43.865-02:00</data-hora><valor>100</valor><eci>7</eci></autenticacao><autorizacao><codigo>6</codigo><mensagem>Transa??o autorizada</mensagem><data-hora>2013-11-29T18:51:43.869-02:00</data-hora><valor>100</valor><lr>00</lr><arp>123456</arp><nsu>766008</nsu></autorizacao><captura><codigo>6</codigo><mensagem>Transacao capturada com sucesso</mensagem><data-hora>2013-11-29T18:51:44.006-02:00</data-hora><valor>100</valor></captura></transacao>", :content_type => "application/xml")
58
-
59
- response = @transaction.create! @params, :store
60
-
61
- # 7 is when transactions was not autenticated
62
- response[:transacao][:autenticacao][:eci].should eq("7")
63
- end
64
- end
65
-
66
- # Error on system when uses gerar-token => true (Verify with Cielo)
67
- describe "create a buy page store transaction with token generation" do
68
- before do
69
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
70
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><transacao versao=\"1.2.1\" id=\"1390315327\" xmlns=\"http://ecommerce.cbmp.com.br\"><tid>10069930690DCC341001</tid><pan>52WC7RsmcNuEUSjrYWAEhCOjoLMnMCm4KMTQBqN7PdM=</pan><dados-pedido><numero>1</numero><valor>100</valor><moeda>986</moeda><data-hora>2014-01-21T12:42:08.865-02:00</data-hora><idioma>PT</idioma><taxa-embarque>0</taxa-embarque></dados-pedido><forma-pagamento><bandeira>visa</bandeira><produto>1</produto><parcelas>1</parcelas></forma-pagamento><status>6</status><autenticacao><codigo>6</codigo><mensagem>Transacao sem autenticacao</mensagem><data-hora>2014-01-21T12:42:08.872-02:00</data-hora><valor>100</valor><eci>7</eci></autenticacao><autorizacao><codigo>6</codigo><mensagem>Transa??o autorizada</mensagem><data-hora>2014-01-21T12:42:08.885-02:00</data-hora><valor>100</valor><lr>00</lr><arp>123456</arp><nsu>904244</nsu></autorizacao><captura><codigo>6</codigo><mensagem>Transacao capturada com sucesso</mensagem><data-hora>2014-01-21T12:42:08.912-02:00</data-hora><valor>100</valor></captura><token><dados-token><codigo-token>2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE=</codigo-token><status>1</status><numero-cartao-truncado>401288******1881</numero-cartao-truncado></dados-token></token></transacao>", :content_type => "application/xml")
71
-
72
- Cielo.stub(:numero_afiliacao).and_return('1006993069')
73
- Cielo.stub(:chave_acesso).and_return('25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3')
74
-
75
- default_params.merge!(:"gerar-token" => true, :autorizar => 3)
76
-
77
- @params = default_params.merge(card_params)
78
- end
79
-
80
- it 'delivers an successful message and have a card token' do
81
- response = @transaction.create! @params, :store
82
-
83
- response[:transacao][:tid].should_not be_nil
84
- response[:transacao][:token][:"dados-token"][:"codigo-token"].should_not be_nil
85
- end
86
- end
87
-
88
- describe "create a buy page store transaction" do
89
- before do
90
- Cielo.stub(:numero_afiliacao).and_return('1006993069')
91
- Cielo.stub(:chave_acesso).and_return('25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3')
92
-
93
- @params = default_params.merge(card_params)
94
- end
95
-
96
- [:cartao_portador, :cartao_numero, :cartao_validade, :cartao_seguranca, :numero, :valor, :bandeira, :"url-retorno"].each do |parameter|
97
- it "raises an error when #{parameter} isn't informed" do
98
- lambda { @transaction.create!(@params.except!(parameter), :store) }.should raise_error(Cielo::MissingArgumentError)
99
- end
100
- end
101
-
102
- it 'delivers an successful message' do
103
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
104
- :body => "<?xml version='1.0' encoding='ISO-8859-1'?><transacao versao='1.2.1' id='1385759313' xmlns='http://ecommerce.cbmp.com.br'><tid>10069930690BB0441001</tid><pan>52WC7RsmcNuEUSjrYWAEhCOjoLMnMCm4KMTQBqN7PdM=</pan><dados-pedido><numero>1</numero><valor>100</valor><moeda>986</moeda><data-hora>2013-11-29T19:08:34.048-02:00</data-hora><idioma>PT</idioma><taxa-embarque>0</taxa-embarque></dados-pedido><forma-pagamento><bandeira>visa</bandeira><produto>1</produto><parcelas>1</parcelas></forma-pagamento><status>0</status><url-autenticacao>https://qasecommerce.cielo.com.br/web/index.cbmp?id=55152147c2c9e44c340cb4e50d171e37</url-autenticacao></transacao>", :content_type => "application/xml")
105
-
106
- response = @transaction.create! @params, :store
107
-
108
- response[:transacao][:tid].should_not be_nil
109
- response[:transacao][:"url-autenticacao"].should_not be_nil
110
-
111
- response = @transaction.catch!("1001734898056B3C1001")
112
- end
113
- end
114
-
115
- describe "create a buy page cielo transaction" do
116
- before do
117
- @params = default_params
118
- end
119
- [:numero, :valor, :bandeira, :"url-retorno"].each do |parameter|
120
- it "raises an error when #{parameter} isn't informed" do
121
- lambda { @transaction.create! @params.except!(parameter) }.should raise_error(Cielo::MissingArgumentError)
122
- end
123
- end
124
-
125
- it "delivers an successful message" do
126
- response = @transaction.create! @params
127
-
128
- response[:transacao][:tid].should_not be_nil
129
- response[:transacao][:"url-autenticacao"].should_not be_nil
130
-
131
- response = @transaction.catch!("1001734898056B3C1001")
132
-
133
- end
134
-
135
- it "delivers a response with error message when status isn't 200" do
136
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
137
- :body => "Nothing to be found 'round here",
138
- :status => ["404", "Not Found"])
139
- response = @transaction.create! @params
140
-
141
- response[:erro].should_not be_nil
142
- response[:erro][:codigo].should be_eql("000")
143
- end
144
-
145
- it "delivers a response with error message when the server send" do
146
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
147
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> <erro xmlns=\"http://ecommerce.cbmp.com.br\"> <codigo>001</codigo> <mensagem>Requisição inválida</mensagem> </erro>", :content_type => "application/xml")
148
- response = @transaction.create! @params
149
-
150
- response[:erro].should_not be_nil
151
- response[:erro][:codigo].should be_eql("001")
152
- end
153
-
154
- end
155
-
156
- describe "Verify a transaction status" do
157
- it "returns null when no tid is informed" do
158
- @transaction.verify!(nil).should be_nil
159
- end
160
- it "returns a successfull message" do
161
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
162
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<transacao id=\"1308170973\" versao=\"1.1.0\" xmlns=\"http://ecommerce.cbmp.com.br\">\n <tid>1001734898056B3C1001</tid>\n <dados-pedido>\n <numero>1</numero>\n <valor>100</valor>\n <moeda>986</moeda>\n <data-hora>2011-06-15T18:45:16.705-02:00</data-hora>\n <idioma>PT</idioma>\n </dados-pedido>\n <forma-pagamento>\n <bandeira>visa</bandeira>\n <produto>1</produto>\n <parcelas>1</parcelas>\n </forma-pagamento>\n <status>0</status>\n</transacao>\n\n", :content_type => "application/xml")
163
-
164
- response = @transaction.verify!("1001734898056B3C1001")
165
-
166
- response[:transacao][:tid].should_not be_nil
167
- response[:transacao][:status].should_not be_nil
168
- end
169
- end
170
-
171
- describe "Catch a transaction" do
172
- it "returns null when no tid is informed" do
173
- @transaction.catch!(nil).should be_nil
174
- end
175
- it "returns a successfull message" do
176
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
177
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<transacao id=\"1308170973\" versao=\"1.1.0\" xmlns=\"http://ecommerce.cbmp.com.br\">\n <tid>1001734898056B3C1001</tid>\n <dados-pedido>\n <numero>1</numero>\n <valor>100</valor>\n <moeda>986</moeda>\n <data-hora>2011-06-15T18:45:16.705-02:00</data-hora>\n <idioma>PT</idioma>\n </dados-pedido>\n <forma-pagamento>\n <bandeira>visa</bandeira>\n <produto>1</produto>\n <parcelas>1</parcelas>\n </forma-pagamento>\n <status>0</status>\n</transacao>\n\n", :content_type => "application/xml")
178
-
179
- response = @transaction.catch!("1001734898056B3C1001")
180
-
181
- response[:transacao][:tid].should_not be_nil
182
- response[:transacao][:status].should_not be_nil
183
- end
184
- end
185
-
186
- describe "Cancel a transaction" do
187
- it "returns null when no tid is informed" do
188
- @transaction.cancel!(nil).should be_nil
189
- end
190
- it "returns a successfull message" do
191
- FakeWeb.register_uri(:any, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do",
192
- :body => "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<transacao id=\"1308170973\" versao=\"1.1.0\" xmlns=\"http://ecommerce.cbmp.com.br\">\n <tid>1001734898056B3C1001</tid>\n <dados-pedido>\n <numero>1</numero>\n <valor>100</valor>\n <moeda>986</moeda>\n <data-hora>2011-06-15T18:45:16.705-02:00</data-hora>\n <idioma>PT</idioma>\n </dados-pedido>\n <forma-pagamento>\n <bandeira>visa</bandeira>\n <produto>1</produto>\n <parcelas>1</parcelas>\n </forma-pagamento>\n <status>0</status>\n</transacao>\n\n", :content_type => "application/xml")
193
-
194
- response = @transaction.cancel!("1001734898056B3C1001")
195
-
196
- response[:transacao][:tid].should_not be_nil
197
- response[:transacao][:status].should_not be_nil
198
- end
199
- end
200
-
201
- describe "Using a production environment" do
202
- before do
203
- Cielo.setup do |config|
204
- config.environment = :production
205
- config.numero_afiliacao = "1001734891"
206
- config.chave_acesso="e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832"
207
- end
208
- end
209
-
210
- it "must use the production environment" do
211
- Cielo.numero_afiliacao.should be_eql "1001734891"
212
- end
213
-
214
- it "must use the production client number" do
215
- @connection = Cielo::Connection.new
216
- @connection.numero_afiliacao.should be_eql "1001734891"
217
- end
218
-
219
- it "must use the configuration informed" do
220
- @connection2 = Cielo::Connection.new "0100100100", "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa800"
221
- @connection2.numero_afiliacao.should be_eql "0100100100"
222
- @connection2.chave_acesso.should be_eql "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa800"
223
- end
224
-
225
- end
226
-
227
- end
data/spec/spec_helper.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'simplecov'
2
- SimpleCov.start do
3
- add_filter "/spec/"
4
- end
5
- require 'cielo'
6
- require 'fakeweb'
7
- require 'watir-webdriver'
8
-
9
- FakeWeb.allow_net_connect = false