pagseguro_v2 0.0.1 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in pagseguro_v2.gemspec
4
- gemspec
4
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,34 @@
1
- pagseguro_v2
2
- ============
1
+ # PagSeguro V2
3
2
 
4
- Pagseguro gem for api version 2
3
+ PagSeguro gem for API version 2
4
+
5
+ ## Instalação
6
+
7
+ No Gemfile
8
+
9
+
10
+ ```ruby
11
+
12
+ gem "pagseguro_v2"
13
+
14
+ ```
15
+
16
+ Ou via RubyGems, diretamente:
17
+
18
+ `$ gem install pagseguro_v2`
19
+
20
+
21
+ ## Uso
22
+
23
+
24
+ ## Autores
25
+
26
+ * Cirdes Henrique - cirdes@eventick.br
27
+
28
+ * Thiago Diniz - thiago@eventick.com.br
29
+
30
+ ## Contribuindo
31
+
32
+ ## Licença
33
+
34
+ A gem PagSeguro V2 está sob a licença do MIT com atribuições ao Eventick http://eventick.com.br/
data/Rakefile CHANGED
@@ -2,3 +2,5 @@ require "bundler/gem_tasks"
2
2
 
3
3
  require 'rspec/core/rake_task'
4
4
  RSpec::Core::RakeTask.new('spec')
5
+
6
+ task default: :spec
@@ -23,4 +23,4 @@ module PagseguroV2
23
23
  end
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -10,7 +10,7 @@ module PagseguroV2
10
10
  property :shipping
11
11
 
12
12
  # The currency in which payment will be made
13
- property :currency, :required => true, :default => PagseguroV2::Config::CURRENCY
13
+ property :currency, :required => true, :default => PagseguroV2::Config::CURRENCY
14
14
  # List of items contained in the payment
15
15
  property :items, :required => true
16
16
  # Code that reference the payment
@@ -122,11 +122,11 @@ module PagseguroV2
122
122
  end
123
123
  end
124
124
 
125
- private
126
- # melhorar
127
- def convert_unit(number, unit)
128
- number = (BigDecimal("#{number}") * unit).to_i unless number.nil? || number.kind_of?(Integer)
129
- number
130
- end
125
+ private
126
+ # Todo: Melhorar
127
+ def convert_unit(number, unit)
128
+ number = (BigDecimal("#{number}") * unit).to_i unless number.nil? || number.kind_of?(Integer)
129
+ number
131
130
  end
132
- end
131
+ end
132
+ end
@@ -4,6 +4,8 @@ require 'pagseguro_v2/config'
4
4
  module PagseguroV2
5
5
  class Client
6
6
  include HTTParty
7
+ debug_output $stderr
8
+
7
9
  base_uri PagseguroV2::Config::API_HOST
8
10
  format :xml
9
11
 
@@ -28,6 +30,12 @@ module PagseguroV2
28
30
  notification
29
31
  end
30
32
 
33
+ def inquiry(attributes)
34
+ inquiry = Inquiry.new(attributes)
35
+ inquiry.client = self
36
+ inquiry
37
+ end
38
+
31
39
  def proceed_checkout(checkout)
32
40
  self.parse_post_response(PagseguroV2::Config::CHECKOUT_PATH, checkout)
33
41
  end
@@ -38,6 +46,12 @@ module PagseguroV2
38
46
  parse_get_response(path, options)
39
47
  end
40
48
 
49
+ def inquiry_transaction(inquiry)
50
+ path = PagseguroV2::Config::INQUIRY_PATH.gsub 'ID', inquiry.transaction_id
51
+ options = { query: {email: email, token: token} }
52
+ parse_get_response(path, options)
53
+ end
54
+
41
55
  def parse_post_response(path, object)
42
56
  response = post(path, object)
43
57
  parse_response(response)
@@ -72,4 +86,4 @@ module PagseguroV2
72
86
  self.class.post(path, options)
73
87
  end
74
88
  end
75
- end
89
+ end
@@ -5,8 +5,9 @@ module PagseguroV2
5
5
 
6
6
  CHECKOUT_PATH = '/checkout'
7
7
  NOTIFICATION_PATH = '/transactions/notifications/ID'
8
+ INQUIRY_PATH = '/transactions/ID'
8
9
 
9
10
  CHARSET = "UTF-8"
10
11
  CURRENCY = "BRL"
11
12
  end
12
- end
13
+ end
@@ -9,4 +9,4 @@ module PagseguroV2
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -2,8 +2,8 @@ module PagseguroV2
2
2
  module Errors
3
3
  class Unauthorized < Exception
