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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # CobroDigital
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/cobro_digital`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ Adaptador para comunicarse con el servicio WS de CobroDigital (Version 3.0).
4
4
 
5
- Para poder hacer uso de la gema. Require previamente comunicarse con CobroDigital para dar de alta el comercio que se hara uso del servicio. Ellos haran entrega de:
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 unico por pagador.
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 neceario comunicar:
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
- response = pagador.call(comercio_id, comercio_sid)
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 algun dato dentro de la estructura de pagador de uno especifico.
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
- response = pagador.call(comercio_id, comercio_sid)
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
- response = pagador.call(comercio_id, comercio_sid)
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 codigo electronico con el cual le posibilitara a las personas realizar pagos por medio de pagosmiscuentas y linkpagos.
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 codigo electronico.
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
- response = pagador.call(comercio_id, comercio_sid)
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 menera 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`.
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 menera de informar una factura a cobrar.
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 maximo 4. Siempre la primera fecha deberá ser la fecha de emisión. ejemplo: [Date.today, Date.today+10.days, Date.today+20.days]
115
- * Array de importes como maximo 4. Siempre el primer monto es el valor de la factura, los siguientes son con los recargos. [100, 110, 120]
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
- response = boleta.call(comercio_id, comercio_sid)
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
- response = boleta.call(comercio_id, comercio_sid)
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 codigos de barras. Seran tantos como vencimientos e importes informados. En caso de querer renderizarlo a imagen debera de hacer uso del codigo 128b, para ello se puede hacer uso de la gema barby.
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 codigos de barra es necesario comunicar:
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
- response = boleta.call(comercio_id, comercio_sid)
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 => desde.strftime('%Y%m%d'),
11
- :hasta => hasta.strftime('%Y%m%d') } )
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
@@ -1,3 +1,3 @@
1
1
  module CobroDigital
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  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: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
- - 0
8
7
  - 1
9
8
  - 0
10
- version: 0.1.0
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-10-28 00:00:00 -03:00
18
+ date: 2016-11-09 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency