pagseguro-transparente 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50c23ec1585127452ab5ef5825ab28c1f49d7890
4
- data.tar.gz: 06b91010e1abc25b4134b3e8525abfa3dc63af30
3
+ metadata.gz: e5a03899badf0bd49904ceaeeb35c27721bf53d0
4
+ data.tar.gz: 438e7bf01d5ebabd5d1bf77ce6289539a37d96bd
5
5
  SHA512:
6
- metadata.gz: 19c26ce1724c42fe0021c6719a4b8efe1c33783e878ec3c91649398b8a68fb7648f481ab69d260ddee439b8d5cf5832cd63dff3d23d116b1e76e7521e2b84594
7
- data.tar.gz: 7f135a9e059b7c3d754a083f0d8e95df1657c2f7076dadcbc5a50ef620469f5479258820065d65bada411228055143743bf2b70dbacb39a488253b20153ae72d
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
  [![Build Status](https://travis-ci.org/eventick/pagseguro-transparente.svg?branch=master)](https://travis-ci.org/eventick/pagseguro-transparente)
6
6
  [![Coverage Status](https://coveralls.io/repos/eventick/pagseguro-transparente/badge.png)](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.2.3"
24
+ gem "pagseguro-transparente", "~> 1.0.1"
25
25
  ~~~
26
- * Ainda não publicada, é preciso baixar direto do Github.
27
26
 
28
- Criar um initializer em config/initializer/pagseguro.rb
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
- ##Criando uma nova sessão
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
- @pagseguro_session_id = pagseguro_session.create.id
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
- phone = PagSeguro::Phone.new('81', '97550129')
50
- document = PagSeguro::Document.new('01735536300')
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
- sender = PagSeguro::Sender.new(email: 'cirdes@gmail.com', name: 'Cirdes Henrique', hash_id: )
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
- address = PagSeguro::Address.new(postal_code: '52050040', street: 'Rua Teles Junior', number: '475', complement: '301', district: 'rosarinho', city: 'Recife', state: 'PE')
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
- response = payment.register
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
- response.payment_link
143
+ ~~~.ruby
144
+ transaction = PagSeguro::Query.new(order_identifier).transaction
67
145
  ~~~
68
146
 
69
- Você deve redirecionar o usário para a url retornada para compras com boleto e débito bancário.
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
- This is a working in progress!
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
 
@@ -83,7 +83,7 @@ module PagSeguro
83
83
  end
84
84
 
85
85
  def sender
86
- Sender.new(transaction['sender'])
86
+ Sender.new(transaction['sender']) if transaction['sender']
87
87
  end
88
88
 
89
89
  def shipping
@@ -1,3 +1,3 @@
1
1
  module PagSeguro
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -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(:xml_file) {
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.1
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-03-16 00:00:00.000000000 Z
12
+ date: 2015-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel