mundipagg_api 1.3.0 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c356b5b113df964073244c23876bd7a5a781e1f2
4
- data.tar.gz: 1677acc186ac1efe7ab597f9e18f50f20e7eefdc
3
+ metadata.gz: ca60e5c2427004bb2f91e75ce0ce051699345bfc
4
+ data.tar.gz: 7c1361a4186f8218e08406be78e01ed74c6795bb
5
5
  SHA512:
6
- metadata.gz: 181094efd30571f5d8520b6b56356712a89708e7fbce52ebaac85070bea2d22cfe2768d6216b82dccff83399f526ed5a1cf6a743b0d2d94ebd9f5f555244691f
7
- data.tar.gz: e6465f80f84abab0df44f3674f9420cfbc1155c651865daef57151094fbdaf08eb5d8ea43767eef402cec47d003a27dee067e3fbb8f3821a59ff762f633386e8
6
+ metadata.gz: ebf6a8047ba0de4887fdf33b3dec12e2eb3259345ccc0e7bcacfc166151bde54345593d723ab3f3df1bd00b3ce8f3dd2510231c3b7bd9efb26a4eaeef902a14e
7
+ data.tar.gz: 591550134c8c17c7768fb4432726270547a109d8bc1464e93fc49a406d5d444c951954eccf7b473ffb22f9e8d085a93223b378fb5e4c51222a83ac417cc50975
@@ -18,28 +18,30 @@ class MundipaggApi
18
18
  # URL de homologacao
19
19
  @@SERVICE_URL_STAGING = 'https://stagingv2.mundipaggone.com'
20
20
 
21
+ # URL de sandbox
22
+ @@SERVICE_URL_SANDBOX = 'https://sandbox.mundipaggone.com'
23
+
21
24
  # permite que o integrador adicione uma busca por transacoes utilizando alguns criterios
22
25
  def Query(querySaleRequestEnum, key)
23
26
  # try, tenta fazer o request
24
27
  begin
25
-
26
28
  # se for homologacao faz a chamada por aqui
27
29
  if @serviceEnvironment == :staging
28
- response = RestClient.get @@SERVICE_URL_STAGING + '/Sale/Query/' + querySaleRequestEnum + '=' + key, headers=@@SERVICE_HEADERS
30
+ getRequest(@@SERVICE_URL_STAGING + '/Sale/Query/' + querySaleRequestEnum + '=' + key)
29
31
 
30
32
  # se for producao, faz a chamada por aqui
31
33
  elsif @serviceEnvironment == :production
32
- response = RestClient.get @@SERVICE_URL_PRODUCTION + '/Sale/Query/' + querySaleRequestEnum + '=' + key, headers=@@SERVICE_HEADERS
34
+ getRequest(@@SERVICE_URL_PRODUCTION + '/Sale/Query/' + querySaleRequestEnum + '=' + key)
35
+
36
+ # se for sandbox
37
+ elsif @serviceEnvironment == :sandbox
38
+ getRequest(@@SERVICE_URL_SANDBOX + '/Sale/Query/' + querySaleRequestEnum + '=' + key)
33
39
  end
34
40
 
35
41
  # se der algum erro, trata aqui
36
- rescue RestClient::ExceptionWithResponse => err
37
- return err.response
42
+ rescue Exception => e
43
+ return e.message
38
44
  end
39
-
40
- # se nao houver erros, trata o json e retorna o objeto
41
- querySaleResponse = JSON.load response
42
- querySaleResponse
43
45
  end
44
46
 
45
47
  # criar uma transacao na plataforma One utilizando um ou mais meios de pagamento
@@ -177,30 +179,37 @@ class MundipaggApi
177
179
  end
178
180
 
179
181
  # transforma o objeto Buyer em json
180
- if createSaleRequest.Buyer.to_json.any? && createSaleRequest.Buyer.AddressCollection.any?
182
+ if createSaleRequest.Buyer.AddressCollection.any?
181
183
  b = createSaleRequest.Buyer.to_json
182
184
  saleHash['Buyer'] = b
183
185
 
184
- if createSaleRequest.Buyer.AddressCollection.any?
185
- saleHash['Buyer']['AddressCollection'] = []
186
- createSaleRequest.Buyer.AddressCollection.each do |address|
187
- a = address.to_json
188
- saleHash['Buyer']['AddressCollection'] << a
189
- end
190
- else
191
- saleHash['Buyer']['AddressCollection'] = nil
186
+ saleHash['Buyer']['AddressCollection'] = []
187
+ createSaleRequest.Buyer.AddressCollection.each do |address|
188
+ a = address.to_json
189
+ saleHash['Buyer']['AddressCollection'] << a
192
190
  end
