akatus 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .DS_Store
2
2
  Gemfile.lock
3
+ pkg
data/README.md CHANGED
@@ -1,29 +1,208 @@
1
1
  # Akatus
2
2
 
3
- TODO: Write a gem description
3
+ Esta gem é um cliente em Ruby para a [API da Akatus][1].
4
4
 
5
- ## Installation
5
+ > Caso você esteja integrando a Akatus a uma aplicação Rails (versão 4.0.x), utilize diretamente a gem [`akatus-rails`][9], que usa a gem `akatus` e ainda inclui funcionalidades adicionais específicas para Rails.
6
6
 
7
- Add this line to your application's Gemfile:
7
+ ## Serviços implementados
8
+
9
+ Todos os serviços básicos necessários para realizar a integração entre a sua aplicação de e-commerce e a sua conta Akatus já estão implementados.
10
+
11
+ Alguns serviços secundários (utilizados apenas para gerenciar a sua conta Akatus) serão implementados nas próximas versões.
12
+
13
+ ### Implementados
14
+
15
+ * [Pagamento com boleto bancário][2]
16
+ * `Akatus::Services::Transaction#create`
17
+ * [Pagamento com cartão de crédito][3]
18
+ * `Akatus::Services::Transaction#create`
19
+ * [Pagamento com TEF][4]
20
+ * `Akatus::Services::Transaction#create`
21
+ * [Consulta de meios de pagamento disponíveis][5]
22
+ * `Akatus::Services::PaymentOptions#available`
23
+ * `Akatus::Services::PaymentOptions#available_with_installments`
24
+ * [Simulação de parcelamento][6]
25
+ * `Akatus::Services::Installments#calculate`
26
+
27
+ ### Previstos
28
+
29
+ * Cadastro de conta bancária
30
+ * Cadastro de conta empresarial
31
+ * Cadastro de conta vendedor
32
+ * Consulta de conta bancária
33
+ * Consulta de tipos de comércio
34
+ * Envio de documentos
35
+ * Consulta de status de transação
36
+ * Estorno
37
+
38
+
39
+ ## Instalação
40
+
41
+ Adicione esta linha ao seu Gemfile:
8
42
 
9
43
  gem 'akatus'
10
44
 
11
- And then execute:
45
+ Em seguide, execute:
12
46
 
13
47
  $ bundle
14
48
 
15
- Or install it yourself as:
49
+ Se não quiser utilizar o Gemfile, simplesmente execute:
16
50
 
17
51
  $ gem install akatus
18
52
 
