cielox 0.0.1a → 0.0.2a

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,27 +1,12 @@
1
1
  module Cielo
2
2
  class AuthorizationRequest
3
3
  include HappyMapper
4
+ include HTTP
4
5
 
5
6
  tag "requisicao-autorizacao-tid"
6
7
  attribute :id, Integer, :on_save => proc { |value| value.to_s }
7
8
  attribute :version, String, :tag => "versao", :on_save => proc { |value| value ? value : "1.1.1" }
8
9
  element :tid, String
9
10
  has_one :shop, Shop
10
-
11
- def authorize
12
- http = Net::HTTP.new(Cielo.configuration.host, Cielo.configuration.port)
13
- http.use_ssl = true
14
- http.open_timeout = 10 * 1000
15
- http.read_timeout = 40 * 1000
16
- Cielo.logger.info(http.inspect)
17
-
18
- post_body = "mensagem=#{to_xml}"
19
- Cielo.logger.info(post_body)
20
-
21
- response = http.request_post(Cielo.configuration.path, post_body)
22
- Cielo.logger.info(response.body)
23
-
24
- Transaction.parse(response.body, :single => true)
25
- end
26
11
  end
27
12
  end
@@ -0,0 +1,11 @@
1
+ module Cielo
2
+ class Cancelation
3
+ include HappyMapper
4
+
5
+ tag "cancelamento"
6
+ element :code, Integer, :tag => "codigo"
7
+ element :message, String, :tag => "mensagem"
8
+ element :time, Time, :tag => "data-hora"
9
+ element :total, Integer, :tag => "valor"
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module Cielo
2
+ class CancelationRequest
3
+ include HappyMapper
4
+ include HTTP
5
+
6
+ tag "requisicao-cancelamento"
7
+ attribute :id, Integer, :on_save => proc { |value| value.to_s }
8
+ attribute :version, String, :tag => "versao", :on_save => proc { |value| value ? value : "1.1.1" }
9
+ element :tid, String
10
+ has_one :shop, Shop
11
+ end
12
+ end
@@ -1,27 +1,12 @@
1
1
  module Cielo
2
2
  class CaptureRequest
3
3
  include HappyMapper
4
+ include HTTP
4
5
 
5
6
  tag "requisicao-captura"
6
7
  attribute :id, Integer, :on_save => proc { |value| value.to_s }
7
8
  attribute :version, String, :tag => "versao", :on_save => proc { |value| value ? value : "1.1.1" }
8
9
  element :tid, String
9
10
  has_one :shop, Shop
10
-
11
- def capture
12
- http = Net::HTTP.new(Cielo.configuration.host, Cielo.configuration.port)
13
- http.use_ssl = true
14
- http.open_timeout = 10 * 1000
15
- http.read_timeout = 40 * 1000
16
- Cielo.logger.info(http.inspect)
17
-
18
- post_body = "mensagem=#{to_xml}"
19
- Cielo.logger.info(post_body)
20
-
21
- response = http.request_post(Cielo.configuration.path, post_body)
22
- Cielo.logger.info(response.body)
23
-
24
- Transaction.parse(response.body, :single => true)
25
- end
26
11
  end
27
12
  end
@@ -0,0 +1,21 @@
1
+ module Cielo
2
+ class Card
3
+ class Validity
4
+ class InvalidDate < StandardError; end
5
+
6
+ def initialize(year, month)
7
+ @year = year.to_i
8
+ @month = month.to_i
9
+
10
+ now = Time.now
11
+ if @year < now.year || (@year == now.year && @month < now.month)
12
+ raise InvalidDate, "#{@month}/#{@year} is not valid"
13
+ end
14
+ end
15
+
16
+ def to_s
17
+ [@year, "%02d" % @month].join
18
+ end
19
+ end
20
+ end
21
+ end
data/lib/cielo/card.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "cielo/card/validity"
2
+
1
3
  module Cielo
2
4
  class Card
3
5
  include HappyMapper