4
4
  def initialize
5
- super("Email and token provided has failed to authenticate")
5
+ super("Email and token provided have failed to authenticate")
6
6
  end
7
7
  end
8
8
  end
9
- end
9
+ end
@@ -6,4 +6,4 @@ module PagseguroV2
6
6
  end
7
7
  end
8
8
  end
9
- end
9
+ end
@@ -0,0 +1,13 @@
1
+ module PagseguroV2
2
+ class Inquiry < Hashie::Trash
3
+ property :transaction_id
4
+
5
+ attr_accessor :client
6
+
7
+ def transaction
8
+ response = self.client.inquiry_transaction(self)
9
+ transaction = Transaction.new response['transaction']
10
+ transaction
11
+ end
12
+ end
13
+ end
@@ -27,4 +27,4 @@ module PagseguroV2
27
27
  self[:weight].to_i if self[:weight]
28
28
  end
29
29
  end
30
- end
30
+ end
@@ -11,4 +11,4 @@ module PagseguroV2
11
11
  transaction
12
12
  end
13
13
  end
14
- end
14
+ end
@@ -2,13 +2,5 @@ module PagseguroV2
2
2
  class PaymentMethod < Hashie::Dash
3
3
  property :type
4
4
  property :code
5
-
6
- def type
7
- Transaction::Payment::Codes[self.type]
8
- end
9
-
10
- def code
11
- Transaction::Payment::Codes[self.code]
12
- end
13
5
  end
14
- end
6
+ end
@@ -19,11 +19,11 @@ module PagseguroV2
19
19
  sender.name name if name
20
20
  if phone_area_number && phone_number
21
21
  sender.phone do |phone|
22
- phone.areaCode
23
- phone.number
22
+ phone.areaCode
23
+ phone.number
24
24
  end
25
25
  end
26
26
  end
27
27
  end
28
28
  end
29
- end
29
+ end
@@ -14,4 +14,4 @@ module PagseguroV2
14
14
  end
15
15
  end
16
16
  end
17
- end
17
+ end
@@ -1,68 +1,60 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module PagseguroV2
4
- module Transaction
5
- module Payment
6
- CODES = {
7
- 101 => "Cartão de crédito Visa",
8
- 102 => "Cartão de crédito MasterCard",
9
- 103 => "Cartão de crédito American Express",
10
- 104 => "Cartão de crédito Diners",
11
- 105 => "Cartão de crédito Hipercard",
12
- 106 => "Cartão de crédito Aura",
13
- 107 => "Cartão de crédito Elo",
14
- 108 => 'Cartão de crédito PLENOCard',
15
- 109 => 'Cartão de crédito PersonalCard',
16
- 110 => 'Cartão de crédito JCB',
17
- 111 => 'Cartão de crédito Discover',
18
- 112 => 'Cartão de crédito BrasilCard',
19
- 113 => 'Cartão de crédito FORTBRASIL',
20
- 201 => "Boleto Bradesco",
21
- 202 => "Boleto Santander",
22
- 301 => "Débito online Bradesco",
23
- 302 => "Débito online Itaú",
24
- 303 => "Débito online Unibanco",
25
- 304 => "Débito online Banco do Brasil",
26
- 305 => "Débito online Banco Real",
27
- 306 => "Débito online Banrisul",
28
- 307 => 'Débito online HSBC',
29
- 401 => "Saldo PagSeguro",
30
- 501 => "Oi Paggo"
31
- }
4
+ module Codes
5
+ class Payment
6
+ CODES = {
7
+ 101 => "Cartão de crédito Visa",
8
+ 102 => "Cartão de crédito MasterCard",
9
+ 103 => "Cartão de crédito American Express",
10
+ 104 => "Cartão de crédito Diners",
11
+ 105 => "Cartão de crédito Hipercard",
12
+ 106 => "Cartão de crédito Aura",
13
+ 107 => "Cartão de crédito Elo",
14
+ 108 => 'Cartão de crédito PLENOCard',
15
+ 109 => 'Cartão de crédito PersonalCard',
16
+ 110 => 'Cartão de crédito JCB',
17
+ 111 => 'Cartão de crédito Discover',
18
+ 112 => 'Cartão de crédito BrasilCard',
19
+ 113 => 'Cartão de crédito FORTBRASIL',
20
+ 201 => "Boleto Bradesco",
21
+ 202 => "Boleto Santander",
22
+ 301 => "Débito online Bradesco",
23
+ 302 => "Débito online Itaú",
24
+ 303 => "Débito online Unibanco",
25
+ 304 => "Débito online Banco do Brasil",
26
+ 305 => "Débito online Banco Real",
27
+ 306 => "Débito online Banrisul",
28
+ 307 => 'Débito online HSBC',
29
+ 401 => "Saldo PagSeguro",
30
+ 501 => "Oi Paggo"
31
+ }
32
32
 