19
- ## Usage
53
+ ## Exemplo de uso
54
+
55
+ ### Criando uma transação
56
+
57
+ Toda transação, seja com boleto bancário, cartão de crédito ou TEF, requer as mesmas informações básicas:
58
+
59
+ * Conta Akatus recebedora
60
+ * Informações sobre o comprador
61
+ * Nome
62
+ * Email
63
+ * Endereço (ou endereços)
64
+ * Telefone (ou telefones)
65
+ * Informações sobre os produtos
66
+ * Forma de pagamento
67
+
68
+ Portanto, em primeiro lugar é necessário criar os objetos que contêm estas informações, como foi feito abaixo.
69
+
70
+ Note que alguns campos possuem restrições de valor ou formato. Estas restrições **não** são verificadas pela gem, você precisará consultá-las no [site da Akatus][7].
71
+
72
+ ```ruby
73
+ require 'akatus'
74
+
75
+ # Configuração da conta recebedora
76
+
77
+ Akatus.config.email = "email-da-conta-akatus@exemplo.com"
78
+ Akatus.config.api_key = "api-key-da-conta-akatus"
79
+
80
+ # Informações do comprador.
81
+
82
+ address = Akatus::Address.new({
83
+ :type => 'entrega',
84
+ :street => 'Rua Labib Marrar',
85
+ :number => '129',
86
+ :neighborhood => 'Jardim Santa Cruz',
87
+ :city => 'São Paulo',
88
+ :state => 'SP',
89
+ :country => 'BRA',
90
+ :postal_code => '04182040',
91
+ :additional_details => 'Apto. 33'
92
+ })
93
+
94
+ payer = Akatus::Payer.new({
95
+ :name => 'Jose Antonio',
96
+ :email => 'ze@antonio.com.br',
97
+ :address => address,
98
+ :phone => Akatus::Phone.new({
99
+ :type => 'comercial',
100
+ :number => '1199999999'
101
+ })
102
+ })
103
+
104
+ # Informações dos produtos.
105
+
106
+ item1 = Akatus::Item.new({
107
+ :reference => 'ABC1234567',
108
+ :description => 'Caixa de bombons sortidos',
109
+ :quantity => 10,
110
+ :price => BigDecimal.new('32.2'),
111
+ :weight => BigDecimal.new('2.25'),
112
+ :shipping_cost => 9,
113
+ })
114
+
115
+ item2 = Akatus::Item.new({
116
+ :reference => 'EFG',
117
+ :description => 'Camiseta',
118
+ :quantity => 1,
119
+ :price => BigDecimal.new('9.99')
120
+ })
121
+
122
+
123
+ ```
124
+
125
+ Quase pronto! Agora, é só escolher uma forma de pagamento e criar o pagamento:
126
+
127
+ ```ruby
128
+ # Boleto bancário
129
+ payment_method = Akatus::BoletoBancario.new
130
+
131
+ # TEF. Os valores válidos para `brand` dependem das configurações da
132
+ # sua conta, e podem ser obtidos com o serviço de meios de pagamento
133
+ # (Akatus::Services::PaymentOptions.available).
134
+ payment_method = Akatus::ElectronicFundsTransfer.new({
135
+ :brand => 'tef_itau'
136
+ })
137
+
138
+ # Cartão de crédito
139
+ payment_method = Akatus::CreditCard.new({
140
+ :brand => 'cartao_master',
141
+ :number => 'NUMERO DO CARTAO DE CREDITO',
142
+ :security_code => '643',
143
+ :installments => 1,
144
+ :expiration => '03/2015',
145
+ :holder_name => 'NOME IMPRESSO NO CARTAO',
146
+ :holder_cpf => 'CPF DO PORTADOR',
147
+ :holder_phone => 'TELEFONE DO PORTADOR'
148
+ })
149
+
150
+ payment = Akatus::Payment.new({
151
+ :payer => payer,
152
+ :items => [ item1, item2 ],
153
+ # Um valor significativo para o seu e-commerce
154
+ :reference => 'order#0001',
155
+ # Uma das formas de pagamento mostradas acima
156
+ :payment_method => payment_method
157
+ })
158
+ ```
159
+
160
+ Finalmente, basta enviar a requisição para a Akatus:
161
+
162
+ ```ruby
163
+ Akatus::Services::Transaction.create(payment)
164
+ ```
165
+
166
+ Se tudo deu certo, o objeto `payment` agora contém novas informações, de acordo da forma de pagamento utilizada:
167
+
168
+ * No caso de **boleto**, o link para geração do boleto pode ser acessado como `payment.url`;
169
+ * No caso de **TEF**, o link para redirecionamento ao banco pode ser acessado como `payment.url`;
170
+ * No caso de **cartão de crédito**, o status da transação estará armazemado em `payment.status`.
171
+
172
+ Se ocorreu algum erro de validação do lado da Akatus, o código acima lançará uma exceção do tipo `Akatus::UnprocessableEntityError`, com a mensagem de erro.
173
+
174
+ Por exemplo, um erro seria não configurar corretamente o email e API key da sua conta Akatus:
175
+
176
+ ```ruby
177
+ begin
178
+ Akatus.config.email = 'invalido'
179
+
180
+ # Supondo que `payment` é o mesmo objeto criado acima
181
+ Akatus::Services::Transaction.create(payment)
182
+ rescue Akatus::UnprocessableEntityError => exc
183
+ exc.message # => "conta não encontrada"
184
+ end
185
+ ```
186
+
187
+ ### Mais exemplos
188
+
189
+ * Veja a [Aplicação Rails de exemplo][8].
190
+ * Você também pode ver os testes (em `spec/`) para alguns exemplos básicos.
20
191
 
21
- TODO: Write usage instructions here
192
+ ## Contribuindo
22
193
 