@@ -0,0 +1,9 @@
1
+ module Cielo
2
+ class Error
3
+ include HappyMapper
4
+
5
+ tag "erro"
6
+ element :code, Integer, :tag => "codigo"
7
+ element :message, String, :tag => "mensagem"
8
+ end
9
+ end
data/lib/cielo/http.rb ADDED
@@ -0,0 +1,21 @@
1
+ require "net/http"
2
+
3
+ module Cielo
4
+ module HTTP
5
+ def request
6
+ http = Net::HTTP.new(Cielo.configuration.host, Cielo.configuration.port)
7
+ http.use_ssl = true
8
+ http.open_timeout = 10 * 1000
9
+ http.read_timeout = 40 * 1000
10
+ Cielo.logger.info(http.inspect)
11
+
12
+ post_body = "mensagem=#{to_xml}"
13
+ Cielo.logger.info(post_body)
14
+
15
+ response = http.request_post(Cielo.configuration.path, post_body)
16
+ Cielo.logger.info(response.body)
17
+
18
+ Transaction.parse(response.body, :single => true) || Error.parse(response.body, :single => true)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ module Cielo
2
+ class InfoRequest
3
+ include HappyMapper
4
+ include HTTP
5
+
6
+ tag "requisicao-consulta"
7
+ attribute :id, Integer, :on_save => proc { |value| value.to_s }
8
+ attribute :version, String, :tag => "versao", :on_save => proc { |value| value ? value : "1.1.1" }
9
+ element :tid, String
10
+ has_one :shop, Shop
11
+ end
12
+ end
@@ -10,5 +10,6 @@ module Cielo
10
10
 
11
11
  has_one :authorization, Authorization
12
12
  has_one :capture, Capture
13
+ has_one :cancelation, Cancelation
13
14
  end
14
15
  end
@@ -1,8 +1,7 @@
1
- require "net/http"
2
-
3
1
  module Cielo
4
2
  class TransactionRequest
5
3
  include HappyMapper
4
+ include HTTP
6
5
 
7
6
  tag "requisicao-transacao"
8
7
  attribute :id, Integer, :on_save => proc { |value| value.to_s }
@@ -14,21 +13,5 @@ module Cielo
14
13
  element :return_url, String, :tag => "url-retorno"
15
14
  element :authorize, Integer, :tag => "autorizar"
16
15
  element :capture, Boolean, :tag => "capturar", :on_save => proc { |value| value.to_s }
17
-
18
- def create
19
- http = Net::HTTP.new(Cielo.configuration.host, Cielo.configuration.port)
20
- http.use_ssl = true
21
- http.open_timeout = 10 * 1000
22
- http.read_timeout = 40 * 1000
23
- Cielo.logger.info(http.inspect)
24
-
25
- post_body = "mensagem=#{to_xml}"
26
- Cielo.logger.info(post_body)
27
-
28
- response = http.request_post(Cielo.configuration.path, post_body)
29
- Cielo.logger.info(response.body)
30
-
31
- Transaction.parse(response.body, :single => true)
32
- end
33
16
  end
34
17
  end
data/lib/cielo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cielo
2
- VERSION = "0.0.1a"
2
+ VERSION = "0.0.2a"
3
3
  end
data/lib/cielo.rb CHANGED
@@ -3,11 +3,12 @@ require "happymapper"
3
3
 
4
4
  module Cielo
5
5
  autoload :Configuration, "cielo/configuration"
6
+ autoload :HTTP, "cielo/http"
7
+ autoload :Error, "cielo/error"
6
8
 
7
9
  autoload :Shop, "cielo/shop"
8
10
  autoload :Order, "cielo/order"
9
11
  autoload :Payment, "cielo/payment"
10
- autoload :Validity, "cielo/validity"
11
12
  autoload :Card, "cielo/card"
12
13
 
13
14
  autoload :TransactionRequest, "cielo/transaction_request"
@@ -19,6 +20,11 @@ module Cielo
19
20
  autoload :CaptureRequest, "cielo/capture_request"
20
21
  autoload :Capture, "cielo/capture"
21
22
 
23
+ autoload :CancelationRequest, "cielo/cancelation_request"
24
+ autoload :Cancelation, "cielo/cancelation"
25
+
26
+ autoload :InfoRequest, "cielo/info_request"
27
+
22
28
  class << self
23
29
  def configuration
24
30
  @configuration ||= Configuration.new
@@ -25,7 +25,7 @@ describe Cielo::AuthorizationRequest do
25
25
  it "#authorize" do
