cobro_digital 0.1.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +69 -22
- data/lib/cobro_digital/transaccion.rb +16 -3
- data/lib/cobro_digital/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# CobroDigital
|
2
2
|
|
3
|
-
|
3
|
+
Adaptador para comunicarse con el servicio WS de CobroDigital (Version 3.0).
|
4
4
|
|
5
|
-
Para poder hacer uso de la gema.
|
5
|
+
Para poder hacer uso de la gema. Requiere previamente comunicarse con CobroDigital para dar de alta el comercio que se hará uso del servicio (Es posible solicitar datos de prueba). Ellos harán entrega de:
|
6
6
|
|
7
7
|
* id del comercio (requerido para cualquier comunicación con el webservice, es la manera de identificarse con el webservice)
|
8
8
|
* sid del comercio (requerido para cualquier comunicación con el webservice, es la manera de identificarse con el webservice)
|
@@ -37,10 +37,10 @@ Los Pagadores son los clientes a los que se les facturará, las acciones posible
|
|
37
37
|
Consiste en crear un pagador en el webservice de CobroDigital, para ello es necesario:
|
38
38
|
|
39
39
|
* Comunicarse con CobroDigital para definir la estructura de pagador que se quiera notificar.
|
40
|
-
* Es importante determinar un identificador
|
40
|
+
* Es importante determinar un identificador único por pagador.
|
41
41
|
* El webservice de CobroDigital solo verifica que la estructura sea correcta, pero no realiza ninguna tipo de validación, por lo tanto es importante llevar el control de si un pagador ya fue dado de alta o no. Ya que es posible dar de alta eternamente el mismo pagador.
|
42
42
|
|
43
|
-
Para la creación de un pagador simplemente es
|
43
|
+
Para la creación de un pagador simplemente es necesario comunicar:
|
44
44
|
* Estructura de un pagador.
|
45
45
|
|
46
46
|
```ruby
|
@@ -48,12 +48,13 @@ comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
|
48
48
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
49
49
|
estructura_pagador = 'Apellido y nombres' => "Santos Torrealba", 'Id' => 1234, 'Documento' => 33123456, 'Direccion del cliente' => "Falsa 1234", 'Telefono' => "222314", 'E-mail' => "santos.torrealba@who.com" # Estructura brindada por cobrodigital para realizar pruebas
|
50
50
|
pagador = CobroDigital.Pagador.crear(estructura_pagador)
|
51
|
-
|
51
|
+
pagador.call(comercio_id, comercio_sid)
|
52
|
+
pagador.response # Obtengo el resultado.
|
52
53
|
```
|
53
54
|
|
54
55
|
#### Editar un Pagador
|
55
56
|
|
56
|
-
Consiste en editar
|
57
|
+
Consiste en editar algún dato dentro de la estructura de pagador de uno especifico.
|
57
58
|
|
58
59
|
Para la edición de un pagador simplemente es necesario comunicar:
|
59
60
|
* Nombre del identificador.
|
@@ -65,7 +66,8 @@ comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
|
65
66
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
66
67
|
estructura_pagador = 'Apellido y nombres' => "Probando Probando", 'Id' => 1234, 'Documento' => 33123456, 'Direccion del cliente' => "Falsa 1234", 'Telefono' => "222314", 'E-mail' => "santos.torrealba@who.com" # Estructura brindada por cobrodigital para realizar pruebas
|
67
68
|
pagador = CobroDigital.Pagador.editar('id', 1234, estructura_pagador)
|
68
|
-
|
69
|
+
pagador.call(comercio_id, comercio_sid)
|
70
|
+
pagador.response # Obtengo el resultado.
|
69
71
|
```
|
70
72
|
|
71
73
|
#### Verificar Pagador
|
@@ -80,41 +82,43 @@ Para la verificación de un pagador simplemente es necesario comunicar:
|
|
80
82
|
comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
81
83
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
82
84
|
pagador = CobroDigital.Pagador.verificar('id', 1234)
|
83
|
-
|
85
|
+
pagador.call(comercio_id, comercio_sid)
|
86
|
+
pagador.response # Obtengo el resultado.
|
84
87
|
```
|
85
88
|
|
86
89
|
#### Codigo Electronico
|
87
90
|
|
88
|
-
Para obtener el
|
91
|
+
Para obtener el código electrónico con el cual le posibilitara a las personas realizar pagos por medio de pagosmiscuentas y linkpagos. Cabe que aclarar que este codigo solo sera posible obtener una vez generada la primer boleta.
|
89
92
|
|
90
93
|
Para la verificación de un pagador simplemente es necesario comunicar:
|
91
94
|
* Nombre del identificador.
|
92
95
|
* Valor del identificador.
|
93
96
|
|
94
|
-
Retorno el numero de
|
97
|
+
Retorno el numero de código electrónico.
|
95
98
|
|
96
99
|
```ruby
|
97
100
|
comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
98
101
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
99
102
|
pagador = CobroDigital.Pagador.codigo_electronico('id', 1234)
|
100
|
-
|
103
|
+
pagador.call(comercio_id, comercio_sid)
|
104
|
+
pagador.response # Obtengo el resultado.
|
101
105
|
```
|
102
106
|
|
103
107
|
### Boleta
|
104
108
|
|
105
|
-
Las boletas es la
|
109
|
+
Las boletas es la manera de informar la factura a CobroDigital para poder realizar el cobro por algunos de los medios proporcionados por ellos, las acciones posibles son las de `generar boleta`, `inhabilitar boleta`, `obtener codigo de barras`.
|
106
110
|
|
107
111
|
#### Generar Boleta
|
108
112
|
|
109
|
-
Es la
|
113
|
+
Es la manera de informar una factura a cobrar.
|
110
114
|
|
111
115
|
Para la generación de una boleta es necesario comunicar:
|
112
116
|
* nombre del identificador.
|
113
117
|
* el valor del identificador.
|
114
|
-
* Array de vencimientos como
|
115
|
-
* Array de importes como
|
118
|
+
* Array de vencimientos como máximo 4. Siempre la primera fecha deberá ser la fecha de emisión. ejemplo: [Date.today, Date.today+10.days, Date.today+20.days]
|
119
|
+
* Array de importes como máximo 4. Siempre el primer monto es el valor de la factura, los siguientes son con los recargos. [100, 110, 120]
|
116
120
|
* concepto, una simple leyenda.
|
117
|
-
* plantilla, es la plantilla de la boleta (Cada comercio debe proporcionar esta plantilla)
|
121
|
+
* plantilla, es la plantilla de estilo de la boleta (Cada comercio debe proporcionar esta plantilla, comunicarse con CobroDigital para mas detalle)
|
118
122
|
|
119
123
|
Retorna un numero de boleta.
|
120
124
|
|
@@ -128,7 +132,8 @@ importes = [100,110,120]
|
|
128
132
|
concepto = "Factura A 10"
|
129
133
|
plantilla = 'init_273' #Proporcionado por CobroDigital para realizar pruebas.
|
130
134
|
boleta = CobroDigital.Boleta.generar(nombre_identificador, valor_identificador, vencimientos, importes, concepto, plantilla)
|
131
|
-
|
135
|
+
boleta.call(comercio_id, comercio_sid)
|
136
|
+
boleta.response # Obtengo el resultado.
|
132
137
|
```
|
133
138
|
|
134
139
|
#### Inhabilitar Boleta
|
@@ -143,14 +148,15 @@ comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
|
143
148
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
144
149
|
numero_boleta = 123
|
145
150
|
boleta = CobroDigital.Boleta.inhabilitar(numero_boleta)
|
146
|
-
|
151
|
+
boleta.call(comercio_id, comercio_sid)
|
152
|
+
boleta.response # Obtengo el resultado.
|
147
153
|
```
|
148
154
|
|
149
155
|
#### Obtener codigo de barras
|
150
156
|
|
151
|
-
Obtener el string de los
|
157
|
+
Obtener el string de los códigos de barras. Serán tantos como vencimientos e importes informados. En caso de querer renderizarlo a imagen deberá de hacer uso del código 128b, para ello se puede hacer uso de la gema barby.
|
152
158
|
|
153
|
-
Para la obtención de los
|
159
|
+
Para la obtención de los códigos de barra es necesario comunicar:
|
154
160
|
* numero de boleta (obtenida en la generación)
|
155
161
|
|
156
162
|
|
@@ -159,9 +165,51 @@ comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
|
159
165
|
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
160
166
|
numero_boleta = 123
|
161
167
|
boleta = CobroDigital.Boleta.obtener_codigo_de_barras(numero_boleta)
|
162
|
-
|
168
|
+
boleta.call(comercio_id, comercio_sid)
|
169
|
+
boleta.response # Obtengo el resultado.
|
163
170
|
```
|
164
171
|
|
172
|
+
### Transacciones
|
173
|
+
|
174
|
+
Es posible realizar todas los movimientos ya sea de ingreso y egreso en la cuenta proporcionada a cobrodigital.
|
175
|
+
|
176
|
+
Para poder realizar las consulta de las transacciones es necesario comunicar:
|
177
|
+
* fecha_desde: Comienzo desde donde se quiere obtener las transacciones.
|
178
|
+
* fecha_hasta: Fin desde donde se quiere obtener las transacciones.
|
179
|
+
* filtros: Los filtros nos permiten obtener transacciones mas especificas:
|
180
|
+
|
181
|
+
Para consultar los tipos de filtros, se puede consultar las siguientes constantes:
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
CobroDigital.Transaccion::FILTRO_TIPO => 'tipo'
|
185
|
+
CobroDigital.Transaccion::FILTRO_NOMBRE => 'nombre'
|
186
|
+
CobroDigital.Transaccion::FILTRO_CONCEPTO => 'concepto'
|
187
|
+
CobroDigital.Transaccion::FILTRO_NRO_BOLETA => 'nro_boleta'
|
188
|
+
CobroDigital.Transaccion::FILTRO_IDENTIFICADOR => 'identificador'
|
189
|
+
|
190
|
+
CobroDigital.Transaccion::FILTRO_TIPO_EGRESO => 'egresos' # Transacciones de retiro del dinero depositado por los pagadores.
|
191
|
+
CobroDigital.Transaccion::FILTRO_TIPO_INGRESO => 'ingresos' # Todo lo que incremente el saldo de la cuenta CobroDigital. Generalmente son sólo las cobranzas.
|
192
|
+
CobroDigital.Transaccion::FILTRO_TIPO_TARJETA_CREDITO => 'tarjeta_credito' # Solo aquellas cobranzas abonadas con tarjeta de crédito.
|
193
|
+
CobroDigital.Transaccion::FILTRO_TIPO_DEBITO_AUTOMATICO => 'debito_automatico' # Está relacionado a los débitos realizados por CBU.
|
194
|
+
|
195
|
+
filtro = { CobroDigital.Transaccion::FILTRO_TIPO => CobroDigital.Transaccion::FILTRO_TIPO_INGRESO,
|
196
|
+
CobroDigital.Transaccion::FILTRO_NOMBRE => "Algun nombre",
|
197
|
+
CobroDigital.Transaccion::FILTRO_CONCEPTO => "Algun concepto"
|
198
|
+
CobroDigital.Transaccion::FILTRO_NRO_BOLETA => "Algun numero de boleta",
|
199
|
+
CobroDigital.Transaccion::FILTRO_IDENTIFICADOR => "Algun identificar" }
|
200
|
+
```
|
201
|
+
|
202
|
+
```ruby
|
203
|
+
comercio_id = 'HA765587' #Brindado por cobrodigital para realizar pruebas
|
204
|
+
comercio_sid = 'wsZ0ya68K791phuu76gQ5L662J6F2Y4j7zqE2Jxa3Mvd22TWNn4iip6L9yq' #Brindado por cobrodigital para realizar pruebas
|
205
|
+
numero_boleta = 123
|
206
|
+
filtro = { CobroDigital.Transaccion::FILTRO_TIPO => CobroDigital.Transaccion::FILTRO_TIPO_INGRESO} # Solo consulta por transacciones de ingreso
|
207
|
+
transacciones = CobroDigital.Transaccion.consultar(Date.today - 1.year, Date.today)
|
208
|
+
transacciones.call(comercio_id, comercio_sid)
|
209
|
+
transacciones.response # Obtengo el resultado.
|
210
|
+
```
|
211
|
+
|
212
|
+
## SOAP vs HTTPS
|
165
213
|
|
166
214
|
## Development
|
167
215
|
|
@@ -177,4 +225,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
|
|
177
225
|
## License
|
178
226
|
|
179
227
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
180
|
-
|
@@ -1,14 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
module CobroDigital
|
2
3
|
class Transaccion < CobroDigital::Operador
|
3
4
|
|
4
5
|
CONSULTAR_TRANSACCIONES_WS = 'consultar_transacciones'
|
5
6
|
|
7
|
+
FILTRO_TIPO = 'tipo'
|
8
|
+
FILTRO_NOMBRE = 'nombre'
|
9
|
+
FILTRO_CONCEPTO = 'concepto'
|
10
|
+
FILTRO_NRO_BOLETA = 'nro_boleta'
|
11
|
+
FILTRO_IDENTIFICADOR = 'identificador'
|
12
|
+
|
13
|
+
FILTRO_TIPO_EGRESO = 'egresos' # Transacciones de retiro del dinero depositado por los pagadores.
|
14
|
+
FILTRO_TIPO_INGRESO = 'ingresos' # Todo lo que incremente el saldo de la cuenta CobroDigital. Generalmente son sólo las cobranzas.
|
15
|
+
FILTRO_TIPO_TARJETA_CREDITO = 'tarjeta_credito' # Solo aquellas cobranzas abonadas con tarjeta de crédito.
|
16
|
+
FILTRO_TIPO_DEBITO_AUTOMATICO = 'debito_automatico' # Está relacionado a los débitos realizados por CBU.
|
17
|
+
|
6
18
|
# { 'desde'=>'20160932', 'hasta'=>'20161001' }
|
7
|
-
def self.consultar(desde, hasta)
|
19
|
+
def self.consultar(desde, hasta, filtros={})
|
8
20
|
CobroDigital::Transaccion.new( :http_method => CobroDigital::Https::GET,
|
9
21
|
:webservice => CONSULTAR_TRANSACCIONES_WS,
|
10
|
-
:render => { :desde
|
11
|
-
:hasta
|
22
|
+
:render => { :desde => desde.strftime('%Y%m%d'),
|
23
|
+
:hasta => hasta.strftime('%Y%m%d'),
|
24
|
+
:filtros => filtros } )
|
12
25
|
end
|
13
26
|
|
14
27
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cobro_digital
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
-
- 0
|
8
7
|
- 1
|
9
8
|
- 0
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- g.edera
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: exe
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2016-
|
18
|
+
date: 2016-11-09 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|