akatus 1.0.0 → 1.0.1
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/.gitignore +1 -0
- data/README.md +192 -13
- data/akatus.gemspec +1 -1
- data/lib/akatus/version.rb +1 -1
- metadata +47 -21
- checksums.yaml +0 -7
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,29 +1,208 @@
|
|
1
1
|
# Akatus
|
2
2
|
|
3
|
-
|
3
|
+
Esta gem é um cliente em Ruby para a [API da Akatus][1].
|
4
4
|
|
5
|
-
|
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
|
-
|
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
|
-
|
45
|
+
Em seguide, execute:
|
12
46
|
|
13
47
|
$ bundle
|
14
48
|
|
15
|
-
|
49
|
+
Se não quiser utilizar o Gemfile, simplesmente execute:
|
16
50
|
|
17
51
|
$ gem install akatus
|
18
52
|
|
19
|
-
##
|
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
|
-
|
192
|
+
## Contribuindo
|
22
193
|
|
23
|
-
|
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.
|
26
|
-
2.
|
27
|
-
3.
|
28
|
-
4.
|
29
|
-
5.
|
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'
|
data/lib/akatus/version.rb
CHANGED
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.
|
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-
|
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:
|
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:
|
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:
|
236
|
+
rubygems_version: 1.8.25
|
211
237
|
signing_key:
|
212
|
-
specification_version:
|
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
|