23
- ## Contributing
194
+ 1. Crie um fork da gem
195
+ 2. Crie uma feature branch (`git checkout -b my-new-feature`)
196
+ 3. Faça um commit das suas alterações (`git commit -am 'Add some feature'`)
197
+ 4. Envie para o GitHub (`git push origin my-new-feature`)
198
+ 5. Crie um novo pull request
24
199
 
25
- 1. Fork it
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
200
+ [1]: https://connect.akatus.com/category/documentacao/
201
+ [2]: https://connect.akatus.com/documentacao/api-boleto/
202
+ [3]: https://connect.akatus.com/documentacao/api-cartao-de-credito/
203
+ [4]: https://connect.akatus.com/documentacao/api-tef/
204
+ [5]: https://connect.akatus.com/documentacao/api-meios-de-pagamento/
205
+ [6]: https://connect.akatus.com/documentacao/api-parcelamento/
206
+ [7]: https://connect.akatus.com/documentacao/api-cartao-de-credito/
207
+ [8]: https://github.com/kauplus/akatus-demo
208
+ [9]: https://github.com/kauplus/akatus-rails
data/akatus.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'activesupport'
21
+ spec.add_dependency 'activesupport', '~> 4.0.0'
22
22
  spec.add_dependency 'i18n'
23
23
  spec.add_dependency 'json'
24
24
  spec.add_dependency 'rest-client'
@@ -1,3 +1,3 @@
1
1
  module Akatus
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,74 +1,84 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akatus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Kauplus
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-01-03 00:00:00.000000000 Z
12
+ date: 2014-01-06 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activesupport
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
- version: '0'
21
+ version: 4.0.0
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: 4.0.0
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: i18n
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: json
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rest-client
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: bundler
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ~>
81
92
  - !ruby/object:Gem::Version
@@ -83,20 +94,23 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: debugger
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: factory_girl
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ~>
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ~>
109
124
  - !ruby/object:Gem::Version
@@ -111,20 +126,23 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: rake
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: '0'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: '0'
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: rspec
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ~>
130
148
  - !ruby/object:Gem::Version
@@ -132,6 +150,7 @@ dependencies:
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
155
  - - ~>
137
156
  - !ruby/object:Gem::Version
@@ -190,26 +209,33 @@ files:
190
209
  homepage: http://github.com/kauplus/akatus
191
210
  licenses:
192
211
  - MIT
193
- metadata: {}
194
212
  post_install_message:
195
213
  rdoc_options: []
196
214
  require_paths:
197
215
  - lib
198
216
  required_ruby_version: !ruby/object:Gem::Requirement
217
+ none: false
199
218
  requirements:
200
- - - '>='
219
+ - - ! '>='
201
220
  - !ruby/object:Gem::Version
202
221
  version: '0'
222
+ segments:
223
+ - 0
224
+ hash: -3510026359749588263
203
225
  required_rubygems_version: !ruby/object:Gem::Requirement
226
+ none: false
204
227
  requirements:
205
- - - '>='
228
+ - - ! '>='
206
229
  - !ruby/object:Gem::Version
207
230
  version: '0'
231
+ segments:
232
+ - 0
233
+ hash: -3510026359749588263
208
234
  requirements: []
209
235
  rubyforge_project:
210
- rubygems_version: 2.0.3
236
+ rubygems_version: 1.8.25
211
237
  signing_key:
212
- specification_version: 4
238
+ specification_version: 3
213
239
  summary: Ruby gem for the Akatus payment system
214
240
  test_files:
215
241
  - spec/address_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 3e6394b4c41ed3be9c9d2e2c255926b7e94e7947
4
- data.tar.gz: d083c49f1117259999bbfaec106da9441c53e7a0
5
- SHA512:
6
- metadata.gz: ca9f28c3bbfb32b77598d945bdfbd64cf18a4f6a49eb25740cf9e89e40ad95eb47f80eda86fa4188f5f7a621b40bbd09e0a82b407d0336fcaba92e0e01f6698c
7
- data.tar.gz: 08dec081d6135e838f59568517ae3147824d3750b8e33b2db4fbdcddacf0e8c88c644b1abfe1146b4c280cb2b752b63fd1adb87f2b66c165326dd3ee35fccc62