33
- TYPES = {
34
- 1 => :credit_card,
35
- 2 => :invoice,
36
- 3 => :online_transfer,
37
- 4 => :pagseguro,
38
- 5 => :oi_paggo
39
- }
33
+ TYPES = {
34
+ 1 => :credit_card,
35
+ 2 => :invoice,
36
+ 3 => :online_transfer,
37
+ 4 => :pagseguro,
38
+ 5 => :oi_paggo
39
+ }
40
40
 
41
- TYPES_STRINGS = {
42
- credit_card: 'Cartão de crédito',
43
- invoice: 'Boleto',
44
- online_transfer: 'Débito online (TEF)',
45
- pagseguro: 'Saldo PagSeguro',
46
- oi_paggo: 'Oi Paggo',
47
- }
41
+ TYPES_STRINGS = {
42
+ credit_card: 'Cartão de crédito',
43
+ invoice: 'Boleto',
44
+ online_transfer: 'Débito online (TEF)',
45
+ pagseguro: 'Saldo PagSeguro',
46
+ oi_paggo: 'Oi Paggo',
47
+ }
48
48
 
49
- STATUS = {
50
- 1 => :pending,
51
- 2 => :verifying,
52
- 3 => :approved,
53
- 4 => :completed,
54
- 5 => :completed,
55
- 6 => :dispute,
56
- 7 => :canceled
57
- }
58
-
59
- #1 Aguardando pagamento: o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.
60
- #2 Em análise: o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.
61
- #3 Paga: a transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento.
62
- #4 Disponível: a transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta.
63
- #5 Em disputa: o comprador, dentro do prazo de liberação da transação, abriu uma disputa.
64
- #6 Devolvida: o valor da transação foi devolvido para o comprador.
65
- #7 Cancelada: a transação foi cancelada sem ter sido finalizada.
49
+ STATUS = {
50
+ 1 => :pending,
51
+ 2 => :verifying,
52
+ 3 => :approved,
53
+ 4 => :completed,
54
+ 5 => :completed,
55
+ 6 => :dispute,
56
+ 7 => :canceled
57
+ }
66
58
  end
67
59
  end
68
- end
60
+ end
@@ -15,5 +15,4 @@ module PagseguroV2
15
15
  }
16
16
  end
17
17
  end
18
- end
19
-
18
+ end
@@ -3,21 +3,21 @@ module PagseguroV2
3
3
  module Types
4
4
  TYPES = {
5
5
  payment: 1,
6
- transfer: 2,
7
- fund_addition: 3,
8
- withdraw: 4,
9
- charge: 5,
10
- donation: 6,
11
- bonus: 7,
12
- bonus_repass: 8,
13
- operational: 9,
14
- political_donation: 10
6
+ transfer: 2,
7
+ fund_addition: 3,
8
+ withdraw: 4,
9
+ charge: 5,
10
+ donation: 6,
11
+ bonus: 7,
12
+ bonus_repass: 8,
13
+ operational: 9,
14
+ political_donation: 10
15
15
  }
16
16
 
17
17
  TYPES_STRINGS = {
18
18
  payment: 'Pagamento',
19
- transfer: 'Tranferencia',
19
+ transfer: 'Tranferencia',
20
20
  }
21
21
  end
22
22
  end
23
- end
23
+ end
@@ -5,8 +5,10 @@ module PagseguroV2
5
5
  property :reference
6
6
  property :type
7
7
  property :status
8
+ property :status_code
8
9
 
9
10
  property :payment_method, :from => :paymentMethod
11
+ property :payment_link, :from => :paymentLink
10
12
 
11
13
  property :gross_amount, :from => :grossAmount
12
14
  property :discount_amount, :from => :discountAmount
@@ -21,9 +23,17 @@ module PagseguroV2
21
23
  property :shipping
22
24
  property :last_event_date, :from => :lastEventDate
23
25
  property :escrow_end_date, :from => :escrowEndDate
26
+ property :cancellation_source, :from => :cancellationSource
24
27
 
25
- def status
26
- Transaction::Payment::Status[self.status]
28
+ def initialize(options)
29
+ translate_status(options)
30
+ super(options)
31
+ end
32
+
33
+ def translate_status(options)
34
+ status_code = options["status"]
35
+ options["status"] = Codes::Payment::STATUS[status_code.to_i]
36
+ options["status_code"] = status_code
27
37
  end
