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 +1 -1
- data/README.md +33 -3
- data/Rakefile +2 -0
- data/lib/pagseguro_v2/address.rb +1 -1
- data/lib/pagseguro_v2/checkout.rb +8 -8
- data/lib/pagseguro_v2/client.rb +15 -1
- data/lib/pagseguro_v2/config.rb +2 -1
- data/lib/pagseguro_v2/errors/invalid_data.rb +1 -1
- data/lib/pagseguro_v2/errors/unauthorized.rb +2 -2
- data/lib/pagseguro_v2/errors/unknown_error.rb +1 -1
- data/lib/pagseguro_v2/inquiry.rb +13 -0
- data/lib/pagseguro_v2/item.rb +1 -1
- data/lib/pagseguro_v2/notification.rb +1 -1
- data/lib/pagseguro_v2/payment_method.rb +1 -9
- data/lib/pagseguro_v2/sender.rb +3 -3
- data/lib/pagseguro_v2/shipping.rb +1 -1
- data/lib/pagseguro_v2/transaction/payment.rb +52 -60
- data/lib/pagseguro_v2/transaction/shipping.rb +1 -2
- data/lib/pagseguro_v2/transaction/types.rb +11 -11
- data/lib/pagseguro_v2/transaction.rb +12 -2
- data/lib/pagseguro_v2/version.rb +1 -1
- data/lib/pagseguro_v2.rb +4 -3
- data/pagseguro_v2.gemspec +3 -2
- data/spec/spec_helper.rb +1 -1
- metadata +44 -15
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,34 @@
|
|
1
|
-
|
2
|
-
============
|
1
|
+
# PagSeguro V2
|
3
2
|
|
4
|
-
|
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
data/lib/pagseguro_v2/address.rb
CHANGED
@@ -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 =>
|
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
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
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
|
data/lib/pagseguro_v2/client.rb
CHANGED
@@ -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
|
data/lib/pagseguro_v2/config.rb
CHANGED
@@ -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
|
data/lib/pagseguro_v2/item.rb
CHANGED
data/lib/pagseguro_v2/sender.rb
CHANGED
@@ -1,68 +1,60 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module PagseguroV2
|
4
|
-
module
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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
|
@@ -3,21 +3,21 @@ module PagseguroV2
|
|
3
3
|
module Types
|
4
4
|
TYPES = {
|
5
5
|
payment: 1,
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
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
|
26
|
-
|
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
|
data/lib/pagseguro_v2/version.rb
CHANGED
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
|
-
|
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
|
-
#
|
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
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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
|