midas_client 0.2.4 → 0.2.14

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.
@@ -13,11 +13,11 @@ module MidasClient
13
13
  @login = login
14
14
  @password = password
15
15
  @environment = environment
16
- login.blank? ? log("POS STATIC INITIALIZED!") : log("POS #{login} INITIALIZED!")
16
+ login.blank? ? log("POS STATIC INITIALIZED!") : log("POS #{login} INITIALIZED - @environment: #{@environment}")
17
17
  end
18
18
 
19
19
  # Method that's wrap generic response
20
- def base_result(success, code, message)
20
+ def self.base_result(success, code, message)
21
21
  {
22
22
  result: {
23
23
  success: success,
@@ -39,6 +39,7 @@ module MidasClient
39
39
  password: password,
40
40
  content_type: :json,
41
41
  ssl_version: :TLSv1_2,
42
+ verify_ssl: false,
42
43
  payload: (parameters.to_json unless parameters.nil?),
43
44
  headers: headers)
44
45
  rescue => e
@@ -103,4 +104,4 @@ module MidasClient
103
104
  end
104
105
 
105
106
  end
106
- end
107
+ end
@@ -62,8 +62,11 @@ module MidasClient
62
62
  method = :post
63
63
 
64
64
  # monta a URL de chamada da requisição
65
- endpoint= get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:create]
66
-
65
+ if params[:cardToken].blank?
66
+ endpoint= get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:create_manual]
67
+ else
68
+ endpoint= get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:create_recurrent]
69
+ end
67
70
 
68
71
  params[:externalDate] = (params[:externalDate].blank? ? Time.now.iso8601(1) : params[:externalDate])
69
72
  params[:invoicesCount]= (params[:invoicesCount].blank? ? 12 : params[:invoicesCount])
@@ -135,11 +138,42 @@ module MidasClient
135
138
  # percorre cada uma das invoices abertas e chama o método de atualização
136
139
  opened_invoices.each do |inv|
137
140
  update_invoice(inv[:token], {amount: params[:amount]})
138
- end
141
+ end unless opened_invoices.blank?
139
142
  response
140
143
  end
141
144
 
142
- #= This method performs a query by a specific transaction.
145
+ #= This method renew a subscription increasing the number of invoices associated. Works as a most complete update_subscription operation.
146
+ # This is a is synchronous operation.
147
+ #
148
+ # Params:
149
+ # subscriptionToken: URL querystring
150
+ # body:
151
+ # {
152
+ # "invoicesCount":2,
153
+ # "amount":200,
154
+ # "expirationDate":"2019-01-01"
155
+ # }
156
+ #
157
+ # Response:
158
+ # result: {
159
+ # success: true/false
160
+ # code: "XXX"
161
+ # message: "Some message to you"
162
+ # }
163
+ def renew_subscription(subscription_token, params)
164
+ # define o método de envio da requisição
165
+ method = :put
166
+
167
+ # monta a URL de chamada da requisição
168
+ endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:renew].gsub('{subscriptionToken}', subscription_token)
169
+
170
+ # faz a chamada a plataforma de pagamento (MIDAS) para atualizar o valor, numero de invoices e data de expiração inicial das novas invoices de uma assinatura.
171
+ response = request(method, endpoint, self.login, self.password, params)
172
+
173
+ response
174
+ end
175
+
176
+ #= This method performs a query by a specific subscription.
143
177
  # This is a is synchronous operation, using method GET
144
178
  #
145
179
  # Params:
@@ -223,6 +257,139 @@ module MidasClient
223
257
  request(method, endpoint, self.login, self.password, {})
224
258
  end
225
259
 
