pagseguro-transparente 1.0.1 → 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 +4 -4
- data/README.md +122 -22
- data/lib/pagseguro/transaction.rb +1 -1
- data/lib/pagseguro/version.rb +1 -1
- data/spec/pagseguro/transaction_spec.rb +20 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5a03899badf0bd49904ceaeeb35c27721bf53d0
|
4
|
+
data.tar.gz: 438e7bf01d5ebabd5d1bf77ce6289539a37d96bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a993b7e1b3fb21edd4783d9cab6d074fffa81487fd10da0b0a5a25348bdabe099b9bbe167fb8d4a5e72fd60b270d945f432c33d878025b971b74ff037c9fd404
|
7
|
+
data.tar.gz: ebefe858aba1e89e7b405868b6cd5836aafb771a276721831905876c9823a91db86e25d5aa68cb20df2b351820a4469b51ab578bb93d86127f90d764367f9c64
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# PagSeguro Transparente
|
2
2
|
|
3
|
-
Gem para a utilização do novo checkout transparente do Pagseguro.
|
3
|
+
Gem para a utilização do novo [checkout transparente](https://pagseguro.uol.com.br/receba-pagamentos.jhtml#checkout-transparent) do Pagseguro. Essa forma de checkout permite que a compra seja realizada completamente em sua loja. Até o momento, para ter acesso a esse novo checkout é necessário entrar em contato com o PagSeguro para ter acesso a documentação.
|
4
4
|
|
5
5
|
[](https://travis-ci.org/eventick/pagseguro-transparente)
|
6
6
|
[](https://coveralls.io/r/eventick/pagseguro-transparente)
|
@@ -17,15 +17,15 @@ PagSeguro é a solução completa para pagamentos online, que garante a seguran
|
|
17
17
|
Ruby >= 1.9.3
|
18
18
|
Rails >= 3.0
|
19
19
|
|
20
|
-
##Como usar
|
20
|
+
## Como usar
|
21
21
|
|
22
22
|
Adicione a biblioteca ao arquivo Gemfile:
|
23
23
|
~~~.ruby
|
24
|
-
gem "pagseguro-transparente", "~> 0.
|
24
|
+
gem "pagseguro-transparente", "~> 1.0.1"
|
25
25
|
~~~
|
26
|
-
* Ainda não publicada, é preciso baixar direto do Github.
|
27
26
|
|
28
|
-
|
27
|
+
|
28
|
+
Criar um initializer em ```config/initializer/pagseguro.rb```
|
29
29
|
~~~.ruby
|
30
30
|
PagSeguro.configure do |config|
|
31
31
|
config.email = "exemplo@pagseguro.com.br"
|
@@ -33,42 +33,142 @@ PagSeguro.configure do |config|
|
|
33
33
|
end
|
34
34
|
~~~
|
35
35
|
|
36
|
-
##
|
36
|
+
## Etapas do checkout transparente
|
37
|
+
* Iniciar uma sessão de pagamento
|
38
|
+
* Obter os meios de pagamento*
|
39
|
+
* Obter a bandeira do cartão de crédito* (Cartão e crédito)
|
40
|
+
* Obter o token do cartão de crédito* (Cartão de crédito)
|
41
|
+
* Verificar as opções de parcelamento* (Cartão de crédito)
|
42
|
+
* Obter a identificação do comprador
|
43
|
+
* Efetuar o pagamento utilizando a API do Checkout Transparente
|
44
|
+
|
45
|
+
```* Lib Javascript fornecidade pelo PagSeguro```
|
46
|
+
|
47
|
+
## Iniciando uma nova sessão
|
37
48
|
~~~.ruby
|
38
49
|
pagseguro_session = PagSeguro::Session.new
|
39
|
-
|
50
|
+
pagseguro_session_id = pagseguro_session.create.id
|
40
51
|
~~~
|
41
52
|
|
42
|
-
##Criando uma transação
|
43
|
-
~~~.ruby
|
44
|
-
payment = PagSeguro::Payment.new(notification_url: 'www.eventick.com.br', payment_method: 'boleto', reference: '1')
|
45
|
-
items = [PagSeguro::Item.new(id: 1, description: 'Ingresso Teste', amount: 2, quantity: 1)]
|
46
|
-
payment.items = items
|
53
|
+
## Criando uma transação
|
47
54
|
|
55
|
+
### Cartão de crédito
|
56
|
+
~~~.ruby
|
57
|
+
payment = PagSeguro::Payment.new(notification_url: 'www.eventick.com.br/notify', payment_method: 'creditCard', reference: '1')
|
58
|
+
~~~
|
48
59
|
|
49
|
-
|
50
|
-
|
60
|
+
#### Adicionando items
|
61
|
+
~~~.ruby
|
62
|
+
items = [PagSeguro::Item.new(id: 1, description: 'Ticket 1', amount: 2, quantity: 1), PagSeguro::Item.new(id: 2, description: 'Ticket 2', amount: 2, quantity: 1)]
|
63
|
+
payment.items = items
|
64
|
+
~~~
|
51
65
|
|
52
|
-
|
66
|
+
#### Adicionando comprador
|
67
|
+
~~~.ruby
|
68
|
+
phone = PagSeguro::Phone.new('11', '999999999')
|
69
|
+
document = PagSeguro::Document.new('111111111111')
|
70
|
+
sender = PagSeguro::Sender.new(email: 'cirdes@eventick.com.br', name: 'Cirdes Henrique', hash_id: identificao_do_comprador )
|
53
71
|
sender.phone = phone
|
54
72
|
sender.document = document
|
55
|
-
|
56
73
|
payment.sender = sender
|
74
|
+
~~~.ruby
|
57
75
|
|
58
|
-
|
76
|
+
#### Adicionando endereço do comprador ou endereço de cobrança para cartão de crédito
|
77
|
+
~~~.ruby
|
78
|
+
address = PagSeguro::Address.new(postal_code: '01318002', street: 'AV BRIGADEIRO LUIS ANTONIO', number: '1892', complement: '112', district: 'Bela Vista', city: 'São Paulo', state: 'SP')
|
59
79
|
shipping = PagSeguro::Shipping.new
|
60
80
|
shipping.address = address
|
61
|
-
|
62
81
|
payment.shipping = shipping
|
82
|
+
~~~
|
83
|
+
|
84
|
+
#### Adicionando informações do cartão
|
85
|
+
~~~.ruby
|
86
|
+
credit_card = PagSeguro::CreditCard.new(creditcard_token)
|
87
|
+
credit_card.installment = PagSeguro::Installment.new(installment_quantity, installment_value)
|
88
|
+
credit_card.holder = PagSeguro::Holder.new(creditcard_name, creditcard_birthday)
|
89
|
+
document = PagSeguro::Document.new('111111111111')
|
90
|
+
credit_card.holder.document = document
|
91
|
+
phone = PagSeguro::Phone.new('11', '999999999')
|
92
|
+
credit_card.holder.phone = phone
|
93
|
+
address = PagSeguro::Address.new(postal_code: zipcode, street: street, number: number, complement: extra, district: neighbourhood, city: city, state: state )
|
94
|
+
credit_card.billing_address = mount_address
|
95
|
+
payment.credit_card = credit_card
|
96
|
+
~~~
|
97
|
+
|
98
|
+
#### Efetuando a transação
|
99
|
+
~~~.ruby
|
100
|
+
transaction = payment.transaction
|
101
|
+
~~~
|
102
|
+
|
103
|
+
Ao efetuar a transação, será retornado um objeto ```PagSeguro::Transaction``` que você poderá usar para atualizar o status da compra.
|
104
|
+
|
105
|
+
### Boleto
|
106
|
+
Com o retorno da transação você pegará a url para imprimir o boleto.
|
107
|
+
|
108
|
+
~~~.ruby
|
109
|
+
payment = PagSeguro::Payment.new(notification_url: 'www.eventick.com.br/notify', payment_method: 'boleto', reference: '1')
|
110
|
+
transaction = payment.transaction
|
111
|
+
transaction.payment_link
|
112
|
+
~~~
|
113
|
+
|
114
|
+
### Débito bancário
|
115
|
+
Você recebá a URL para redirecionar o usuário ao banco.
|
116
|
+
Valores possívels para os bancos são: ```bradesco``` ```itau``` ```bancodobrasil``` ```banrisul``` ```hsbc```
|
117
|
+
~~~.ruby
|
118
|
+
payment = PagSeguro::Payment.new(notification_url: 'www.eventick.com.br/notify', payment_method: 'eft', reference: '1')
|
119
|
+
payment.bank = PagSeguro::Bank.new('bradesco')
|
120
|
+
|
121
|
+
transaction = payment.transaction
|
122
|
+
transaction.payment_link
|
123
|
+
~~~
|
124
|
+
|
125
|
+
## Recebendo uma notificação de mundaça de status da transação
|
126
|
+
A documentação da API de Notificações podem ser encontrada no (site)[https://pagseguro.uol.com.br/v3/guia-de-integracao/api-de-notificacoes.html] do PagSeguro. As notificações utilizam a versão V3 da API do PagSeguro.
|
127
|
+
|
128
|
+
A notification_url informada como parâmetro da transação, irá receber um POST do PagSeguro informando que existe um atualização no status da transação. Para consultar o status da transação podemos utilizar o PagSeguroTransparent.
|
129
|
+
|
130
|
+
~~~.ruby
|
131
|
+
transaction = PagSeguro::Notification.new(notification_code, 'transaction').transaction
|
132
|
+
~~~
|
133
|
+
|
134
|
+
É possível verificar se a transação é uma transação válida, sem erros ou consultar os erros retornados pelo PagSeguro.
|
135
|
+
~~~.ruby
|
136
|
+
transaction.valid?
|
137
|
+
transaction.errors
|
138
|
+
~~~
|
63
139
|
|
64
|
-
|
140
|
+
## API de Consulta
|
141
|
+
A documentação da API de Consulta podem ser encontrada no (site)[https://pagseguro.uol.com.br/v3/guia-de-integracao/consulta-de-transacoes-por-codigo.html] do PagSeguro. As consultas utilizam a versão V3 da API do PagSeguro.
|
65
142
|
|
66
|
-
|
143
|
+
~~~.ruby
|
144
|
+
transaction = PagSeguro::Query.new(order_identifier).transaction
|
67
145
|
~~~
|
68
146
|
|
69
|
-
|
147
|
+
## PagSeguro::Transaction
|
148
|
+
A API de notificação, a API de consulta e de pagamento retornam um objeto da classe ```PagSeguro::Transaction. Transaction``` responde aos seguintes métodos:
|
149
|
+
|
150
|
+
~~~.ruby
|
151
|
+
date, last_event_date, code,reference, type, status, status_name, cancellation_source, payment_method, payment_link, gross_amount, discount_amount, escrow_end_date, net_amount, extra_amount, installment_count, items, sender, shipping, valid?, errors, fee_amount
|
152
|
+
~~~
|
70
153
|
|
71
|
-
|
154
|
+
## Suporte a múltipas contas
|
155
|
+
É possível utilizar mais de uma conta do PagSeguro ao efetuar suas transações. A utilização de uma segunda conta pode ser útil caso alguma das contas tenha alguma customização que fazem sentido para apenas alguns tipos de compras.
|
156
|
+
|
157
|
+
~~~.ruby
|
158
|
+
PagSeguro.configure do |config|
|
159
|
+
config.email = 'email1@eventick.com.br'
|
160
|
+
config.token = 'token1'
|
161
|
+
config.alt_email = 'email2@eventick.com.br'
|
162
|
+
config.alt_token = 'token2'
|
163
|
+
end
|
164
|
+
~~~
|
165
|
+
|
166
|
+
Em todos as chamadas a API é possível especificar qual conta deve ser utilizada. Caso o valor seja diferente de 'alternative' a conta principal será utilizada.
|
167
|
+
|
168
|
+
~~~.ruby
|
169
|
+
payment.transaction('alternative')
|
170
|
+
PagSeguro::Notification.new(notification_code, 'transaction').transaction('alternative')
|
171
|
+
~~~
|
72
172
|
|
73
173
|
## Contributing
|
74
174
|
|
data/lib/pagseguro/version.rb
CHANGED
@@ -3,7 +3,18 @@ require "spec_helper"
|
|
3
3
|
describe PagSeguro::Transaction do
|
4
4
|
let(:xml) { MultiXml.parse(xml_file) }
|
5
5
|
|
6
|
-
let(:
|
6
|
+
let(:sender) do
|
7
|
+
"<sender>
|
8
|
+
<name>José Comprador</name>
|
9
|
+
<email>comprador@uol.com.br</email>
|
10
|
+
<phone>
|
11
|
+
<areaCode>11</areaCode>
|
12
|
+
<number>56273440</number>
|
13
|
+
</phone>
|
14
|
+
</sender>"
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:xml_file) do
|
7
18
|
"<transaction>
|
8
19
|
<date>2011-02-05T15:46:12.000-02:00</date>
|
9
20
|
<lastEventDate>2011-02-15T17:39:14.000-03:00</lastEventDate>
|
@@ -24,8 +35,9 @@ describe PagSeguro::Transaction do
|
|
24
35
|
<installmentCount>1</installmentCount>
|
25
36
|
<escrowEndDate>2011-02-05T15:46:12.000-02:00</escrowEndDate>
|
26
37
|
<cancellationSource>INTERNAL</cancellationSource>
|
38
|
+
#{sender}
|
27
39
|
</transaction>"
|
28
|
-
|
40
|
+
end
|
29
41
|
|
30
42
|
let(:response) { PagSeguro::Transaction.new(xml) }
|
31
43
|
|
@@ -63,6 +75,12 @@ describe PagSeguro::Transaction do
|
|
63
75
|
it { expect(subject).to respond_to(:fee_amount) }
|
64
76
|
end
|
65
77
|
|
78
|
+
context "response without sender" do
|
79
|
+
let(:sender) { "" }
|
80
|
+
|
81
|
+
its(:sender) { should be_nil }
|
82
|
+
end
|
83
|
+
|
66
84
|
context "unsuccessfull transaction" do
|
67
85
|
context "one error only" do
|
68
86
|
let(:xml_file) {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagseguro-transparente
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cirdes Henrique
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-07-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|