193
191
  else
194
- saleHash['Buyer'] = nil
192
+ buyer_hash = createSaleRequest.Buyer.to_json
193
+ buyer_hash.delete('AddressCollection')
194
+ if buyer_hash.blank? == false
195
+ b = createSaleRequest.Buyer.to_json
196
+ saleHash['Buyer'] = b
197
+ saleHash['Buyer']['AddressCollection'] = nil
198
+ else
199
+ saleHash['Buyer'] = nil
200
+ end
195
201
  end
202
+
196
203
  rescue Exception => e
197
- puts e.message
204
+ return e.message
198
205
  end
199
206
 
200
207
  if @serviceEnvironment == :staging
201
208
  url = @@SERVICE_URL_STAGING + '/Sale/'
202
209
  elsif @serviceEnvironment == :production
203
210
  url = @@SERVICE_URL_PRODUCTION + '/Sale/'
211
+ elsif @serviceEnvironment == :sandbox
212
+ url = @@SERVICE_URL_SANDBOX + '/Sale/'
204
213
  end
205
214
  postRequest(saleHash.to_json, url)
206
215
  end
@@ -225,12 +234,14 @@ class MundipaggApi
225
234
  end
226
235
  end
227
236
  rescue Exception => e
228
- puts e.message
237
+ return e.message
229
238
  end
230
239
  if @serviceEnvironment == :staging
231
240
  url = @@SERVICE_URL_STAGING + '/Sale/Retry'
232
241
  elsif @serviceEnvironment == :production
233
242
  url = @@SERVICE_URL_PRODUCTION + '/Sale/Retry'
243
+ elsif @serviceEnvironment == :sandbox
244
+ url = @@SERVICE_URL_SANDBOX + '/Sale/Retry'
234
245
  end
235
246
  postRequest(saleHash.to_json, url)
236
247
  end
@@ -248,12 +259,14 @@ class MundipaggApi
248
259
  end
249
260
  end
250
261
  rescue Exception => e
251
- puts e.message
262
+ return e.message
252
263
  end
253
264
  if @serviceEnvironment == :staging
254
265
  url = @@SERVICE_URL_STAGING + '/Sale/Cancel'
255
266
  elsif @serviceEnvironment == :production
256
267
  url = @@SERVICE_URL_PRODUCTION + '/Sale/Cancel'
268
+ elsif @serviceEnvironment == :sandbox
269
+ url = @@SERVICE_URL_SANDBOX + '/Sale/Cancel'
257
270
  end
258
271
  postRequest(saleHash.to_json, url)
259
272
  end
@@ -271,12 +284,14 @@ class MundipaggApi
271
284
  end
272
285
  end
273
286
  rescue Exception => e
274
- puts e.message
287
+ return e.message
275
288
  end
276
289
  if @serviceEnvironment == :staging
277
290
  url = @@SERVICE_URL_STAGING + '/Sale/Capture'
278
291
  elsif @serviceEnvironment == :production
279
292
  url = @@SERVICE_URL_PRODUCTION + '/Sale/Capture'
293
+ elsif @serviceEnvironment == :sandbox
294
+ url = @@SERVICE_URL_SANDBOX + '/Sale/Capture'
280
295
  end
281
296
  postRequest(saleHash.to_json, url)
282
297
  end
@@ -286,7 +301,7 @@ class MundipaggApi
286
301
  begin
287
302
  response = PostNotification.ParseNotification(xml)
288
303
  rescue Exception => err
289
- return err.response
304
+ return err.message
290
305
  end
291
306
 
292
307
  return response
@@ -318,7 +333,7 @@ class MundipaggApi
318
333
  transaction_report_file = TransactionReportFile.new
319
334
  begin
320
335
  response = transaction_report_file.TransactionReportFileParser(file_to_parse)
321
- rescue Exception=>err
336
+ rescue Exception => err
322
337
  return err
323
338
  end
324
339
  return response
@@ -331,21 +346,21 @@ class MundipaggApi
331
346
 
332
347
  # se for homologacao faz a chamada por aqui
333
348
  if @serviceEnvironment == :staging
334
- response = RestClient.get @@SERVICE_URL_STAGING + '/CreditCard/' + instant_buy_key, headers=@@SERVICE_HEADERS
349
+ getRequest(@@SERVICE_URL_STAGING + '/CreditCard/' + instant_buy_key)
335
350
 
336
351
  # se for producao, faz a chamada por aqui
337
352
  elsif @serviceEnvironment == :production
