mundipagg_sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +191 -0
  3. data/README.md +63 -0
  4. data/lib/gateway/Address/billing_address.rb +32 -0
  5. data/lib/gateway/Address/buyer_address.rb +36 -0
  6. data/lib/gateway/Address/delivery_address.rb +32 -0
  7. data/lib/gateway/AntiFraud/anti_fraud_analysis_result.rb +47 -0
  8. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_data.rb +51 -0
  9. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data.rb +41 -0
  10. data/lib/gateway/BaseRequest.rb +11 -0
  11. data/lib/gateway/BaseResponse.rb +17 -0
  12. data/lib/gateway/BoletoTransaction/boleto_transaction.rb +43 -0
  13. data/lib/gateway/BoletoTransaction/boleto_transaction_data.rb +44 -0
  14. data/lib/gateway/BoletoTransaction/boleto_transaction_options.rb +14 -0
  15. data/lib/gateway/BoletoTransaction/boleto_transaction_report_file.rb +20 -0
  16. data/lib/gateway/BoletoTransaction/boleto_transaction_result.rb +35 -0
  17. data/lib/gateway/CreditCardTransaction/credit_card.rb +30 -0
  18. data/lib/gateway/CreditCardTransaction/credit_card_transaction.rb +32 -0
  19. data/lib/gateway/CreditCardTransaction/credit_card_transaction_data.rb +104 -0
  20. data/lib/gateway/CreditCardTransaction/credit_card_transaction_options.rb +27 -0
  21. data/lib/gateway/CreditCardTransaction/credit_card_transaction_report_file.rb +29 -0
  22. data/lib/gateway/CreditCardTransaction/manage_credit_card_transaction.rb +12 -0
  23. data/lib/gateway/CreditCardTransaction/retry_sale_credit_card_transaction.rb +13 -0
  24. data/lib/gateway/ErrorItem.rb +17 -0
  25. data/lib/gateway/ErrorReport.rb +18 -0
  26. data/lib/gateway/Gateway.rb +416 -0
  27. data/lib/gateway/InstantBuy/credit_card_data.rb +41 -0
  28. data/lib/gateway/InstantBuy/get_instant_buy_data_response.rb +18 -0
  29. data/lib/gateway/Merchant/merchant.rb +11 -0
  30. data/lib/gateway/OnlineDebit/online_debit_transaction_report_file.rb +18 -0
  31. data/lib/gateway/Order/order.rb +11 -0
  32. data/lib/gateway/Order/order_transaction_report_file.rb +6 -0
  33. data/lib/gateway/Parsers/boleto_transaction_parser.rb +31 -0
  34. data/lib/gateway/Parsers/credit_card_transaction_parser.rb +40 -0
  35. data/lib/gateway/Parsers/header_parser.rb +14 -0
  36. data/lib/gateway/Parsers/online_debit_transaction_parser.rb +30 -0
  37. data/lib/gateway/Parsers/trailer_parser.rb +15 -0
  38. data/lib/gateway/Person/buyer.rb +33 -0
  39. data/lib/gateway/Person/person.rb +47 -0
  40. data/lib/gateway/Recurrency/recurrency.rb +23 -0
  41. data/lib/gateway/Sale/create_sale_request.rb +36 -0
  42. data/lib/gateway/Sale/create_sale_response.rb +25 -0
  43. data/lib/gateway/Sale/manage_sale_request.rb +17 -0
  44. data/lib/gateway/Sale/manage_sale_response.rb +15 -0
  45. data/lib/gateway/Sale/query_sale_request.rb +36 -0
  46. data/lib/gateway/Sale/query_sale_response.rb +18 -0
  47. data/lib/gateway/Sale/request_data.rb +20 -0
  48. data/lib/gateway/Sale/retry_sale_options.rb +14 -0
  49. data/lib/gateway/Sale/retry_sale_request.rb +22 -0
  50. data/lib/gateway/Sale/retry_sale_response.rb +14 -0
  51. data/lib/gateway/Sale/sale_data.rb +33 -0
  52. data/lib/gateway/Sale/sale_order_data.rb +17 -0
  53. data/lib/gateway/SalesOption.rb +17 -0
  54. data/lib/gateway/ShoppingCart/shopping_cart.rb +26 -0
  55. data/lib/gateway/ShoppingCart/shopping_cart_item.rb +23 -0
  56. data/lib/gateway/Trailer.rb +6 -0
  57. data/lib/gateway/address.rb +25 -0
  58. data/lib/gateway/header.rb +5 -0
  59. data/lib/gateway/post_notification.rb +29 -0
  60. data/lib/gateway/transaction_report_file.rb +45 -0
  61. data/lib/mundipagg_sdk.rb +70 -0
  62. data/mundipagg_sdk.gemspec +19 -0
  63. data/spec/integration/gateway_spec.rb +612 -0
  64. data/spec/integration/test_helper.rb +69 -0
  65. data/spec/spec_helper.rb +96 -0
  66. metadata +247 -0
