mundipagg_api 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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