26
26
  stub_request(:post, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do").
27
27
  with(
28
- :body => "mensagem=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<requisicao-autorizacao-tid id=\"1\" versao=\"1.1.1\">\n <tid>100699306904CC7E1001</tid>\n <dados-ec>\n <numero>1006993069</numero>\n <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>\n </dados-ec>\n</requisicao-autorizacao-tid>\n",
28
+ :body => "mensagem=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<requisicao-autorizacao-tid id=\"1\" versao=\"1.1.1\">\n <tid>100699306904CC7E1001</tid>\n <dados-ec>\n <numero>1006993069</numero>\n <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>\n </dados-ec>\n</requisicao-autorizacao-tid>\n"
29
29
  ).
30
30
  to_return(
31
31
  :status => 200,
@@ -36,11 +36,11 @@ describe Cielo::AuthorizationRequest do
36
36
  subject.shop = shop
37
37
  subject.id = 1
38
38
  subject.tid = "100699306904CC7E1001"
39
- transaction = subject.authorize
39
+ transaction = subject.request
40
40
 
41
- transaction.authorization.code.should == 1
41
+ transaction.authorization.code.should == 6
42
42
  transaction.authorization.message.should == "Transação autorizada"
43
- transaction.authorization.time.should == Time.new(2010, 7, 14, 13, 56, 12)
43
+ transaction.authorization.time.should == Time.parse("2010-07-14 13:56:12")
44
44
  transaction.authorization.total.should == 100
45
45
  transaction.authorization.lr.should == 1
46
46
  transaction.authorization.arp.should == "a1b2c3"
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+
4
+ describe Cielo::CancelationRequest do
5
+ subject { described_class.new }
6
+
7
+ let(:shop) do
8
+ Cielo::Shop.new.tap do |s|
9
+ s.number = 1006993069
10
+ s.key = "25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3"
11
+ end
12
+ end
13
+
14
+ let(:request_xml) { File.read(File.expand_path("../../fixtures/cancelation_request.xml", __FILE__)) }
15
+
16
+ it "#to_xml" do
17
+ subject.shop = shop
18
+ subject.id = 1
19
+ subject.tid = "100699306904CC7E1001"
20
+ xml = subject.to_xml
21
+
22
+ xml.should == request_xml
23
+ end
24
+
25
+ it "#cancel" do
26
+ stub_request(:post, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do").
27
+ with(
28
+ :body => "mensagem=#{request_xml}"
29
+ ).
30
+ to_return(
31
+ :status => 200,
32
+ :body => File.read(File.expand_path("../../fixtures/transaction_3.xml", __FILE__)),
33
+ :headers => { "Content-Type" => "text/xml" }
34
+ )
35
+
36
+ subject.shop = shop
37
+ subject.id = 1
38
+ subject.tid = "100699306904CC7E1001"
39
+ transaction = subject.request
40
+
41
+ transaction.tid.should == "100699306904CC7E1001"
42
+ transaction.pan.should == "IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0="
43
+ transaction.status.should == 9
44
+ transaction.cancelation.code.should == 9
45
+ transaction.cancelation.message.should == "Transacao cancelada com sucesso"
46
+ transaction.cancelation.time.should == Time.parse("2012-05-14 09:52:14")
47
+ transaction.cancelation.total.should == 100
48
+ end
49
+ end
@@ -36,14 +36,14 @@ describe Cielo::CaptureRequest do
36
36
  subject.shop = shop
37
37
  subject.id = 1
38
38
  subject.tid = "100699306904CC7E1001"
39
- transaction = subject.capture
39
+ transaction = subject.request
40
40
 
41
41
  transaction.tid.should == "100699306904CC7E1001"
42
42
  transaction.pan.should == "IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0="
43
43
  transaction.status.should == 6
44
- transaction.capture.code.should == 1
44
+ transaction.capture.code.should == 6
45
45
  transaction.capture.message.should == "Transação capturada"
46
- transaction.capture.time.should == Time.new(2010, 7, 14, 13, 56, 12)
46
+ transaction.capture.time.should == Time.parse("2010-07-14 13:56:12")
47
47
  transaction.capture.total.should == 100
48
48
  end
49
49
  end
@@ -5,7 +5,7 @@ describe Cielo::Card do
5
5
 
6
6
  it "#to_xml" do
7
7
  subject.number = "4012001037141112"
8
- subject.validity = Cielo::Validity.new(2015, 11)
8
+ subject.validity = Cielo::Card::Validity.new(2015, 11)
9
9
  subject.indicator = 1
10
10
  subject.security_code = 371
11
11
  subject.owner = "FULANO DE TAL"
@@ -0,0 +1,58 @@
1
+ require "spec_helper"
2
+
3
+ describe Cielo::InfoRequest do
4
+ let(:shop) do
5
+ Cielo::Shop.new.tap do |s|
6
+ s.number = 1006993069
7
+ s.key = "25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3"
8
+ end
9
+ end
10
+
11
+ subject { described_class.new }
12
+
13
+ it "returns transaction information of a given tid" do
14
+ request = File.read(File.expand_path("../../fixtures/info_request/request.xml", __FILE__))
15
+ response = File.read(File.expand_path("../../fixtures/info_request/response.xml", __FILE__))
16
+
17
+ stub_request(:post, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do").
18
+ with(
19
+ :body => "mensagem=#{request}"
20
+ ).
21
+ to_return(
22
+ :status => 200,
23
+ :body => response,
24
+ :headers => { "Content-Type" => "text/xml" }
25
+ )
26
+
27
+ subject.id = 1
28
+ subject.tid = "100699306904CC7E1001"
29
+ subject.shop = shop
30
+
31
+ transaction = subject.request
32
+ transaction.tid.should == "100699306904CC7E1001"
33
+ end
34
+
35
+ it "returns an error with wrong tid" do
36
+ request = File.read(File.expand_path("../../fixtures/info_request/error_request.xml", __FILE__))
37
+ response = File.read(File.expand_path("../../fixtures/info_request/error_response.xml", __FILE__))
38
+
39
+ stub_request(:post, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do").
40
+ with(
41
+ :body => "mensagem=#{request}"
42
+ ).
43
+ to_return(
44
+ :status => 200,
45
+ :body => response,
46
+ :headers => { "Content-Type" => "text/xml" }
47
+ )
48
+
49
+ subject.id = 1
50
+ subject.tid = "103760993800001E1001"
51
+ subject.shop = shop
52
+
53
+ error = subject.request
54
+ error.should be_instance_of(Cielo::Error)
55
+ error.code.should == 3
56
+ error.message.should_not be_empty
57
+ end
58
+ end
@@ -60,14 +60,17 @@ describe Cielo::TransactionRequest do
60
60
  end
61
61
 
62
62
  it "#create" do
63
+ request = File.read(File.expand_path("../../fixtures/transaction_request/request.xml", __FILE__))
64
+ response = File.read(File.expand_path("../../fixtures/transaction_request/response.xml", __FILE__))
65
+
63
66
  stub_request(:post, "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do").
64
67
  with(
65
- :body => "mensagem=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<requisicao-transacao id=\"1\" versao=\"1.1.1\">\n <dados-ec>\n <numero>1006993069</numero>\n <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>\n </dados-ec>\n <dados-portador>\n <numero>4012001037141112</numero>\n <validade>201511</validade>\n <indicador>1</indicador>\n <codigo-seguranca>371</codigo-seguranca>\n <nome-portador>FULANO DE TAL</nome-portador>\n </dados-portador>\n <dados-pedido>\n <numero>285813768</numero>\n <valor>100</valor>\n <moeda>986</moeda>\n <data-hora>2010-07-14T13:56:12</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 <url-retorno>http://minha.loja.com/pedido/285813768</url-retorno>\n <autorizar>2</autorizar>\n <capturar>false</capturar>\n</requisicao-transacao>\n"
68
+ :body => "mensagem=#{request}"
66
69
  ).
67
70
  to_return(
68
71
  :status => 200,
69
- :body => File.read(File.expand_path("../../fixtures/transaction.xml", __FILE__)),
70
- :headers => {}
72
+ :body => response,
73
+ :headers => { "Content-Type" => "text/xml" }
71
74
  )
72
75
 
73
76
  subject.id = "1"
@@ -78,9 +81,9 @@ describe Cielo::TransactionRequest do
78
81
  subject.return_url = "http://minha.loja.com/pedido/285813768"
79
82
  subject.authorize = 2
80
83
  subject.capture = false
81
- transaction = subject.create
84
+ transaction = subject.request
82
85
 
83
- transaction.tid.should == "100699306904CC7E1001"
86
+ transaction.tid.should have(20).chars
84
87
  transaction.pan.should == "IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0="
85
88
  transaction.status.should == 0
86
89
  transaction.authentication_url = "https://qasecommerce.cielo.com.br/web/index.cbmp?id=4c0476919b9ea10d11f761bd3158bde0"
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Cielo::Validity do
3
+ describe Cielo::Card::Validity do
4
4
  before do
5
5
  Timecop.freeze(Time.parse("2012-05-14 09:23:00"))
6
6
  end
@@ -17,8 +17,29 @@ describe Cielo::Validity do
17
17
  expect { described_class.new(Time.now.year, Time.now.month - 1) }.should raise_error(described_class::InvalidDate)
18
18
  end
19
19
 
20
- it "#to_s" do
21
- validity = described_class.new(Time.now.year, Time.now.month)
22
- validity.to_s.should == "201205"
20
+ it "raises an exception if both year and month are not valid" do
21
+ expect { described_class.new(Time.now.year - 1, Time.now.month - 1) }.should raise_error(described_class::InvalidDate)
22
+ end
23
+
24
+ describe "#to_s" do
25
+ it "works with current year and month" do
26
+ validity = described_class.new(Time.now.year, Time.now.month)
27
+ validity.to_s.should == "201205"
28
+ end
29
+
30
+ it "works with next year but current month" do
31
+ validity = described_class.new(Time.now.year + 1, Time.now.month)
32
+ validity.to_s.should == "201305"
33
+ end
34
+
35
+ it "works with next year and next month" do
36
+ validity = described_class.new(Time.now.year + 1, Time.now.month + 1)
37
+ validity.to_s.should == "201306"
38
+ end
39
+
40
+ it "works with two-digits month" do
41
+ validity = described_class.new(Time.now.year + 1, 12)
42
+ validity.to_s.should == "201312"
43
+ end
23
44
  end
24
45
  end
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <requisicao-cancelamento id="1" versao="1.1.1">
3
+ <tid>100699306904CC7E1001</tid>
4
+ <dados-ec>
5
+ <numero>1006993069</numero>
6
+ <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>
7
+ </dados-ec>
8
+ </requisicao-cancelamento>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <requisicao-consulta id="1" versao="1.1.1">
3
+ <tid>103760993800001E1001</tid>
4
+ <dados-ec>
5
+ <numero>1006993069</numero>
6
+ <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>
7
+ </dados-ec>
8
+ </requisicao-consulta>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <erro xmlns="http://ecommerce.cbmp.com.br">
3
+ <codigo>003</codigo>
4
+ <mensagem>Não foi encontrada transação para o Tid '103760993800001E1001'.</mensagem>
5
+ </erro>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <requisicao-consulta id="1" versao="1.1.1">
3
+ <tid>100699306904CC7E1001</tid>
4
+ <dados-ec>
5
+ <numero>1006993069</numero>
6
+ <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>
7
+ </dados-ec>
8
+ </requisicao-consulta>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <transacao versao="1.1.1" id="1" xmlns="http://ecommerce.cbmp.com.br">
3
+ <tid>100699306904CC7E1001</tid>
4
+ <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan>
5
+ <dados-pedido>
6
+ <numero>285813768</numero>
7
+ <valor>100</valor>
8
+ <moeda>986</moeda>
9
+ <data-hora>2012-04-30T08:30:15.358-03:00</data-hora>
10
+ <idioma>PT</idioma>
11
+ </dados-pedido>
12
+ <forma-pagamento>
13
+ <bandeira>visa</bandeira>
14
+ <produto>1</produto>
15
+ <parcelas>1</parcelas>
16
+ </forma-pagamento>
17
+ <status>0</status>
18
+ </transacao>
@@ -4,7 +4,7 @@
4
4
  <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan>
5
5
  <status>6</status>
6
6
  <captura>
7
- <codigo>1</codigo>
7
+ <codigo>6</codigo>
8
8
  <mensagem>Transação capturada</mensagem>
9
9
  <data-hora>2010-07-14T13:56:12</data-hora>
10
10
  <valor>100</valor>
@@ -4,7 +4,7 @@
4
4
  <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan>
5
5
  <status>6</status>
6
6
  <autorizacao>
7
- <codigo>1</codigo>
7
+ <codigo>6</codigo>
8
8
  <mensagem>Transação autorizada</mensagem>
9
9
  <data-hora>2010-07-14T13:56:12</data-hora>
10
10
  <valor>100</valor>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <transacao versao="1.1.1" id="1" xmlns="http://ecommerce.cbmp.com.br">
3
+ <tid>100699306904CC7E1001</tid>
4
+ <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan>
5
+ <status>9</status>
6
+ <cancelamento>
7
+ <codigo>9</codigo>
8
+ <mensagem>Transacao cancelada com sucesso</mensagem>
9
+ <data-hora>2012-05-14T09:52:14</data-hora>
10
+ <valor>100</valor>
11
+ </cancelamento>
12
+ </transacao>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <requisicao-transacao id="1" versao="1.1.1">
3
+ <dados-ec>
4
+ <numero>1006993069</numero>
5
+ <chave>25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3</chave>
6
+ </dados-ec>
7
+ <dados-portador>
8
+ <numero>4012001037141112</numero>
9
+ <validade>201511</validade>
10
+ <indicador>1</indicador>
11
+ <codigo-seguranca>371</codigo-seguranca>
12
+ <nome-portador>FULANO DE TAL</nome-portador>
13
+ </dados-portador>
14
+ <dados-pedido>
15
+ <numero>285813768</numero>
16
+ <valor>100</valor>
17
+ <moeda>986</moeda>
18
+ <data-hora>2010-07-14T13:56:12</data-hora>
19
+ <idioma>PT</idioma>
20
+ </dados-pedido>
21
+ <forma-pagamento>
22
+ <bandeira>visa</bandeira>
23
+ <produto>1</produto>
24
+ <parcelas>1</parcelas>
25
+ </forma-pagamento>
26
+ <url-retorno>http://minha.loja.com/pedido/285813768</url-retorno>
27
+ <autorizar>2</autorizar>
28
+ <capturar>false</capturar>
29
+ </requisicao-transacao>
@@ -0,0 +1,18 @@
1
+ <transacao versao="1.1.1" id="1" xmlns="http://ecommerce.cbmp.com.br">
2
+ <tid>100699306905519A1001</tid>
3
+ <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan>
4
+ <dados-pedido>
5
+ <numero>285813768</numero>
6
+ <valor>100</valor>
7
+ <moeda>986</moeda>
8
+ <data-hora>2012-05-23T09:14:11.922-03:00</data-hora>
9
+ <idioma>PT</idioma>
10
+ </dados-pedido>
11
+ <forma-pagamento>
12
+ <bandeira>visa</bandeira>
13
+ <produto>1</produto>
14
+ <parcelas>1</parcelas>
15
+ </forma-pagamento>
16
+ <status>0</status>
17
+ <url-autenticacao>https://qasecommerce.cielo.com.br/web/index.cbmp?id=18beb3bf46e4ee2a3407eafd94d382ca</url-autenticacao>
18
+ </transacao>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cielox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1a
4
+ version: 0.0.2a
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-14 00:00:00.000000000 Z
12
+ date: 2012-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: happymapper
16
- requirement: &70303395388980 !ruby/object:Gem::Requirement
16
+ requirement: &70150121511440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70303395388980
24
+ version_requirements: *70150121511440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70303395388480 !ruby/object:Gem::Requirement
27
+ requirement: &70150121510940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.9.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70303395388480
35
+ version_requirements: *70150121510940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: timecop
38
- requirement: &70303395387980 !ruby/object:Gem::Requirement
38
+ requirement: &70150121510480 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.3.5
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70303395387980
46
+ version_requirements: *70150121510480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: webmock
49
- requirement: &70303395387500 !ruby/object:Gem::Requirement
49
+ requirement: &70150121510020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.8.6
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70303395387500
57
+ version_requirements: *70150121510020
58
58
  description: Gem for integration with Cielo
59
59
  email:
60
60
  - me@rafaelss.com
@@ -73,22 +73,29 @@ files:
73
73
  - lib/cielo.rb
74
74
  - lib/cielo/authorization.rb
75
75
  - lib/cielo/authorization_request.rb
76
+ - lib/cielo/cancelation.rb
77
+ - lib/cielo/cancelation_request.rb
76
78
  - lib/cielo/capture.rb
77
79
  - lib/cielo/capture_request.rb
78
80
  - lib/cielo/card.rb
81
+ - lib/cielo/card/validity.rb
79
82
  - lib/cielo/configuration.rb
83
+ - lib/cielo/error.rb
84
+ - lib/cielo/http.rb
85
+ - lib/cielo/info_request.rb
80
86
  - lib/cielo/order.rb
81
87
  - lib/cielo/payment.rb
82
88
  - lib/cielo/shop.rb
83
89
  - lib/cielo/transaction.rb
84
90
  - lib/cielo/transaction_request.rb
85
- - lib/cielo/validity.rb
86
91
  - lib/cielo/version.rb
87
92
  - lib/cielox.rb
88
93
  - spec/cielo/authorization_request_spec.rb
94
+ - spec/cielo/cancelation_request_spec.rb
89
95
  - spec/cielo/capture_request_spec.rb
90
96
  - spec/cielo/card_spec.rb
91
97
  - spec/cielo/configuration_spec.rb
98
+ - spec/cielo/info_request_spec.rb
92
99
  - spec/cielo/order_spec.rb
93
100
  - spec/cielo/payment_spec.rb
94
101
  - spec/cielo/shop_spec.rb
@@ -97,15 +104,23 @@ files:
97
104
  - spec/cielo/validity_spec.rb
98
105
  - spec/cielo_spec.rb
99
106
  - spec/fixtures/authorization_request.xml
107
+ - spec/fixtures/cancelation_request.xml
100
108
  - spec/fixtures/capture_request.xml
101
109
  - spec/fixtures/card.xml
110
+ - spec/fixtures/info_request/error_request.xml
111
+ - spec/fixtures/info_request/error_response.xml
112
+ - spec/fixtures/info_request/request.xml
113
+ - spec/fixtures/info_request/response.xml
102
114
  - spec/fixtures/order.xml
103
115
  - spec/fixtures/payment.xml
104
116
  - spec/fixtures/shop.xml
105
117
  - spec/fixtures/transaction.xml
106
118
  - spec/fixtures/transaction_1.xml
107
119
  - spec/fixtures/transaction_2.xml
120
+ - spec/fixtures/transaction_3.xml
108
121
  - spec/fixtures/transaction_request.xml
122
+ - spec/fixtures/transaction_request/request.xml
123
+ - spec/fixtures/transaction_request/response.xml
109
124
  - spec/spec_helper.rb
110
125
  homepage: http://github.com/rafaelss/cielo
111
126
  licenses: []
@@ -133,9 +148,11 @@ specification_version: 3
133
148
  summary: Gem for integration with Cielo
134
149
  test_files:
135
150
  - spec/cielo/authorization_request_spec.rb
151
+ - spec/cielo/cancelation_request_spec.rb
136
152
  - spec/cielo/capture_request_spec.rb
137
153
  - spec/cielo/card_spec.rb
138
154
  - spec/cielo/configuration_spec.rb
155
+ - spec/cielo/info_request_spec.rb
139
156
  - spec/cielo/order_spec.rb
140
157
  - spec/cielo/payment_spec.rb
141
158
  - spec/cielo/shop_spec.rb
@@ -144,14 +161,22 @@ test_files:
144
161
  - spec/cielo/validity_spec.rb
145
162
  - spec/cielo_spec.rb
146
163
  - spec/fixtures/authorization_request.xml
164
+ - spec/fixtures/cancelation_request.xml
147
165
  - spec/fixtures/capture_request.xml
148
166
  - spec/fixtures/card.xml
167
+ - spec/fixtures/info_request/error_request.xml
168
+ - spec/fixtures/info_request/error_response.xml
169
+ - spec/fixtures/info_request/request.xml
170
+ - spec/fixtures/info_request/response.xml
149
171
  - spec/fixtures/order.xml
150
172
  - spec/fixtures/payment.xml
151
173
  - spec/fixtures/shop.xml
152
174
  - spec/fixtures/transaction.xml
153
175
  - spec/fixtures/transaction_1.xml
154
176
  - spec/fixtures/transaction_2.xml
177
+ - spec/fixtures/transaction_3.xml
155
178
  - spec/fixtures/transaction_request.xml
179
+ - spec/fixtures/transaction_request/request.xml
180
+ - spec/fixtures/transaction_request/response.xml
156
181
  - spec/spec_helper.rb
157
182
  has_rdoc:
@@ -1,19 +0,0 @@
1
- module Cielo
2
- class Validity
3
- class InvalidDate < StandardError; end
4
-
5
- def initialize(year, month)
6
- @year = year.to_i
7
- @month = month.to_i
8
-
9
- now = Time.now
10
- if @year < now.year || @month < now.month
11
- raise InvalidDate, "#{@month}/#{@year} is not valid"
12
- end
13
- end
14
-
15
- def to_s
16
- [@year, "%02d" % @month].join
17
- end
18
- end
19
- end