@@ -0,0 +1,41 @@
1
+ class CreditCardData
2
+ # N�mero mascardo do cart�o de cr�dito
3
+ attr_accessor :MaskedCreditCardNumber
4
+
5
+ # Bandeira do cart�o de cr�dito
6
+ attr_accessor :CreditCardBrand
7
+
8
+ @@CreditCardBrandEnum = {
9
+ :Visa => '1',
10
+ :MasterCard => '2',
11
+ :HiperCard => '3',
12
+ :Amex => '4',
13
+ :Diners => '5',
14
+ :Elo => '6',
15
+ :Aura => '7',
16
+ :Discover => '8',
17
+ :CasaShow => '9',
18
+ :Havan => '10',
19
+ :HugCard => '11',
20
+ :AndarAki => '12',
21
+ :LeaderCard => '13',
22
+ :Submarino => '14'
23
+ }
24
+
25
+ # Chave do cart�o de cr�dito. Utilizada para identificar um cart�o de cr�dito no gateway
26
+ attr_accessor :InstantBuyerKey
27
+
28
+ # Informa se o cart�o de cr�dito expirou
29
+ attr_accessor :IsExpiredCreditCard
30
+
31
+ def initialize
32
+ @CreditCardBrand = self.CreditCardBrandEnum
33
+ end
34
+
35
+ def to_json
36
+ hash = {}
37
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
38
+ hash
39
+ end
40
+
41
+ end
@@ -0,0 +1,18 @@
1
+ class GetInstantBuyDataResponse
2
+ # Lista de cart�es de cr�dito
3
+ attr_accessor :CreditCardDataCollection
4
+
5
+ # Total de cart�es de cr�dito retornados
6
+ attr_accessor :CreditCardDataCount
7
+
8
+ def initialize
9
+ @CreditCardDataCollection = Array.new
10
+ end
11
+
12
+ def to_json
13
+ hash = {}
14
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
15
+ hash
16
+ end
17
+
18
+ end
@@ -0,0 +1,11 @@
1
+ class Merchant
2
+ # Identificador da loja na plataforma
3
+ attr_accessor :MerchantReference
4
+
5
+ def to_json
6
+ hash = {}
7
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
+ hash
9
+ end
10
+
11
+ end
@@ -0,0 +1,18 @@
1
+ class OnlineDebitTransactionReportFile
2
+ attr_accessor :Order
3
+ attr_accessor :TransactionKey
4
+ attr_accessor :TransactionReference
5
+ attr_accessor :Bank
6
+ attr_accessor :Status
7
+ attr_accessor :AmountInCents
8
+ attr_accessor :AmountPaidInCents
9
+ attr_accessor :PaymentDate
10
+ attr_accessor :BankReturnCode
11
+ attr_accessor :BankPaymentDate
12
+ attr_accessor :Signature
13
+ attr_accessor :TransactionKeyToBank
14
+
15
+ def initialize
16
+ @Order = OrderTransactionReportFile.new
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ class Order
2
+ # Identificador do pedido no sistema da loja
3
+ attr_accessor :OrderReference
4
+
5
+ def to_json
6
+ hash = {}
7
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
+ hash
9
+ end
10
+
11
+ end
@@ -0,0 +1,6 @@
1
+ class OrderTransactionReportFile
2
+ attr_accessor :OrderKey
3
+ attr_accessor :OrderReference
4
+ attr_accessor :MerchantKey
5
+ attr_accessor :MerchantName
6
+ end
@@ -0,0 +1,31 @@
1
+ class BoletoTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 18
6
+ throw('The expected parameter count is 18')
7
+ end
8
+
9
+ boleto_transaction = BoletoTransactionReportFile.new
10
+ boleto_transaction.Order.OrderKey = elements[1]
11
+ boleto_transaction.Order.OrderReference = elements[2]
12
+ boleto_transaction.Order.MerchantKey = elements[3]
13
+ boleto_transaction.Order.MerchantName = elements[4]
14
+
15
+ boleto_transaction.TransactionKey = elements[5]
16
+ boleto_transaction.TransactionReference = elements[6]
17
+ boleto_transaction.Status = elements[7]
18
+ boleto_transaction.NossoNumero = elements[8]
19
+ boleto_transaction.BankNumber = elements[9]
20
+ boleto_transaction.Agency = elements[10]
21
+ boleto_transaction.Account = elements[11]
22
+ boleto_transaction.BarCode = elements[12]
23
+ boleto_transaction.ExpirationDate = DateTime.strptime(elements[13],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT)
24
+ boleto_transaction.AmountInCents = elements[14].to_i
25
+ boleto_transaction.AmountPaidInCents = (elements[15].to_s == '') == false ? elements[15].to_i : 0
26
+ boleto_transaction.PaymentDate = (elements[16].to_s == '') == false ? DateTime.strptime(elements[16], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
27
+ boleto_transaction.CreditDate = (elements[17].chomp.to_s == '') == false ? DateTime.strptime(elements[17], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
28
+
29
+ return boleto_transaction
30
+ end
31
+ end
@@ -0,0 +1,40 @@
1
+ class CreditCardTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 27
6
+ throw('The expected parameter count is 27')
7
+ end
8
+
9
+ credit_card_transaction = CreditCardTransactionReportFile.new
10
+ credit_card_transaction.Order.OrderKey = elements[1]
11
+ credit_card_transaction.Order.OrderReference = elements[2]
12
+ credit_card_transaction.Order.MerchantKey = elements[3]
13
+ credit_card_transaction.Order.MerchantName = elements[4]
14
+
15
+ credit_card_transaction.TransactionKey = elements[5]
16
+ credit_card_transaction.TransactionKeyToAcquirer = elements[6]
17
+ credit_card_transaction.CreditCardTransactionReference = elements[7]
18
+ credit_card_transaction.CreditCardBrand = elements[8]
19
+ credit_card_transaction.CreditCardNumber = elements[9]
20
+ credit_card_transaction.InstallmentCount = (elements[10].to_s == '') == false ? elements[10].to_i : 0
21
+ credit_card_transaction.AcquirerName = elements[11]
22
+ credit_card_transaction.Status = elements[12]
23
+ credit_card_transaction.AmountInCents = (elements[13].to_s == '') == false ? elements[13].to_i : 0
24
+ credit_card_transaction.IataAmountInCents = (elements[14].to_s == '') == false ? elements[14].to_i : 0
25
+ credit_card_transaction.AuthorizationCode = elements[15]
26
+ credit_card_transaction.TransactionIdentifier = elements[16]
27
+ credit_card_transaction.UniqueSequentialNumber = elements[17]
28
+ credit_card_transaction.AuthorizedAmountInCents = (elements[18].to_s == '') == false ? elements[18].to_i : 0
29
+ credit_card_transaction.CapturedAmountInCents = (elements[19].to_s == '') == false ? elements[19].to_i : 0
30
+ credit_card_transaction.VoidedAmountInCents = (elements[20].to_s == '') == false ? elements[20].to_i : 0
31
+ credit_card_transaction.RefundedAmountInCents = (elements[21].to_s == '') == false ? elements[21].to_i : 0
32
+ credit_card_transaction.AcquirerAuthorizationReturnCode = elements[22]
33
+ credit_card_transaction.AuthorizedDate = (elements[23].to_s == '') == false ? DateTime.strptime(elements[23], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
34
+ credit_card_transaction.CapturedDate = (elements[24].to_s == '') == false ? DateTime.strptime(elements[24], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
35
+ credit_card_transaction.VoidedDate = (elements[25].to_s == '') == false ? DateTime.strptime(elements[25], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
36
+ credit_card_transaction.LastProbeDate = (elements[26].chomp.to_s == '') == false ? DateTime.strptime(elements[26], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
37
+
38
+ return credit_card_transaction
39
+ end
40
+ end
@@ -0,0 +1,14 @@
1
+ class HeaderParser
2
+ def Parse(elements)
3
+ if elements.length < 4
4
+ throw('The expected parameter count is 4')
5
+ end
6
+
7
+ header = Header.new
8
+ header.TransactionProcessedDate = Date.parse(elements[1]).strftime('%Y%m%d')
9
+ header.ReportFileCreateDate = Date.parse(elements[2]).strftime('%Y%m%d %H:%M:%S')
10
+ header.Version = elements[3].chomp
11
+
12
+ return header
13
+ end
14
+ end
@@ -0,0 +1,30 @@
1
+ class OnlineDebitTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 16
6
+ throw('The expected parameter count is 16')
7
+ end
8
+
9
+ online_debit_transaction = OnlineDebitTransactionReportFile.new
10
+
11
+ online_debit_transaction.Order.OrderKey = elements[1]
12
+ online_debit_transaction.Order.OrderReference = elements[2]
13
+ online_debit_transaction.Order.MerchantKey = elements[3]
14
+ online_debit_transaction.Order.MerchantName = elements[4]
15
+
16
+ online_debit_transaction.TransactionKey = elements[5]
17
+ online_debit_transaction.TransactionReference = elements[6]
18
+ online_debit_transaction.Bank = elements[7]
19
+ online_debit_transaction.Status = elements[8]
20
+ online_debit_transaction.AmountInCents = elements[9].to_i
21
+ online_debit_transaction.AmountPaidInCents = (elements[10].to_s == '') == false ? elements[10].to_i : 0
22
+ online_debit_transaction.PaymentDate = (elements[11].to_s == '') == false ? DateTime.strptime(elements[11],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
23
+ online_debit_transaction.BankReturnCode = elements[12]
24
+ online_debit_transaction.BankPaymentDate = elements[13]
25
+ online_debit_transaction.Signature = elements[14]
26
+ online_debit_transaction.TransactionKeyToBank = elements[15].chomp
27
+
28
+ return online_debit_transaction
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ class TrailerParser
2
+ def Parse(elements)
3
+ if elements.length < 5
4
+ throw('The expected parameter count is 5')
5
+ end
6
+
7
+ trailer = Trailer.new
8
+ trailer.OrderDataCount = elements[1]
9
+ trailer.CreditCardTransactionDataCount = elements[2]
10
+ trailer.BoletoTransactionDataCount = elements[3]
11
+ trailer.OnlineDebitTransactionDataCount = elements[4].chomp
12
+
13
+ return trailer
14
+ end
15
+ end
@@ -0,0 +1,33 @@
1
+ require_relative 'person'
2
+
3
+ class Buyer < Person
4
+ # Chave do comprador. Utilizada para identificar um comprador no gateway
5
+ attr_accessor :BuyerKey
6
+
7
+ # Refer�ncia do comprador no sistema da loja
8
+ attr_accessor :BuyerReference
9
+
10
+ # Lista de endere�os do comprador
11
+ attr_accessor :AddressCollection
12
+
13
+ # Data de cria��o do comprador no sistema da loja
14
+ attr_accessor :CreateDateInMerchant
15
+
16
+ # Data da �ltima atualiza��o do cadastro do comprador no sistema da loja
17
+ attr_accessor :LastBuyerUpdateInMerchant
18
+
19
+ # Categoria do comprador
20
+ attr_accessor :BuyerCategory
21
+
22
+ def initialize
23
+ @AddressCollection = Array.new
24
+ end
25
+
26
+
27
+ def to_json
28
+ hash = {}
29
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
30
+ hash
31
+ end
32
+
33
+ end
@@ -0,0 +1,47 @@
1
+ class Person
2
+ # Nome da pessoa
3
+ attr_accessor :Name
4
+
5
+ # Define se � pessoa f�sica ou jur�dica
6
+ attr_accessor :PersonType
7
+
8
+ # N�mero do documento
9
+ attr_accessor :DocumentNumber
10
+
11
+ # Tipo de documento
12
+ attr_accessor :DocumentType
13
+
14
+ # Sexo da pessoa
15
+ attr_accessor :Gender
16
+
17
+ # Data de nascimento
18
+ attr_accessor :Birthdate
19
+
20
+ # E-mail
21
+ attr_accessor :Email
22
+
23
+ # Tipo do email. Pessoal ou comercial
24
+ attr_accessor :EmailType
25
+
26
+ # C�digo identificador do cadastro no Facebook
27
+ attr_accessor :FacebookId
28
+
29
+ # C�digo identificador do cadastro no Twitter
30
+ attr_accessor :TwitterId
31
+
32
+ # Telefone celular
33
+ attr_accessor :MobilePhone
34
+
35
+ # Telefone Residencial
36
+ attr_accessor :HomePhone
37
+
38
+ # Telefone comercial
39
+ attr_accessor :WorkPhone
40
+
41
+ def to_json
42
+ hash = {}
43
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
44
+ hash
45
+ end
46
+
47
+ end
@@ -0,0 +1,23 @@
1
+ class Recurrency
2
+ # Frequ�ncia da recorr�ncia
3
+ attr_accessor :Frequency
4
+
5
+ # Intervalo de recorr�ncia
6
+ attr_accessor :Interval
7
+
8
+ # Data da primeira cobran�a
9
+ attr_accessor :DateToStartBilling
10
+
11
+ # Total de recorr�ncias
12
+ attr_accessor :Recurrences
13
+
14
+ # Informa se ser� necess�rio efetuar o procedimento OneDollarAuth antes de registrar a recorr�ncia
15
+ attr_accessor :OneDollarAuth
16
+
17
+ def to_json
18
+ hash = {}
19
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
20
+ hash
21
+ end
22
+
23
+ end
@@ -0,0 +1,36 @@
1
+ class CreateSaleRequest
2
+
3
+ attr_accessor :CreditCardTransactionCollection
4
+
5
+ attr_accessor :BoletoTransactionCollection
6
+
7
+ attr_accessor :Order
8
+
9
+ attr_accessor :Buyer
10
+
11
+ attr_accessor :ShoppingCartCollection
12
+
13
+ attr_accessor :Options
14
+
15
+ attr_accessor :Merchant
16
+
17
+ attr_accessor :RequestData
18
+
19
+ def initialize
20
+ @CreditCardTransactionCollection = Array.new
21
+ @BoletoTransactionCollection = Array.new
22
+ @ShoppingCartCollection = Array.new
23
+ @Buyer = Buyer.new
24
+ @RequestData = RequestData.new
25
+ @Options = SalesOption.new
26
+ @Merchant = Merchant.new
27
+ @Order = Order.new
28
+ end
29
+
30
+ def to_json
31
+ hash = {}
32
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
33
+ hash
34
+ end
35
+
36
+ end
@@ -0,0 +1,25 @@
1
+ class CreateSaleResponse
2
+ # Lista as transa��es de Cart�o de Cr�dito
3
+ attr_accessor :CreditCardTransactionResultCollection
4
+
5
+ # Lista as transa��es de boleto
6
+ attr_accessor :BoletoTransactionResultCollection
7
+
8
+ # Dados de retorno do pedido
9
+ attr_accessor :OrderResult
10
+
11
+ # Chave do comprador. Utilizada para identificar um comprador no gateway
12
+ attr_accessor :BuyerKey
13
+
14
+ def initialize
15
+ @CreditCardTransactionResultCollection = Array.new
16
+ @BoletoTransactionResultCollection = Array.new
17
+ end
18
+
19
+ def to_json
20
+ hash = {}
21
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
22
+ hash
23
+ end
24
+
25
+ end
@@ -0,0 +1,17 @@
1
+ class ManageSaleRequest
2
+
3
+ attr_accessor :CreditCardTransactionCollection
4
+
5
+ attr_accessor :OrderKey
6
+
7
+ def initialize
8
+ @CreditCardTransactionCollection = Array.new;
9
+ end
10
+
11
+ def to_json
12
+ hash = {}
13
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
14
+ hash
15
+ end
16
+
17
+ end
@@ -0,0 +1,15 @@
1
+ class ManageSaleResponse
2
+ # Cole��o de transa��es de cart�o de cr�dito
3
+ attr_accessor :CreditCardTransactionResultCollection
4
+
5
+ def initialize
6
+ @CreditCardTransactionResultCollection = Array.new
7
+ end
8
+
9
+ def to_json
10
+ hash = {}
11
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
12
+ hash
13
+ end
14
+
15
+ end