260
+ #= This method performs a query by a invoice token and return all transactions associated to it.
261
+ # This is a is synchronous operation, using method GET
262
+ #
263
+ # Params:
264
+ # invoice_token: string (Transaction unique identification generated by our
265
+ # gateway and received in the subscription's create response)#
266
+ #
267
+ #
268
+ # Response:
269
+ #
270
+ # {
271
+ # :result=>{
272
+ # :success=>true,
273
+ # :code=>"000",
274
+ # :message=>"Sucesso"
275
+ # },
276
+ # "transactions": [
277
+ # {
278
+ # "externalDate": "2017-10-13T03:00:00.731",
279
+ # "transactionType": "RECURRENT",
280
+ # "paymentMethod": "CREDIT_CARD",
281
+ # "creditCard": {
282
+ # "brand": "MASTER",
283
+ # "panLastDigits": "1137",
284
+ # "expirationMonth": 1,
285
+ # "expirationYear": 2022,
286
+ # "holderName": "Fulano de Tals",
287
+ # "customer": {
288
+ # "documentType": "CPF",
289
+ # "documentNumber": "24503795710"
290
+ # }
291
+ # },
292
+ # "amount": 22950,
293
+ # "instalments": 1,
294
+ # "token": "3962f882146ec3f6bf581a883f52004f",
295
+ # "status": "ERROR"
296
+ # }
297
+ # ]
298
+ # }
299
+ def invoice_transactions(invoice_token)
300
+ # define o método de envio da requisição
301
+ method = :get
302
+
303
+ # monta a URL de chamada da requisição
304
+ endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:invoice_transactions].gsub('{invoiceToken}', invoice_token)
305
+
306
+ # faz a chamada a plataforma de pagamento (MIDAS)
307
+ request(method, endpoint, self.login, self.password, {})
308
+ end
309
+
310
+ #= This method associate a transactionToken to an invoice, which changes the invoice status
311
+ # This is a is synchronous operation, using method PUT
312
+ #
313
+ # Params:
314
+ # invoice_token: string (Transaction unique identification generated by our
315
+ # gateway and received in the subscription's create response)#
316
+ #
317
+ # transaction_token: string Identification of the token from the transaction that will
318
+ # be associated to the invoice
319
+ #
320
+ # Response:
321
+ #
322
+ # {
323
+ # :result=>{
324
+ # :success=>true,
325
+ # :code=>"000",
326
+ # :message=>"Sucesso"
327
+ # }
328
+ def invoice_payment(invoice_token, transaction_token)
329
+ # define o método de envio da requisição
330
+ method = :put
331
+
332
+ # monta a URL de chamada da requisição
333
+ endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:invoice_payment].gsub('{invoiceToken}', invoice_token)
334
+
335
+ # faz a chamada a plataforma de pagamento (MIDAS)
336
+ request(method, endpoint, self.login, self.password, {transactionToken: transaction_token})
337
+ end
338
+
339
+ #= This method set an invoice as PAID, which changes the invoice status
340
+ # This is a is synchronous operation, using method PUT
341
+ #
342
+ # Params:
343
+ # payment_date: string (format YYYY-MM-DD, ex: 2018-05-28)
344
+ #
345
+ # payment_voucher: string Identification of the external payment that will
346
+ # be associated to the invoice
347
+ #
348
+ # Response:
349
+ #
350
+ # {
351
+ # :result=>{
352
+ # :success=>true,
353
+ # :code=>"000",
354
+ # :message=>"Sucesso"
355
+ # }
356
+ def invoice_external_payment(invoice_token, payment_date, payment_voucher)
357
+ # define o método de envio da requisição
358
+ method = :put
359
+
360
+ # monta a URL de chamada da requisição
361
+ endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:invoice_external_payment].gsub('{invoiceToken}', invoice_token)
362
+
363
+ # faz a chamada a plataforma de pagamento (MIDAS)
364
+ request(method, endpoint, self.login, self.password, {paymentDate: payment_date, paymentVoucher: payment_voucher})
365
+ end
366
+
367
+ #= This method cancel an invoice of a subscription
368
+ # This is a is synchronous operation, using method PUT
369
+ #
370
+ # Params:
371
+ # invoice_token: string (Transaction unique identification generated by our
372
+ # gateway and received in the subscription's create response)#
373
+ #
374
+ # Response:
375
+ #
376
+ # {
377
+ # :result=>{
378
+ # :success=>true,
379
+ # :code=>"000",
380
+ # :message=>"Sucesso"
381
+ # }
382
+ def invoice_cancel(invoice_token)
383
+ # define o método de envio da requisição
384
+ method = :put
385
+
386
+ # monta a URL de chamada da requisição
387
+ endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:invoice_cancel].gsub('{invoiceToken}', invoice_token)
388
+
389
+ # faz a chamada a plataforma de pagamento (MIDAS)
390
+ request(method, endpoint, self.login, self.password, {})
391
+ end
392
+
226
393
  #= This method updates the credit card information associated to the subscription.
227
394
  # This is a is synchronous operation, using method PUT
228
395
  #
@@ -257,13 +424,12 @@ module MidasClient
257
424
 
258
425
  #= This method updates a subscription.
259
426
  # This is a is synchronous operation.
260
- #
427
+ # QueryString:
428
+ # invoice_token: Invoice unique identification generated by our gateway
261
429
  # Params:
262
- # subscriptionToken: querystring (Subscription unique identification generated by our
263
- # gateway and received in the subscription's creation response)
264
430
  # amount: number (Only integer numbers, with the last two digits representing the cents.
265
431
  # For example: 100 is equivalent to R$ 1,00)
266
- # expirationDate string deadline date for the invoice. FORMAT: YYY-MM-DD
432
+ # expirationDate string deadline date for the invoice. FORMAT: YYYY-MM-DD
267
433
  #
268
434
  # Response:
269
435
  # result: {
@@ -400,5 +400,77 @@ module MidasClient
400
400
 
401
401
  request(method, endpoint, login, password, {})