338
- response = RestClient.get @@SERVICE_URL_PRODUCTION + '/CreditCard/' + instant_buy_key, headers=@@SERVICE_HEADERS
353
+ getRequest(@@SERVICE_URL_PRODUCTION + '/CreditCard/' + instant_buy_key)
354
+
355
+ # se for sandbox
356
+ elsif @serviceEnvironment == :sandbox
357
+ getRequest(@@SERVICE_URL_SANDBOX + '/CreditCard/' + instant_buy_key)
339
358
  end
340
359
 
341
360
  # se der algum erro, trata aqui
342
- rescue RestClient::ExceptionWithResponse => err
343
- return err.response
361
+ rescue Exception => e
362
+ return e.message
344
363
  end
345
-
346
- # se nao houver erros, trata o json e retorna o objeto
347
- instant_buy_response = JSON.load response
348
- instant_buy_response
349
364
  end
350
365
 
351
366
  # faz uma requisicao com buyer key
@@ -355,21 +370,24 @@ class MundipaggApi
355
370
 
356
371
  # se for homologacao faz a chamada por aqui
357
372
  if @serviceEnvironment == :staging
358
- response = RestClient.get @@SERVICE_URL_STAGING + '/CreditCard/' + buyer_key + '/BuyerKey', headers=@@SERVICE_HEADERS
373
+ response = getRequest(@@SERVICE_URL_STAGING + '/CreditCard/' + buyer_key + '/BuyerKey')
359
374
 
360
375
  # se for producao, faz a chamada por aqui
361
376
  elsif @serviceEnvironment == :production
362
- response = RestClient.get @@SERVICE_URL_PRODUCTION + '/CreditCard/' + buyer_key + '/BuyerKey', headers=@@SERVICE_HEADERS
377
+ response = getRequest(@@SERVICE_URL_PRODUCTION + '/CreditCard/' + buyer_key + '/BuyerKey')
378
+
379
+ # se for sandbox, faz a chamada por aqui
380
+ elsif @serviceEnvironment == :sandbox
381
+ response = getRequest(@@SERVICE_URL_SANDBOX + '/CreditCard/' + buyer_key + '/BuyerKey')
363
382
  end
364
383
 
365
- # se der algum erro, trata aqui
366
- rescue RestClient::ExceptionWithResponse => err
367
- return err.response
384
+ # se der algum erro, trata aqui
385
+ rescue Exception => e
386
+ return e.message
368
387
  end
369
388
 
370
- # se nao houver erros, trata o json e retorna o objeto
371
- buyer_response = JSON.load response
372
- buyer_response
389
+ # se nao houver erros, retorna o objeto
390
+ response
373
391
  end
374
392
 
375
393
  # funcao de post generica
@@ -378,7 +396,19 @@ class MundipaggApi
378
396
  begin
379
397
  response = RestClient.post(url, payload, headers=@@SERVICE_HEADERS)
380
398
  rescue RestClient::ExceptionWithResponse => err
381
- return err.response #err.response
399
+ return err.response
400
+ end
401
+ json_response = JSON.load response
402
+ json_response
403
+ end
404
+
405
+ # funcao get generica
406
+ def getRequest(url)
407
+ response = nil
408
+ begin
409
+ response = RestClient.get(url, headers=@@SERVICE_HEADERS)
410
+ rescue RestClient::ExceptionWithResponse => err
411
+ return err.response
382
412
  end
383
413
  json_response = JSON.load response
384
414
  json_response
@@ -2,7 +2,7 @@ Gem::Specification.new do |s|
2
2
  s.name = 'mundipagg_api'
3
3
  s.summary = 'MundiPagg Ruby Client Library'
4
4
  s.description = 'Ruby library for integrating with the MundiPagg payment web services'
5
- s.version = '1.3.0' # Major.Minor.Revision
5
+ s.version = '1.3.1' # Major.Minor.Revision
6
6
  s.author = 'MundiPagg'
7
7
  s.email = 'github@mundipagg.com'
8
8
  s.homepage = 'http://www.mundipagg.com/'
@@ -2,7 +2,7 @@ require_relative '../../lib/mundipagg_api'
2
2
  require_relative 'test_helper'
3
3
 
4
4
  merchant_key = 'merchantKey'
5
- gateway = MundipaggApi.new(:production, merchant_key)
5
+ gateway = MundipaggApi.new(:sandbox, merchant_key)
6
6
 
7
7
  RSpec.describe MundipaggApi do
8
8
  it 'should create a sale with boleto' do