28
38
  end
29
39
  end
@@ -1,3 +1,3 @@
1
1
  module PagseguroV2
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/pagseguro_v2.rb CHANGED
@@ -16,16 +16,17 @@ require 'pagseguro_v2/address'
16
16
  require "pagseguro_v2/sender"
17
17
  require "pagseguro_v2/shipping"
18
18
  require "pagseguro_v2/notification"
19
+ require "pagseguro_v2/inquiry"
19
20
  require "pagseguro_v2/transaction"
21
+ require "pagseguro_v2/transaction/payment"
20
22
 
21
23
  require "pagseguro_v2/errors/invalid_data"
22
- #require "pagseguro_v2/errors/unknown_error"
24
+ require "pagseguro_v2/errors/unknown_error"
23
25
  require "pagseguro_v2/errors/unauthorized"
24
26
 
25
27
  # Error classes
26
28
  #require "errors/unauthorized"
27
29
 
28
-
29
30
  module PagseguroV2
30
31
  # Your code goes here...
31
- end
32
+ end
data/pagseguro_v2.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
  require "pagseguro_v2/version"
4
4
 
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Cirdes Henrique", "Thiago Diniz"]
10
10
  s.email = ["oi@eventick.com.br"]
11
+ s.license = "MIT"
11
12
  s.homepage = "http://github.com/eventick/pagseguro_v2"
12
13
  s.summary = %q{Ruby gem for interfacing with Pagseguro V2 API. By http://eventick.co}
13
14
  s.description = %q{Ruby gem for interfacing with Pagseguro V2 API.}
@@ -24,4 +25,4 @@ Gem::Specification.new do |s|
24
25
  s.add_runtime_dependency "hashie", '>= 1.2.0'
25
26
  s.add_runtime_dependency "httparty"
26
27
  s.add_runtime_dependency "builder"
27
- end
28
+ end
data/spec/spec_helper.rb CHANGED
@@ -4,4 +4,4 @@ require 'pagseguro_v2'
4
4
  RSpec.configure do |config|
5
5
  config.color_enabled = true
6
6
  config.formatter = 'documentation'
7
- end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagseguro_v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-12 00:00:00.000000000Z
13
+ date: 2013-03-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &87329740 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *87329740
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: rspec
28
- requirement: &87329220 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ~>
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: 2.10.0
34
39
  type: :development
35
40
  prerelease: false
36
- version_requirements: *87329220
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 2.10.0
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: hashie
39
- requirement: &87328940 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: 1.2.0
45
55
  type: :runtime
46
56
  prerelease: false
47
- version_requirements: *87328940
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 1.2.0
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: httparty
50
- requirement: &87328720 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :runtime
57
72
  prerelease: false
58
- version_requirements: *87328720
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: builder
61
- requirement: &87328370 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,7 +86,12 @@ dependencies:
66
86
  version: '0'
67
87
  type: :runtime
68
88
  prerelease: false
69
- version_requirements: *87328370
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  description: Ruby gem for interfacing with Pagseguro V2 API.
71
96
  email:
72
97
  - oi@eventick.com.br
@@ -87,6 +112,7 @@ files:
87
112
  - lib/pagseguro_v2/errors/invalid_data.rb
88
113
  - lib/pagseguro_v2/errors/unauthorized.rb
89
114
  - lib/pagseguro_v2/errors/unknown_error.rb
115
+ - lib/pagseguro_v2/inquiry.rb
90
116
  - lib/pagseguro_v2/item.rb
91
117
  - lib/pagseguro_v2/notification.rb
92
118
  - lib/pagseguro_v2/payment_method.rb
@@ -101,7 +127,8 @@ files:
101
127
  - spec/pagseguro_v2/checkout_spec.rb
102
128
  - spec/spec_helper.rb
103
129
  homepage: http://github.com/eventick/pagseguro_v2
104
- licenses: []
130
+ licenses:
131
+ - MIT
105
132
  post_install_message:
106
133
  rdoc_options: []
107
134
  require_paths:
@@ -120,8 +147,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
147
  version: '0'
121
148
  requirements: []
122
149
  rubyforge_project: pagseguro_v2
123
- rubygems_version: 1.8.10
150
+ rubygems_version: 1.8.25
124
151
  signing_key:
125
152
  specification_version: 3
126
153
  summary: Ruby gem for interfacing with Pagseguro V2 API. By http://eventick.co
127
- test_files: []
154
+ test_files:
155
+ - spec/pagseguro_v2/checkout_spec.rb
156
+ - spec/spec_helper.rb