402
402
  end
403
+
404
+ #= This method creates a billet to be paid
405
+ #
406
+ # Params:
407
+ # externalId: Unique identifier
408
+ # externalDate: Date of operation
409
+ # bankNumber: Bank Number associated to the PointOfSale
410
+ # payer/name: Payer details
411
+ # payer/documentType
412
+ # payer/documentNumber
413
+ # payer/address
414
+ # payer/neighborhood
415
+ # payer/zipCode
416
+ # payer/city
417
+ # payer/state
418
+ # expirationDate: Expiration Date
419
+ # amount: Value of transaction in cents
420
+ # callbackURL
421
+ #
422
+ # # Response:
423
+ # {
424
+ # "result": {
425
+ # "success": true,
426
+ # "code": "000",
427
+ # "message": "Sucesso"
428
+ # },
429
+ # "transactionToken": "83f90dd4569ab44cb46faa0f62b645a4",
430
+ # "lineCode": "34191.09008 00001.230721 00989.870001 1 74700000000100",
431
+ # "url": "http://api.sandbox.ansertecnologia.net/midas-core/v2/transaction/bankbillet/83f90dd4569ab44cb46faa0f62b645a4"
432
+ # }
433
+ def create_billet(*params)
434
+ # Parametros são recebidos como um array de hash, pego o 1o item do array
435
+ params = params.first
436
+
437
+ # define o método de envio da requisição
438
+ method = :post
439
+
440
+ # monta a URL de chamada da requisição
441
+ endpoint= get_env[:url] + EndPoints::OPERATIONS[:context] + EndPoints::OPERATIONS[:create_billet]
442
+
443
+ # regulariza o formato da data
444
+ params[:externalDate] = (params[:externalDate].blank? ? Time.now.iso8601(1) : params[:externalDate])
445
+
446
+ # faz a chamada a plataforma de pagamento (MIDAS)
447
+ request(method, endpoint, self.login, self.password, params)
448
+
449
+ end
450
+
451
+ #= This method return the URL of billet to be paid
452
+ # This is a is synchronous operation.
453
+ #
454
+ # Params:
455
+ # transactionToken: string (Transaction unique identification generated by our
456
+ # gateway and received in the create billet response)
457
+ #
458
+ # Response:
459
+ # result: {
460
+ # success: true/false
461
+ # code: "XXX"
462
+ # message: "Some message to you"
463
+ # }
464
+ def print_billet(transaction_token)
465
+ # define o método de envio da requisição
466
+ method = :get
467
+
468
+ # monta a URL de chamada da requisição
469
+ endpoint = get_env[:url] + EndPoints::OPERATIONS[:context] + EndPoints::OPERATIONS[:print_billet].gsub('{transactionToken}', transaction_token)
470
+
471
+ # faz a chamada a plataforma de pagamento (MIDAS)
472
+ request(method, endpoint, self.login, self.password, {})
473
+
474
+ end
403
475
  end
404
476
  end
@@ -19,6 +19,10 @@ module MidasClient
19
19
  logger.error "#{text}"
20
20
  end
21
21
 
22
+ def sanitized_document_number(number)
23
+ number.gsub('.', '').gsub('-','') unless number.nil?
24
+ end
25
+
22
26
  def sanitize_pci(text)
23
27
  CreditCardSanitizer.new(replacement_token: '@').sanitize!(text.to_s) || text
24
28
  end
@@ -1,3 +1,3 @@
1
1
  module MidasClient
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.14"
3
3
  end
data/lib/midas_client.rb CHANGED
@@ -24,7 +24,7 @@ module MidasClient
24
24
  attr_reader :gem_root
25
25
 
26
26
  spec = Gem::Specification.find_by_name("midas_client")
27
- @gem_root = spec.gem_dir
27
+ @gem_root = spec.try(:gem_dir)
28
28
 
29
29
  end
30
- end
30
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midas_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Andre Oliveira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-01 00:00:00.000000000 Z
11
+ date: 2023-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -97,7 +97,6 @@ files:
97
97
  - README.md
98
98
  - Rakefile
99
99
  - lib/midas_client.rb
100
- - lib/midas_client/billet.rb
101
100
  - lib/midas_client/endpoints.rb
102
101
  - lib/midas_client/management.rb
103
102
  - lib/midas_client/query.rb
@@ -127,8 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
126
  - !ruby/object:Gem::Version
128
127
  version: '0'
129
128
  requirements: []
130
- rubyforge_project:
131
- rubygems_version: 2.5.1
129
+ rubygems_version: 3.0.8
132
130
  signing_key:
133
131
  specification_version: 4
134
132
  summary: Midas Client REST API - https://ansertecnologia.com
@@ -1,7 +0,0 @@
1
- module MidasClient
2
-
3
- class Billet < Request
4
-
5
- end
6
-
7
- end