mundipagg_api 1.0.0

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.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +191 -0
  3. data/README.md +308 -0
  4. data/lib/mundipagg/Address/billing_address.rb +32 -0
  5. data/lib/mundipagg/Address/buyer_address.rb +36 -0
  6. data/lib/mundipagg/Address/delivery_address.rb +32 -0
  7. data/lib/mundipagg/AntiFraud/anti_fraud_analysis_result.rb +47 -0
  8. data/lib/mundipagg/AntiFraud/query_sale_anti_fraud_analysis_data.rb +51 -0
  9. data/lib/mundipagg/AntiFraud/query_sale_anti_fraud_analysis_history_data.rb +41 -0
  10. data/lib/mundipagg/BaseRequest.rb +11 -0
  11. data/lib/mundipagg/BaseResponse.rb +17 -0
  12. data/lib/mundipagg/BoletoTransaction/boleto_transaction.rb +43 -0
  13. data/lib/mundipagg/BoletoTransaction/boleto_transaction_data.rb +44 -0
  14. data/lib/mundipagg/BoletoTransaction/boleto_transaction_options.rb +14 -0
  15. data/lib/mundipagg/BoletoTransaction/boleto_transaction_report_file.rb +20 -0
  16. data/lib/mundipagg/BoletoTransaction/boleto_transaction_result.rb +35 -0
  17. data/lib/mundipagg/CreditCardTransaction/credit_card.rb +30 -0
  18. data/lib/mundipagg/CreditCardTransaction/credit_card_transaction.rb +32 -0
  19. data/lib/mundipagg/CreditCardTransaction/credit_card_transaction_data.rb +104 -0
  20. data/lib/mundipagg/CreditCardTransaction/credit_card_transaction_options.rb +27 -0
  21. data/lib/mundipagg/CreditCardTransaction/credit_card_transaction_report_file.rb +29 -0
  22. data/lib/mundipagg/CreditCardTransaction/manage_credit_card_transaction.rb +12 -0
  23. data/lib/mundipagg/CreditCardTransaction/retry_sale_credit_card_transaction.rb +13 -0
  24. data/lib/mundipagg/ErrorItem.rb +17 -0
  25. data/lib/mundipagg/ErrorReport.rb +18 -0
  26. data/lib/mundipagg/InstantBuy/credit_card_data.rb +41 -0
  27. data/lib/mundipagg/InstantBuy/get_instant_buy_data_response.rb +18 -0
  28. data/lib/mundipagg/Merchant/merchant.rb +11 -0
  29. data/lib/mundipagg/MundipaggApi.rb +336 -0
  30. data/lib/mundipagg/OnlineDebit/online_debit_transaction_report_file.rb +18 -0
  31. data/lib/mundipagg/Order/order.rb +11 -0
  32. data/lib/mundipagg/Order/order_transaction_report_file.rb +6 -0
  33. data/lib/mundipagg/Parsers/boleto_transaction_parser.rb +31 -0
  34. data/lib/mundipagg/Parsers/credit_card_transaction_parser.rb +40 -0
  35. data/lib/mundipagg/Parsers/header_parser.rb +14 -0
  36. data/lib/mundipagg/Parsers/online_debit_transaction_parser.rb +30 -0
  37. data/lib/mundipagg/Parsers/trailer_parser.rb +15 -0
  38. data/lib/mundipagg/Person/buyer.rb +33 -0
  39. data/lib/mundipagg/Person/person.rb +47 -0
  40. data/lib/mundipagg/Recurrency/recurrency.rb +23 -0
  41. data/lib/mundipagg/Sale/create_sale_request.rb +36 -0
  42. data/lib/mundipagg/Sale/create_sale_response.rb +25 -0
  43. data/lib/mundipagg/Sale/manage_sale_request.rb +17 -0
  44. data/lib/mundipagg/Sale/manage_sale_response.rb +15 -0
  45. data/lib/mundipagg/Sale/query_sale_request.rb +36 -0
  46. data/lib/mundipagg/Sale/query_sale_response.rb +18 -0
  47. data/lib/mundipagg/Sale/request_data.rb +20 -0
  48. data/lib/mundipagg/Sale/retry_sale_options.rb +14 -0
  49. data/lib/mundipagg/Sale/retry_sale_request.rb +22 -0
  50. data/lib/mundipagg/Sale/retry_sale_response.rb +14 -0
  51. data/lib/mundipagg/Sale/sale_data.rb +33 -0
  52. data/lib/mundipagg/Sale/sale_order_data.rb +17 -0
  53. data/lib/mundipagg/SalesOption.rb +17 -0
  54. data/lib/mundipagg/ShoppingCart/shopping_cart.rb +26 -0
  55. data/lib/mundipagg/ShoppingCart/shopping_cart_item.rb +23 -0
  56. data/lib/mundipagg/Trailer.rb +6 -0
  57. data/lib/mundipagg/address.rb +25 -0
  58. data/lib/mundipagg/header.rb +5 -0
  59. data/lib/mundipagg/post_notification.rb +29 -0
  60. data/lib/mundipagg/transaction_report_file.rb +45 -0
  61. data/lib/mundipagg_api.rb +70 -0
  62. data/mundipagg-api.gemspec +18 -0
  63. data/spec/integration/gateway_spec.rb +521 -0
  64. data/spec/integration/test_helper.rb +69 -0
  65. data/spec/spec_helper.rb +96 -0
  66. metadata +227 -0
@@ -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
@@ -0,0 +1,36 @@
1
+ class QuerySaleRequest
2
+ attr_accessor :OrderKey
3
+
4
+ attr_accessor :OrderReference
5
+
6
+ attr_accessor :CreditCardTransactionKey
7
+
8
+ attr_accessor :CreditCardTransactionReference
9
+
10
+ attr_accessor :BoletoTransactionKey
11
+
12
+ attr_accessor :BoletoTransactionReference
13
+
14
+ attr_accessor :QuerySaleRequestEnum
15
+
16
+ # Enum feito para as chamadas do m�todo query
17
+ @@QuerySaleRequestEnum = {
18
+ :OrderKey => 'OrderKey',
19
+ :OrderReference => 'OrderReference',
20
+ :CreditCardTransactionKey => 'CreditCardTransactionKey',
21
+ :CreditCardTransactionReference => 'CreditCardTransactionReference',
22
+ :BoletoTransactionKey => 'BoletoTransactionKey',
23
+ :BoletoTransactionReference => 'BoletoTransactionReference'
24
+ }
25
+
26
+ def self.QuerySaleRequestEnum
27
+ @@QuerySaleRequestEnum
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,18 @@
1
+ class QuerySaleResponse
2
+ # Lista de vendas
3
+ attr_accessor :SaleDataCollection
4
+
5
+ # Indicador do total de vendas
6
+ attr_accessor :SaleDataCount
7
+
8
+ def initialize
9
+ @SaleDataCollection = 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,20 @@
1
+ class RequestData
2
+ # Identificador da origem de venda na loja
3
+ attr_accessor :Origin
4
+
5
+ # Identificador da sess�o do usu�rio no sistema da loja (utilizado pelo servi�o de antifraude)
6
+ attr_accessor :SessionId
7
+
8
+ # Endere�o IP do cliente da loja
9
+ attr_accessor :IpAddress
10
+
11
+ # Categoria da venda e-commerce. B2B ou B2C
12
+ attr_accessor :EcommerceCategory
13
+
14
+ def to_json
15
+ hash = {}
16
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
17
+ hash
18
+ end
19
+
20
+ end