pagseguro_v2 0.0.1 → 0.0.5

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.
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