@@ -173,6 +173,9 @@ RSpec.describe MundipaggApi do
173
173
  shoppingCartCollectionItem.ShoppingCartItemCollection << shoppingCartItem
174
174
 
175
175
  createSaleRequest = CreateSaleRequest.new
176
+
177
+ createSaleRequest.Buyer.AddressCollection = Array.new
178
+
176
179
  createSaleRequest.Buyer.Birthdate = Date.new(1990, 3, 3).strftime("%Y-%m-%dT%H:%M:%S")
177
180
  createSaleRequest.Buyer.DocumentNumber = '12345678901'
178
181
  createSaleRequest.Buyer.DocumentType = 'CPF'
@@ -514,28 +517,87 @@ RSpec.describe MundipaggApi do
514
517
  file_path = "C:\\Users\\Public\\Documents\\"
515
518
  gateway.TransactionReportFileDownloader(date, file_name, file_path)
516
519
 
517
- file_path = file_path + file_name + '.txt'
520
+ file_path = file_path + file_name + '.txt'
518
521
  file_exist = File.exist?(file_path)
519
522
  expect(file_exist).to eq true
520
523
  end
521
524
 
522
525
  it 'should consult transaction with instant buy key' do
523
- response = gateway.InstantBuyKey('2B2894E2-6767-4FE4-9A37-5F3E60EF9814')
526
+ credit_card_transaction = CreditCardTransaction.new
527
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
528
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
529
+ credit_card_transaction.CreditCard.ExpMonth = 10
530
+ credit_card_transaction.CreditCard.ExpYear = 2018
531
+ credit_card_transaction.CreditCard.SecurityCode = '123'
532
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
533
+ credit_card_transaction.AmountInCents = 100
534
+
535
+ sale_request = CreateSaleRequest.new
536
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
537
+
538
+ sale_response = gateway.CreateSale(sale_request)
539
+
540
+ expect(sale_response['ErrorReport']).to eq nil
541
+
542
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
543
+
544
+ response = gateway.InstantBuyKey(instant_buy_key)
524
545
 
525
546
  expect(response['ErrorReport']).to eq nil
526
547
  end
527
548
 
528
549
  it 'should consult transaction with buyer key' do
529
- response = gateway.BuyerKey('EF42EDE1-D482-4A13-84F2-637A201AA4F2')
530
-
550
+
551
+ credit_card_transaction = CreditCardTransaction.new
552
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
553
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
554
+ credit_card_transaction.CreditCard.ExpMonth = 10
555
+ credit_card_transaction.CreditCard.ExpYear = 2018
556
+ credit_card_transaction.CreditCard.SecurityCode = '123'
557
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
558
+ credit_card_transaction.AmountInCents = 100
559
+
560
+ sale_request = CreateSaleRequest.new
561
+ sale_request.Buyer.Name = 'Anakin Skywalker'
562
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
563
+ sale_request.Buyer.DocumentNumber = '12345678901'
564
+ sale_request.Buyer.DocumentType = 'CPF'
565
+ sale_request.Buyer.PersonType = 'Person'
566
+ sale_request.Buyer.Gender = 'M'
567
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
568
+
569
+ sale_response = gateway.CreateSale(sale_request)
570
+
571
+ expect(sale_response['ErrorReport']).to eq nil
572
+
573
+ response = gateway.BuyerKey(sale_response['BuyerKey'])
574
+
531
575
  expect(response['ErrorReport']).to eq nil
532
576
  end
533
577
 
534
578
  it 'should do a credit card transaction with instant buy key' do
579
+ credit_card_transaction = CreditCardTransaction.new
580
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
581
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
582
+ credit_card_transaction.CreditCard.ExpMonth = 10
583
+ credit_card_transaction.CreditCard.ExpYear = 2018
584
+ credit_card_transaction.CreditCard.SecurityCode = '123'
585
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
586
+ credit_card_transaction.AmountInCents = 100
587
+
588
+ sale_request = CreateSaleRequest.new
589
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
590
+
591
+ sale_response = gateway.CreateSale(sale_request)
592
+
593
+ expect(sale_response['ErrorReport']).to eq nil
594
+
595
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
596
+
535
597
  # coleta dados do cartao
536
598
  creditCardTransaction = CreditCardTransaction.new
537
599
  creditCardTransaction.AmountInCents = 100
538
- creditCardTransaction.CreditCard.InstantBuyKey = '1A045F96-B640-44E6-95F3-FFFC5A2F7D18'
600
+ creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
539
601
 
540
602
  # cria a transacao
541
603
  createSaleRequest = CreateSaleRequest.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mundipagg_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MundiPagg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-02 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client