mundipagg_sdk 1.3.0 → 1.4.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 (52) hide show
  1. checksums.yaml +13 -5
  2. data/LICENSE +190 -190
  3. data/README.md +61 -61
  4. data/lib/gateway/Address/billing_address.rb +33 -33
  5. data/lib/gateway/Address/buyer_address.rb +38 -38
  6. data/lib/gateway/Address/delivery_address.rb +34 -34
  7. data/lib/gateway/BoletoTransaction/boleto_transaction.rb +40 -40
  8. data/lib/gateway/BoletoTransaction/boleto_transaction_options.rb +16 -16
  9. data/lib/gateway/BoletoTransaction/boleto_transaction_report_file.rb +22 -22
  10. data/lib/gateway/CreditCardTransaction/credit_card.rb +30 -30
  11. data/lib/gateway/CreditCardTransaction/credit_card_transaction.rb +33 -33
  12. data/lib/gateway/CreditCardTransaction/credit_card_transaction_options.rb +28 -28
  13. data/lib/gateway/CreditCardTransaction/credit_card_transaction_report_file.rb +31 -31
  14. data/lib/gateway/CreditCardTransaction/manage_credit_card_transaction.rb +14 -14
  15. data/lib/gateway/CreditCardTransaction/retry_sale_credit_card_transaction.rb +14 -14
  16. data/lib/gateway/Gateway.rb +525 -627
  17. data/lib/gateway/InstantBuyData/create_instant_buy_data_request.rb +30 -30
  18. data/lib/gateway/InstantBuyData/update_instant_buy_data_request.rb +10 -10
  19. data/lib/gateway/Merchant/merchant.rb +12 -12
  20. data/lib/gateway/OnlineDebit/online_debit_transaction_report_file.rb +21 -21
  21. data/lib/gateway/Order/order.rb +13 -13
  22. data/lib/gateway/Order/order_transaction_report_file.rb +8 -8
  23. data/lib/gateway/Parsers/boleto_transaction_parser.rb +33 -33
  24. data/lib/gateway/Parsers/credit_card_transaction_parser.rb +42 -42
  25. data/lib/gateway/Parsers/header_parser.rb +16 -16
  26. data/lib/gateway/Parsers/online_debit_transaction_parser.rb +32 -32
  27. data/lib/gateway/Parsers/trailer_parser.rb +16 -16
  28. data/lib/gateway/Person/buyer.rb +32 -32
  29. data/lib/gateway/Person/create_buyer_request.rb +22 -22
  30. data/lib/gateway/Person/person.rb +48 -48
  31. data/lib/gateway/Recurrency/recurrency.rb +24 -24
  32. data/lib/gateway/Sale/create_sale_request.rb +37 -37
  33. data/lib/gateway/Sale/manage_sale_request.rb +18 -18
  34. data/lib/gateway/Sale/query_sale_request.rb +37 -37
  35. data/lib/gateway/Sale/request_data.rb +21 -21
  36. data/lib/gateway/Sale/retry_sale_options.rb +15 -15
  37. data/lib/gateway/Sale/retry_sale_request.rb +23 -23
  38. data/lib/gateway/Sale/sale_data.rb +30 -30
  39. data/lib/gateway/Sale/sale_order_data.rb +18 -18
  40. data/lib/gateway/SalesOption.rb +18 -18
  41. data/lib/gateway/ShoppingCart/shopping_cart.rb +27 -27
  42. data/lib/gateway/ShoppingCart/shopping_cart_item.rb +24 -24
  43. data/lib/gateway/Trailer.rb +8 -8
  44. data/lib/gateway/header.rb +7 -7
  45. data/lib/gateway/post_notification.rb +31 -31
  46. data/lib/gateway/transaction_report_file.rb +47 -47
  47. data/lib/mundipagg_sdk.rb +61 -61
  48. data/mundipagg_sdk.gemspec +20 -20
  49. data/spec/integration/gateway_spec.rb +1023 -1022
  50. data/spec/integration/test_helper.rb +68 -68
  51. data/spec/spec_helper.rb +96 -96
  52. metadata +33 -33
@@ -1,48 +1,48 @@
1
- module Gateway
2
-
3
- class TransactionReportFile
4
- def TransactionReportFileParser(file_to_parse)
5
- response = {}
6
- response['CreditCardTransaction'] = []
7
- response['OnlineDebitTransaction'] = []
8
- response['BoletoTransaction'] = []
9
-
10
- header_parser = HeaderParser.new
11
- credit_card_parser = CreditCardTransactionParser.new
12
- boleto_parser = BoletoTransactionParser.new
13
- online_debit_parser = OnlineDebitTransactionParser.new
14
- trailer_parser = TrailerParser.new
15
-
16
- begin
17
- response_splited = file_to_parse.split("\n")
18
-
19
- response_splited.each do |item|
20
-
21
- to_parse_item = item.split(',')
22
- if to_parse_item[0] == '01'
23
- response['Header'] = header_parser.Parse(to_parse_item)
24
- end
25
-
26
- if to_parse_item[0] == '20'
27
- response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
28
- end
29
-
30
- if to_parse_item[0] == '40'
31
- response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
32
- end
33
-
34
- if to_parse_item[0] == '30'
35
- response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
36
- end
37
-
38
- if to_parse_item[0] == '99'
39
- response['Trailer'] = trailer_parser.Parse(to_parse_item)
40
- end
41
- end
42
- rescue Exception => err
43
- return err
44
- end
45
- return response
46
- end
47
- end
1
+ module Gateway
2
+
3
+ class TransactionReportFile
4
+ def TransactionReportFileParser(file_to_parse)
5
+ response = {}
6
+ response['CreditCardTransaction'] = []
7
+ response['OnlineDebitTransaction'] = []
8
+ response['BoletoTransaction'] = []
9
+
10
+ header_parser = HeaderParser.new
11
+ credit_card_parser = CreditCardTransactionParser.new
12
+ boleto_parser = BoletoTransactionParser.new
13
+ online_debit_parser = OnlineDebitTransactionParser.new
14
+ trailer_parser = TrailerParser.new
15
+
16
+ begin
17
+ response_splited = file_to_parse.split("\n")
18
+
19
+ response_splited.each do |item|
20
+
21
+ to_parse_item = item.split(',')
22
+ if to_parse_item[0] == '01'
23
+ response['Header'] = header_parser.Parse(to_parse_item)
24
+ end
25
+
26
+ if to_parse_item[0] == '20'
27
+ response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
28
+ end
29
+
30
+ if to_parse_item[0] == '40'
31
+ response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
32
+ end
33
+
34
+ if to_parse_item[0] == '30'
35
+ response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
36
+ end
37
+
38
+ if to_parse_item[0] == '99'
39
+ response['Trailer'] = trailer_parser.Parse(to_parse_item)
40
+ end
41
+ end
42
+ rescue Exception => err
43
+ return err
44
+ end
45
+ return response
46
+ end
47
+ end
48
48
  end
@@ -1,61 +1,61 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
3
-
4
- require 'json'
5
- require 'rest-client'
6
- require 'nori'
7
- require 'rexml/document'
8
-
9
- require_relative 'gateway/BoletoTransaction/boleto_transaction'
10
- require_relative 'gateway/BoletoTransaction/boleto_transaction_options'
11
- require_relative 'gateway/BoletoTransaction/boleto_transaction_report_file'
12
-
13
- require_relative 'gateway/CreditCardTransaction/credit_card'
14
- require_relative 'gateway/CreditCardTransaction/credit_card_transaction'
15
- require_relative 'gateway/CreditCardTransaction/credit_card_transaction_options'
16
- require_relative 'gateway/CreditCardTransaction/manage_credit_card_transaction'
17
- require_relative 'gateway/CreditCardTransaction/retry_sale_credit_card_transaction'
18
- require_relative 'gateway/CreditCardTransaction/credit_card_transaction_report_file'
19
-
20
- require_relative 'gateway/Address/billing_address'
21
- require_relative 'gateway/Address/buyer_address'
22
- require_relative 'gateway/Address/delivery_address'
23
-
24
- require_relative 'gateway/Merchant/merchant'
25
-
26
- require_relative 'gateway/Order/order'
27
- require_relative 'gateway/Order/order_transaction_report_file'
28
-
29
- require_relative 'gateway/OnlineDebit/online_debit_transaction_report_file'
30
-
31
- require_relative 'gateway/Parsers/boleto_transaction_parser'
32
- require_relative 'gateway/Parsers/credit_card_transaction_parser'
33
- require_relative 'gateway/Parsers/online_debit_transaction_parser'
34
- require_relative 'gateway/Parsers/header_parser'
35
- require_relative 'gateway/Parsers/trailer_parser'
36
-
37
- require_relative 'gateway/Person/buyer'
38
- require_relative 'gateway/Person/person'
39
-
40
- require_relative 'gateway/Recurrency/recurrency'
41
-
42
- require_relative 'gateway/Sale/create_sale_request'
43
- require_relative 'gateway/Sale/manage_sale_request'
44
- require_relative 'gateway/Sale/query_sale_request'
45
- require_relative 'gateway/Sale/request_data'
46
- require_relative 'gateway/Sale/retry_sale_options'
47
- require_relative 'gateway/Sale/retry_sale_request'
48
- require_relative 'gateway/Sale/sale_data'
49
-
50
- require_relative 'gateway/ShoppingCart/shopping_cart'
51
- require_relative 'gateway/ShoppingCart/shopping_cart_item'
52
-
53
- require_relative 'gateway/SalesOption'
54
- require_relative 'gateway/post_notification'
55
- require_relative 'gateway/Gateway'
56
- require_relative 'gateway/header'
57
- require_relative 'gateway/Trailer'
58
- require_relative 'gateway/transaction_report_file'
59
- require_relative 'gateway/InstantBuyData/create_instant_buy_data_request'
60
- require_relative 'gateway/InstantBuyData/update_instant_buy_data_request'
61
- require_relative 'gateway/Person/create_buyer_request'
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'json'
5
+ require 'rest-client'
6
+ require 'nori'
7
+ require 'rexml/document'
8
+
9
+ require_relative 'gateway/BoletoTransaction/boleto_transaction'
10
+ require_relative 'gateway/BoletoTransaction/boleto_transaction_options'
11
+ require_relative 'gateway/BoletoTransaction/boleto_transaction_report_file'
12
+
13
+ require_relative 'gateway/CreditCardTransaction/credit_card'
14
+ require_relative 'gateway/CreditCardTransaction/credit_card_transaction'
15
+ require_relative 'gateway/CreditCardTransaction/credit_card_transaction_options'
16
+ require_relative 'gateway/CreditCardTransaction/manage_credit_card_transaction'
17
+ require_relative 'gateway/CreditCardTransaction/retry_sale_credit_card_transaction'
18
+ require_relative 'gateway/CreditCardTransaction/credit_card_transaction_report_file'
19
+
20
+ require_relative 'gateway/Address/billing_address'
21
+ require_relative 'gateway/Address/buyer_address'
22
+ require_relative 'gateway/Address/delivery_address'
23
+
24
+ require_relative 'gateway/Merchant/merchant'
25
+
26
+ require_relative 'gateway/Order/order'
27
+ require_relative 'gateway/Order/order_transaction_report_file'
28
+
29
+ require_relative 'gateway/OnlineDebit/online_debit_transaction_report_file'
30
+
31
+ require_relative 'gateway/Parsers/boleto_transaction_parser'
32
+ require_relative 'gateway/Parsers/credit_card_transaction_parser'
33
+ require_relative 'gateway/Parsers/online_debit_transaction_parser'
34
+ require_relative 'gateway/Parsers/header_parser'
35
+ require_relative 'gateway/Parsers/trailer_parser'
36
+
37
+ require_relative 'gateway/Person/buyer'
38
+ require_relative 'gateway/Person/person'
39
+
40
+ require_relative 'gateway/Recurrency/recurrency'
41
+
42
+ require_relative 'gateway/Sale/create_sale_request'
43
+ require_relative 'gateway/Sale/manage_sale_request'
44
+ require_relative 'gateway/Sale/query_sale_request'
45
+ require_relative 'gateway/Sale/request_data'
46
+ require_relative 'gateway/Sale/retry_sale_options'
47
+ require_relative 'gateway/Sale/retry_sale_request'
48
+ require_relative 'gateway/Sale/sale_data'
49
+
50
+ require_relative 'gateway/ShoppingCart/shopping_cart'
51
+ require_relative 'gateway/ShoppingCart/shopping_cart_item'
52
+
53
+ require_relative 'gateway/SalesOption'
54
+ require_relative 'gateway/post_notification'
55
+ require_relative 'gateway/Gateway'
56
+ require_relative 'gateway/header'
57
+ require_relative 'gateway/Trailer'
58
+ require_relative 'gateway/transaction_report_file'
59
+ require_relative 'gateway/InstantBuyData/create_instant_buy_data_request'
60
+ require_relative 'gateway/InstantBuyData/update_instant_buy_data_request'
61
+ require_relative 'gateway/Person/create_buyer_request'
@@ -1,20 +1,20 @@
1
- Gem::Specification.new do |s|
2
- s.name = 'mundipagg_sdk'
3
- s.summary = 'MundiPagg Ruby Client Library'
4
- s.description = 'Ruby library for integrating with the MundiPagg payment web services'
5
- s.version = '1.3.0' # Major.Minor.Revision
6
- s.author = 'MundiPagg'
7
- s.email = 'github@mundipagg.com'
8
- s.homepage = 'http://www.mundipagg.com/'
9
- s.files = Dir.glob ["README.md", "LICENSE", "lib/**/*.{rb}", "*.gemspec"]
10
- s.test_files = Dir.glob ["spec/**/*"]
11
- s.add_dependency 'rest-client', '~> 1.8', '>= 1.8.0'
12
- s.add_dependency 'nori', '~> 2.6', '>= 2.6.0'
13
- s.add_dependency 'gyoku', '~> 1.3', '>= 1.3.1'
14
- s.add_dependency 'nokogiri', '~> 1.6', '>= 1.6.6.2'
15
- s.add_dependency 'ffi', '~> 1.9', '>= 1.9.10'
16
- s.add_dependency 'bundler', '~> 1.10', '>= 1.10.6'
17
- s.add_development_dependency 'rspec', '~> 3.3', '>= 3.3.0'
18
- s.required_ruby_version = '>= 2.1.7'
19
- s.license = 'Apache 2.0'
20
- end
1
+ Gem::Specification.new do |s|
2
+ s.name = 'mundipagg_sdk'
3
+ s.summary = 'MundiPagg Ruby Client Library'
4
+ s.description = 'Ruby library for integrating with the MundiPagg payment web services'
5
+ s.version = '1.4.0' # Major.Minor.Revision
6
+ s.author = 'MundiPagg'
7
+ s.email = 'github@mundipagg.com'
8
+ s.homepage = 'http://www.mundipagg.com/'
9
+ s.files = Dir.glob ["README.md", "LICENSE", "lib/**/*.{rb}", "*.gemspec"]
10
+ s.test_files = Dir.glob ["spec/**/*"]
11
+ s.add_dependency 'rest-client', '~> 1.8', '>= 1.8.0'
12
+ s.add_dependency 'nori', '~> 2.6', '>= 2.6.0'
13
+ s.add_dependency 'gyoku', '~> 1.3', '>= 1.3.1'
14
+ s.add_dependency 'nokogiri', '~> 1.6', '>= 1.6.6.2'
15
+ s.add_dependency 'ffi', '~> 1.9', '>= 1.9.10'
16
+ s.add_dependency 'bundler', '~> 1.10', '>= 1.10.6'
17
+ s.add_development_dependency 'rspec', '~> 3.3', '>= 3.3.0'
18
+ s.required_ruby_version = '>= 2.1.7'
19
+ s.license = 'Apache 2.0'
20
+ end
@@ -1,1022 +1,1023 @@
1
- require_relative '../../lib/mundipagg_sdk'
2
- require_relative 'test_helper'
3
-
4
- merchant_key = '85328786-8BA6-420F-9948-5352F5A183EB'
5
-
6
- gateway = Gateway::Gateway.new(:sandbox, merchant_key)
7
-
8
- RSpec.describe Gateway do
9
- it 'should create a sale with boleto' do
10
- createSaleRequest = Gateway::CreateSaleRequest.new
11
-
12
- boletoTransaction = Gateway::BoletoTransaction.new
13
- boletoTransaction.AmountInCents = 100
14
- boletoTransaction.BankNumber = '237'
15
- boletoTransaction.DocumentNumber = '12345678901'
16
- boletoTransaction.Instructions = 'Pagar antes do vencimento'
17
- boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
18
- boletoTransaction.Options.CurrencyIso = 'BRL'
19
- boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
20
-
21
- createSaleRequest.BoletoTransactionCollection << boletoTransaction
22
-
23
- response = gateway.CreateSale(createSaleRequest)
24
-
25
- expect(response[:ErrorReport]).to eq nil
26
- end
27
-
28
- it 'should create a sale with credit card' do
29
- createSaleRequest = Gateway::CreateSaleRequest.new
30
-
31
- buyerAddress = Gateway::BuyerAddress.new
32
- buyerAddress.AddressType = 'Residential'
33
- buyerAddress.City = 'Rio de Janeiro'
34
- buyerAddress.Complement = '10 Andar'
35
- buyerAddress.Country = 'Brazil'
36
- buyerAddress.District = 'Centro'
37
- buyerAddress.Number = '199'
38
- buyerAddress.State = 'RJ'
39
- buyerAddress.Street = 'Rua da Quitanda'
40
- buyerAddress.ZipCode = '20091005'
41
-
42
- creditCardTransaction = Gateway::CreditCardTransaction.new
43
- creditCardTransaction.AmountInCents = 100
44
- creditCardTransaction.InstallmentCount = 1
45
- creditCardTransaction.TransactionReference = 'CreditCard One RubySDK Test'
46
- creditCardTransaction.Options.PaymentMethodCode = 1
47
- creditCardTransaction.Options.SoftDescriptorText = 'My Store Name'
48
- creditCardTransaction.CreditCard.CreditCardNumber = '5453010000066167'
49
- creditCardTransaction.CreditCard.ExpMonth = 5
50
- creditCardTransaction.CreditCard.ExpYear = 18
51
- creditCardTransaction.CreditCard.HolderName = 'Maria do Carmo'
52
- creditCardTransaction.CreditCard.SecurityCode = '123'
53
- creditCardTransaction.CreditCard.CreditCardBrand = 'Mastercard'
54
- creditCardTransaction.CreditCard.BillingAddress.City = 'Rio de Janeiro'
55
- creditCardTransaction.CreditCard.BillingAddress.Complement = '10 Andar'
56
- creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
57
- creditCardTransaction.CreditCard.BillingAddress.District = 'Centro'
58
- creditCardTransaction.CreditCard.BillingAddress.Number = '199'
59
- creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
60
- creditCardTransaction.CreditCard.BillingAddress.Street = 'Rua da Quitanda'
61
- creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20091005'
62
-
63
- createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
64
- createSaleRequest.Buyer.Birthdate = Date.new(2001, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
65
- createSaleRequest.Buyer.BuyerCategory = 'Normal'
66
- createSaleRequest.Buyer.Email = 'mundiBuyer@mundi.com.br'
67
- createSaleRequest.Buyer.EmailType = 'Personal'
68
- createSaleRequest.Buyer.Gender = 'M'
69
- createSaleRequest.Buyer.HomePhone = '22222222'
70
- createSaleRequest.Buyer.MobilePhone = '988888888'
71
- createSaleRequest.Buyer.WorkPhone = '25555555'
72
- createSaleRequest.Buyer.CreateDateInMerchant = (Date.parse(Time.now.to_s)).strftime("%Y-%m-%dT%H:%M:%S")
73
- createSaleRequest.Buyer.LastBuyerUpdateInMerchant = (Date.parse(Time.now.to_s)).strftime("%Y-%m-%dT%H:%M:%S")
74
- createSaleRequest.Buyer.DocumentNumber = '51212382749'
75
- createSaleRequest.Buyer.DocumentType = 'CPF'
76
- createSaleRequest.Buyer.Name = 'Jose da Silva Ramos'
77
- createSaleRequest.Buyer.PersonType = 'Person'
78
- createSaleRequest.Buyer.AddressCollection << buyerAddress
79
-
80
- response = gateway.CreateSale(createSaleRequest)
81
-
82
- expect(response[:ErrorReport]).to eq nil
83
-
84
- end
85
-
86
- it 'should create a sale with all types of transactions and all fields filled' do
87
- # creates boleto transaction object
88
- boletoTransaction = Gateway::BoletoTransaction.new
89
-
90
- # 100 reais in cents
91
- boletoTransaction.AmountInCents = 10000
92
- boletoTransaction.BankNumber = '237'
93
- boletoTransaction.BillingAddress.City = 'Tatooine'
94
- boletoTransaction.BillingAddress.Complement = ''
95
- boletoTransaction.BillingAddress.Country = 'Brazil'
96
- boletoTransaction.BillingAddress.District = 'Mos Eisley'
97
- boletoTransaction.BillingAddress.Number = '123'
98
- boletoTransaction.BillingAddress.State = 'RJ'
99
- boletoTransaction.BillingAddress.Street = 'Mos Eisley Cantina'
100
- boletoTransaction.BillingAddress.ZipCode = '20001000'
101
- boletoTransaction.DocumentNumber = '12345678901'
102
- boletoTransaction.Instructions = 'Pagar antes do vencimento'
103
- boletoTransaction.Options.CurrencyIso = 'BRL'
104
- boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
105
- boletoTransaction.TransactionReference = 'NumeroDaTransacao'
106
-
107
-
108
- # create credit card transaction object
109
- creditCardTransaction = Gateway::CreditCardTransaction.new
110
-
111
- # 100 reais in cents
112
- creditCardTransaction.AmountInCents = 10000
113
- creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
114
- creditCardTransaction.CreditCard.BillingAddress.Complement = ''
115
- creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
116
- creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
117
- creditCardTransaction.CreditCard.BillingAddress.Number = '123'
118
- creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
119
- creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
120
- creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
121
- creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
122
- creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
123
- creditCardTransaction.CreditCard.ExpMonth = 10
124
- creditCardTransaction.CreditCard.ExpYear = 22
125
- creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
126
- creditCardTransaction.CreditCard.SecurityCode = '123'
127
- creditCardTransaction.CreditCardOperation = 'AuthOnly'
128
- creditCardTransaction.InstallmentCount = 1
129
- creditCardTransaction.Options.CurrencyIso = 'BRL'
130
- creditCardTransaction.Options.PaymentMethodCode = 1
131
- creditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'
132
-
133
- shoppingCartItem = Gateway::ShoppingCartItemCollection.new
134
- shoppingCartItem.Description = 'Red Lightsaber'
135
- shoppingCartItem.DiscountAmountInCents = 0
136
- shoppingCartItem.ItemReference = 'NumeroDoProduto'
137
- shoppingCartItem.Name = 'Lightsaber'
138
- shoppingCartItem.Quantity = 1
139
- shoppingCartItem.TotalCostInCents = 18000
140
- shoppingCartItem.UnitCostInCents = 18000
141
-
142
- shoppingCartCollection = Gateway::ShoppingCartCollection.new
143
- shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
144
- shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
145
- shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
146
- shoppingCartCollection.DeliveryAddress.District = 'Command Room'
147
- shoppingCartCollection.DeliveryAddress.Number = '321'
148
- shoppingCartCollection.DeliveryAddress.State = 'RJ'
149
- shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
150
- shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
151
- shoppingCartCollection.DeliveryDeadline = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
152
- shoppingCartCollection.EstimatedDeliveryDate = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
153
- shoppingCartCollection.FreighCostInCents = 2000
154
- shoppingCartCollection.ShippingCompany = 'Empire'
155
- shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
156
-
157
- # creates request object for transaction creation
158
- createSaleRequest = Gateway::CreateSaleRequest.new
159
-
160
- # adds to the boleto transaction collection
161
- createSaleRequest.BoletoTransactionCollection << boletoTransaction
162
-
163
- buyerAddress = Gateway::BuyerAddress.new
164
- buyerAddress.AddressType = 'Residential'
165
- buyerAddress.City = 'Tatooine'
166
- buyerAddress.Complement = ''
167
- buyerAddress.Country = 'Brazil'
168
- buyerAddress.District = 'Mos Eisley'
169
- buyerAddress.Number = '123'
170
- buyerAddress.State = 'RJ'
171
- buyerAddress.Street = 'Mos Eisley Cantina'
172
- buyerAddress.ZipCode = '20001000'
173
-
174
- createSaleRequest.Buyer.AddressCollection << buyerAddress
175
- createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
176
- createSaleRequest.Buyer.BuyerCategory = 'Normal'
177
- createSaleRequest.Buyer.BuyerReference = 'C3PO'
178
- createSaleRequest.Buyer.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
179
- createSaleRequest.Buyer.DocumentNumber = '12345678901'
180
- createSaleRequest.Buyer.DocumentType = 'CPF'
181
- createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
182
- createSaleRequest.Buyer.EmailType = 'Personal'
183
- createSaleRequest.Buyer.FacebookId = 'lukeskywalker8917'
184
- createSaleRequest.Buyer.Gender = 'M'
185
- createSaleRequest.Buyer.HomePhone = '(21)123456789'
186
- createSaleRequest.Buyer.MobilePhone = '(21)987654321'
187
- createSaleRequest.Buyer.Name = 'Luke Skywalker'
188
- createSaleRequest.Buyer.PersonType = 'Person'
189
- createSaleRequest.Buyer.TwitterId = '@lukeskywalker8917'
190
- createSaleRequest.Buyer.WorkPhone = '(21)28467902'
191
-
192
- # adds to the credit card transaction collection
193
- createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
194
- createSaleRequest.Merchant.MerchantReference = 'IdDaLojaPlataforma'
195
- createSaleRequest.Options.AntiFraudServiceCode = 0
196
- createSaleRequest.Options.CurrencyIso = 'BRL'
197
- createSaleRequest.Options.IsAntiFraudEnabled = true
198
- createSaleRequest.Options.Retries = 1
199
- createSaleRequest.Order.OrderReference = 'NumeroDoPedido'
200
- createSaleRequest.RequestData.EcommerceCategory = 'B2C'
201
- createSaleRequest.RequestData.IpAddress = '127.0.0.1'
202
- createSaleRequest.RequestData.Origin = 'SiteDeCompra'
203
- createSaleRequest.RequestData.SessionId = 'IdSesssaoNoSite'
204
-
205
- # adds shopping cart collection in the request
206
- createSaleRequest.ShoppingCartCollection << shoppingCartCollection
207
-
208
- # make the request and returns a response hash
209
- response = gateway.CreateSale(createSaleRequest)
210
-
211
- expect(response[:ErrorReport]).to eq nil
212
- end
213
-
214
- it 'should create an anti fraud transaction' do
215
- # create credit card transaction object
216
- creditCardTransaction = Gateway::CreditCardTransaction.new
217
-
218
- # 100 reais in cents
219
- creditCardTransaction.AmountInCents = 10000
220
- creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
221
- creditCardTransaction.CreditCard.BillingAddress.Complement = ''
222
- creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
223
- creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
224
- creditCardTransaction.CreditCard.BillingAddress.Number = '123'
225
- creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
226
- creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
227
- creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
228
- creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
229
- creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
230
- creditCardTransaction.CreditCard.ExpMonth = 10
231
- creditCardTransaction.CreditCard.ExpYear = 22
232
- creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
233
- creditCardTransaction.CreditCard.SecurityCode = '123'
234
- creditCardTransaction.InstallmentCount = 1
235
-
236
- shoppingCartItem = Gateway::ShoppingCartItemCollection.new
237
- shoppingCartItem.Description = 'Red Lightsaber'
238
- shoppingCartItem.DiscountAmountInCents = 0
239
- shoppingCartItem.ItemReference = 'NumeroDoProduto'
240
- shoppingCartItem.Name = 'Lightsaber'
241
- shoppingCartItem.Quantity = 1
242
- shoppingCartItem.TotalCostInCents = 18000
243
- shoppingCartItem.UnitCostInCents = 0
244
-
245
- shoppingCartCollection = Gateway::ShoppingCartCollection.new
246
- shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
247
- shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
248
- shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
249
- shoppingCartCollection.DeliveryAddress.District = 'Command Room'
250
- shoppingCartCollection.DeliveryAddress.Number = '321'
251
- shoppingCartCollection.DeliveryAddress.State = 'RJ'
252
- shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
253
- shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
254
- shoppingCartCollection.FreighCostInCents = 2000
255
- shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
256
-
257
- # creates request object for transaction creation
258
- createSaleRequest = Gateway::CreateSaleRequest.new
259
-
260
- buyerAddress = Gateway::BuyerAddress.new
261
- buyerAddress.AddressType = 'Residential'
262
- buyerAddress.City = 'Tatooine'
263
- buyerAddress.Complement = ''
264
- buyerAddress.Country = 'Brazil'
265
- buyerAddress.District = 'Mos Eisley'
266
- buyerAddress.Number = '123'
267
- buyerAddress.State = 'RJ'
268
- buyerAddress.Street = 'Mos Eisley Cantina'
269
- buyerAddress.ZipCode = '20001000'
270
-
271
- createSaleRequest.Buyer.AddressCollection << buyerAddress
272
- createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
273
- createSaleRequest.Buyer.BuyerReference = 'C3PO'
274
- createSaleRequest.Buyer.DocumentNumber = '12345678901'
275
- createSaleRequest.Buyer.DocumentType = 'CPF'
276
- createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
277
- createSaleRequest.Buyer.EmailType = 'Personal'
278
- createSaleRequest.Buyer.Gender = 'M'
279
- createSaleRequest.Buyer.HomePhone = '(21)123456789'
280
- createSaleRequest.Buyer.MobilePhone = '(21)987654321'
281
- createSaleRequest.Buyer.Name = 'Luke Skywalker'
282
- createSaleRequest.Buyer.PersonType = 'Person'
283
- createSaleRequest.Buyer.WorkPhone = '(21)28467902'
284
-
285
- # adds to the credit card transaction collection
286
- createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
287
- createSaleRequest.Options.IsAntiFraudEnabled = true
288
- createSaleRequest.Order.OrderReference = 'NumeroDoPedido'
289
-
290
- # adds shopping cart collection in the request
291
- createSaleRequest.ShoppingCartCollection << shoppingCartCollection
292
-
293
- # make the request and returns a response hash
294
- response = gateway.CreateSale(createSaleRequest)
295
-
296
- expect(response[:ErrorReport]).to eq nil
297
- end
298
-
299
- it 'should consult the order with order key' do
300
- querySaleRequest = Gateway::QuerySaleRequest.new
301
- createSaleRequest = Gateway::CreateSaleRequest.new
302
-
303
- boletoTransaction = Gateway::BoletoTransaction.new
304
- boletoTransaction.AmountInCents = 100
305
- boletoTransaction.BankNumber = '237'
306
- boletoTransaction.DocumentNumber = '12345678901'
307
- boletoTransaction.Instructions = 'Pagar antes do vencimento'
308
- boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
309
- boletoTransaction.Options.CurrencyIso = 'BRL'
310
- boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
311
-
312
- createSaleRequest.BoletoTransactionCollection << boletoTransaction
313
-
314
- boleto_response = gateway.CreateSale(createSaleRequest)
315
-
316
- querySaleRequest.OrderKey = boleto_response['OrderResult']['OrderKey']
317
- responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
318
-
319
- orderKey = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderKey"]
320
-
321
- expect(orderKey).to eq querySaleRequest.OrderKey
322
- end
323
-
324
- it 'should consult the order with order reference' do
325
- querySaleRequest = Gateway::QuerySaleRequest.new
326
- createSaleRequest = Gateway::CreateSaleRequest.new
327
-
328
- boletoTransaction = Gateway::BoletoTransaction.new
329
- boletoTransaction.AmountInCents = 100
330
- boletoTransaction.BankNumber = '237'
331
- boletoTransaction.DocumentNumber = '12345678901'
332
- boletoTransaction.Instructions = 'Pagar antes do vencimento'
333
- boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
334
- boletoTransaction.Options.CurrencyIso = 'BRL'
335
- boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
336
-
337
- createSaleRequest.Order.OrderReference = 'RubyOrderReferenceUnitTest'
338
- createSaleRequest.BoletoTransactionCollection << boletoTransaction
339
-
340
- boleto_response = gateway.CreateSale(createSaleRequest)
341
-
342
- querySaleRequest.OrderReference = boleto_response['OrderResult']['OrderReference']
343
- responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
344
-
345
- orderReference = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderReference"]
346
-
347
- expect(orderReference).to eq querySaleRequest.OrderReference
348
- end
349
-
350
- it 'should do a retry method' do
351
- retrySaleRequest = Gateway::RetrySaleRequest.new
352
- retrySaleCreditCardTransactionItem = Gateway::RetrySaleCreditCardTransaction.new
353
-
354
- createSaleRequest = Gateway::CreateSaleRequest.new
355
- creditCardTransactionItem = Gateway::CreditCardTransaction.new
356
- creditCardTransactionItem.AmountInCents = 100
357
- creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
358
- creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
359
- creditCardTransactionItem.CreditCard.ExpMonth = 10
360
- creditCardTransactionItem.CreditCard.ExpYear = 19
361
- creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
362
- creditCardTransactionItem.CreditCard.SecurityCode = '123'
363
- creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
364
- creditCardTransactionItem.InstallmentCount = 1
365
- creditCardTransactionItem.Options.CurrencyIso = 'BRL'
366
- creditCardTransactionItem.Options.PaymentMethodCode = 1
367
- creditCardTransactionItem.TransactionReference = 'RubySDK-RetryTest'
368
-
369
- createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
370
- createSaleRequest.Order.OrderReference = 'RubySDK-RetryTest'
371
-
372
- # cria o pedido que sera usado para retentativa
373
- responseCreate = gateway.CreateSale(createSaleRequest)
374
-
375
- # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a retentativa
376
- orderKey = responseCreate["OrderResult"]["OrderKey"]
377
- transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
378
-
379
- # monta o objeto de retentativa
380
- retrySaleCreditCardTransactionItem.SecurityCode = '123'
381
- retrySaleCreditCardTransactionItem.TransactionKey = transactionKey
382
- retrySaleRequest.OrderKey = orderKey
383
- retrySaleRequest.RetrySaleCreditCardTransactionCollection << retrySaleCreditCardTransactionItem
384
-
385
- # faz a requisicao de retentativa
386
- response = gateway.Retry(retrySaleRequest)
387
-
388
- # espera que o transaction key seja igual, significa que foi tudo ok no teste
389
- responseTransactionKey = response['CreditCardTransactionResultCollection'][0]['TransactionKey']
390
-
391
- expect(responseTransactionKey).to eq transactionKey
392
-
393
- end
394
-
395
- it 'should do a retry method with only order key' do
396
- createSaleRequest = Gateway::CreateSaleRequest.new
397
- creditCardTransactionItem = Gateway::CreditCardTransaction.new
398
- creditCardTransactionItem.AmountInCents = 100
399
- creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
400
- creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
401
- creditCardTransactionItem.CreditCard.ExpMonth = 10
402
- creditCardTransactionItem.CreditCard.ExpYear = 22
403
- creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
404
- creditCardTransactionItem.CreditCard.SecurityCode = '123'
405
- creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
406
- creditCardTransactionItem.TransactionReference = 'RubySDK-RetryTest'
407
-
408
- createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
409
- createSaleRequest.Order.OrderReference = 'RubySDK-RetryTest'
410
-
411
- # cria o pedido que sera usado para retentativa
412
- responseCreate = gateway.CreateSale(createSaleRequest)
413
-
414
- # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a retentativa
415
- orderKey = responseCreate["OrderResult"]["OrderKey"]
416
- transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
417
-
418
- retrySaleRequest = Gateway::RetrySaleRequest.new
419
-
420
- # monta o objeto de retentativa
421
- retrySaleRequest.OrderKey = orderKey
422
-
423
- # faz a requisicao de retentativa
424
- response = gateway.Retry(retrySaleRequest)
425
-
426
- expect(response['ErrorReport']).to eq nil
427
-
428
- end
429
-
430
- it 'should cancel a transaction' do
431
- createSaleRequest = Gateway::CreateSaleRequest.new
432
- creditCardTransactionItem = Gateway::CreditCardTransaction.new
433
- creditCardTransactionItem.AmountInCents = 100
434
- creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
435
- creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
436
- creditCardTransactionItem.CreditCard.ExpMonth = 10
437
- creditCardTransactionItem.CreditCard.ExpYear = 19
438
- creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
439
- creditCardTransactionItem.CreditCard.SecurityCode = '123'
440
- creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
441
- creditCardTransactionItem.InstallmentCount = 1
442
- creditCardTransactionItem.Options.CurrencyIso = 'BRL'
443
- creditCardTransactionItem.Options.PaymentMethodCode = 1
444
- creditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
445
-
446
- createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
447
- createSaleRequest.Order.OrderReference = 'RubySDK-CancelTest'
448
-
449
- # cria o pedido que sera usado para cancelamento
450
- responseCreate = gateway.CreateSale(createSaleRequest)
451
-
452
- # pega o orderkey e o transaction key da resposta que sao necessarios para fazer o cancelamento
453
- orderKey = responseCreate["OrderResult"]["OrderKey"]
454
- transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
455
-
456
- # itens necessarios para cancelamento da transacao de cartao de credito
457
- cancelCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
458
- cancelCreditCardTransactionItem.AmountInCents = 100
459
- cancelCreditCardTransactionItem.TransactionKey = transactionKey
460
- cancelCreditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
461
-
462
- # monta o objeto para cancelamento de transacao
463
- cancelSaleRequest = Gateway::ManageSaleRequest.new
464
- cancelSaleRequest.OrderKey = orderKey
465
- cancelSaleRequest.CreditCardTransactionCollection << cancelCreditCardTransactionItem
466
-
467
- response = gateway.Cancel(cancelSaleRequest)
468
-
469
- expect(response[:ErrorReport]).to eq nil
470
- end
471
-
472
- it 'should capture a transaction' do
473
- createSaleRequest = Gateway::CreateSaleRequest.new
474
- creditCardTransactionItem = Gateway::CreditCardTransaction.new
475
- creditCardTransactionItem.AmountInCents = 100
476
- creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
477
- creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
478
- creditCardTransactionItem.CreditCard.ExpMonth = 10
479
- creditCardTransactionItem.CreditCard.ExpYear = 19
480
- creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
481
- creditCardTransactionItem.CreditCard.SecurityCode = '123'
482
- creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
483
- creditCardTransactionItem.InstallmentCount = 1
484
- creditCardTransactionItem.Options.CurrencyIso = 'BRL'
485
- creditCardTransactionItem.Options.PaymentMethodCode = 1
486
- creditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
487
-
488
- createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
489
- createSaleRequest.Order.OrderReference = 'RubySDK-CaptureTest'
490
-
491
- # cria o pedido que sera usado para captura
492
- responseCreate = gateway.CreateSale(createSaleRequest)
493
-
494
- # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a captura
495
- orderKey = responseCreate["OrderResult"]["OrderKey"]
496
- transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
497
-
498
- # itens necessarios para captura da transacao de cartao de credito
499
- captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
500
- captureCreditCardTransactionItem.AmountInCents = 100
501
- captureCreditCardTransactionItem.TransactionKey = transactionKey
502
- captureCreditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
503
-
504
- # monta o objeto para cancelamento de transacao
505
- captureSaleRequest = Gateway::ManageSaleRequest.new
506
- captureSaleRequest.OrderKey = orderKey
507
- captureSaleRequest.CreditCardTransactionCollection << captureCreditCardTransactionItem
508
-
509
- response = gateway.Capture(captureSaleRequest)
510
-
511
- # espera que o ErrorReport seja nulo, significa que foi tudo ok na transação
512
- expect(response['ErrorReport']).to eq nil
513
- end
514
-
515
- it 'should do a parse xml to notification interpretation' do
516
- creditCardTransactionItem = Gateway::CreditCardTransaction.new
517
- creditCardTransactionItem.AmountInCents = 100
518
- creditCardTransactionItem.TransactionReference = 'Ruby PostNotification Test'
519
- creditCardTransactionItem.InstallmentCount = 1
520
- creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
521
- creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
522
- creditCardTransactionItem.CreditCard.CreditCardNumber = '4111111111111111'
523
- creditCardTransactionItem.CreditCard.HolderName = 'Bruce Wayne'
524
- creditCardTransactionItem.CreditCard.SecurityCode = '123'
525
- creditCardTransactionItem.CreditCard.ExpMonth = 5
526
- creditCardTransactionItem.CreditCard.ExpYear = 20
527
- creditCardTransactionItem.Options.PaymentMethodCode = 1
528
-
529
- createSaleRequest = Gateway::CreateSaleRequest.new
530
- createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
531
-
532
- response_hash = gateway.CreateSale(createSaleRequest)
533
-
534
- credit_card_result = response_hash['CreditCardTransactionResultCollection'][0]
535
-
536
- expect(credit_card_result['Success']).to eq true
537
- # expect(credit_card_result['CreditCardOperation']).to eq 'AuthOnly'
538
- # expect(credit_card_result['CreditCardTransactionStatus']).to eq 'AuthorizedPendingCapture'
539
-
540
- captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
541
- captureCreditCardTransactionItem.AmountInCents = creditCardTransactionItem.AmountInCents
542
- captureCreditCardTransactionItem.TransactionKey = credit_card_result['TransactionKey']
543
- captureCreditCardTransactionItem.TransactionReference = creditCardTransactionItem.TransactionReference
544
-
545
- captureSale = Gateway::ManageSaleRequest.new
546
- captureSale.OrderKey = response_hash['OrderResult']['OrderKey']
547
- captureSale.CreditCardTransactionCollection << captureCreditCardTransactionItem
548
-
549
- captureResponse = gateway.Capture(captureSale)
550
-
551
- expect(captureResponse['ErrorReport']).to eq nil
552
-
553
-
554
- xml = TestHelper.CreateFakePostNotification(response_hash, captureResponse)
555
-
556
- response = gateway.ParseXmlToNotification(xml)
557
-
558
- expect(response.nil?).to eq false
559
- end
560
-
561
- it 'should do a parse on online debit xml' do
562
- xml = '<StatusNotification xmlns="http://schemas.datacontract.org/2004/07/Gateway.NotificationService.DataContract"
563
- xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
564
- i:schemaLocation="http://schemas.datacontract.org/2004/07/Gateway.NotificationService.DataContract StatusNotificationXmlSchema.xsd">
565
- <AmountInCents>500</AmountInCents>
566
- <AmountPaidInCents>0</AmountPaidInCents>
567
- <BoletoTransaction>
568
- <AmountInCents>500</AmountInCents>
569
- <AmountPaidInCents>0</AmountPaidInCents>
570
- <BoletoExpirationDate>2013-02-08T00:00:00</BoletoExpirationDate>
571
- <NossoNumero>0123456789</NossoNumero>
572
- <StatusChangedDate>2012-11-06T08:55:49.753</StatusChangedDate>
573
- <TransactionKey>4111D523-9A83-4BE3-94D2-160F1BC9C4BD</TransactionKey>
574
- <TransactionReference>B2E32108</TransactionReference>
575
- <PreviousBoletoTransactionStatus>Generated</PreviousBoletoTransactionStatus>
576
- <BoletoTransactionStatus>Paid</BoletoTransactionStatus>
577
- </BoletoTransaction>
578
- <CreditCardTransaction>
579
- <Acquirer>Simulator</Acquirer>
580
- <AmountInCents>2000</AmountInCents>
581
- <AuthorizedAmountInCents>2000</AuthorizedAmountInCents>
582
- <CapturedAmountInCents>2000</CapturedAmountInCents>
583
- <CreditCardBrand>Visa</CreditCardBrand>
584
- <RefundedAmountInCents i:nil="true"/>
585
- <StatusChangedDate>2012-11-06T10:52:55.93</StatusChangedDate>
586
- <TransactionIdentifier>123456</TransactionIdentifier>
587
- <TransactionKey>351FC96A-7F42-4269-AF3C-1E3C179C1CD0</TransactionKey>
588
- <TransactionReference>24de0432</TransactionReference>
589
- <UniqueSequentialNumber>123456</UniqueSequentialNumber>
590
- <VoidedAmountInCents i:nil="true"/>
591
- <PreviousCreditCardTransactionStatus>AuthorizedPendingCapture</PreviousCreditCardTransactionStatus>
592
- <CreditCardTransactionStatus>Captured</CreditCardTransactionStatus>
593
- </CreditCardTransaction>
594
-
595
- <OnlineDebitTransaction>
596
- <AmountInCents>100</AmountInCents>
597
- <AmountPaidInCents>0</AmountPaidInCents>
598
- <StatusChangedDate>2013-06-27T19:46:46.87</StatusChangedDate>
599
- <TransactionKey>fb3f158a-0309-4ae3-b8ef-3c5ac2d603d2</TransactionKey>
600
- <TransactionReference>30bfee13-c908-4e3b-9f70-1f84dbe79fbf</TransactionReference>
601
- <PreviousOnlineDebitTransactionStatus>OpenedPendingPayment</PreviousOnlineDebitTransactionStatus>
602
- <OnlineDebitTransactionStatus>NotPaid</OnlineDebitTransactionStatus>
603
- </OnlineDebitTransaction>
604
-
605
- <MerchantKey>B1B1092C-8681-40C2-A734-500F22683D9B</MerchantKey>
606
- <OrderKey>18471F05-9F6D-4497-9C24-D60D5BBB6BBE</OrderKey>
607
- <OrderReference>64a85875</OrderReference>
608
- <OrderStatus>Paid</OrderStatus>
609
- </StatusNotification>'
610
-
611
- response = gateway.ParseXmlToNotification(xml)
612
-
613
- expect(response.nil?).to eq false
614
- end
615
-
616
- it 'should bring the transaction report file' do
617
- date = Date.new(2015, 9, 19)
618
- result = gateway.TransactionReportFile(date)
619
- split_commas = result.split(',')
620
-
621
- expect(split_commas[1]).to eq '20150919'
622
- end
623
-
624
- it 'should parse the transaction report file received' do
625
- date = Date.new(2015, 9, 19)
626
- request_to_parse = gateway.TransactionReportFile(date)
627
- result = gateway.TransactionReportFileParser(request_to_parse)
628
-
629
- expect(result['Header'].TransactionProcessedDate).to eq '20150919'
630
- end
631
-
632
- it 'should save the transaction report file at selected path' do
633
- date = Date.new(2015, 9, 19)
634
-
635
- file = Tempfile.new('Test')
636
- gateway.TransactionReportFileDownloader(date, 'Test', file.path)
637
-
638
- file_path = file.path.to_s + 'Test.txt'
639
- file_exist = File.exist?(file_path)
640
-
641
- file.close
642
- file.unlink
643
-
644
- expect(file_exist).to eq true
645
- end
646
-
647
- it 'should get credit card instant buy key deprecated' do
648
- credit_card_transaction = Gateway::CreditCardTransaction.new
649
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
650
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
651
- credit_card_transaction.CreditCard.ExpMonth = 10
652
- credit_card_transaction.CreditCard.ExpYear = 2018
653
- credit_card_transaction.CreditCard.SecurityCode = '123'
654
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
655
- credit_card_transaction.AmountInCents = 100
656
-
657
- sale_request = Gateway::CreateSaleRequest.new
658
- sale_request.CreditCardTransactionCollection << credit_card_transaction
659
-
660
- sale_response = gateway.CreateSale(sale_request)
661
-
662
- expect(sale_response['ErrorReport']).to eq nil
663
-
664
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
665
-
666
- response = gateway.InstantBuyKey(instant_buy_key)
667
-
668
- expect(response['ErrorReport']).to eq nil
669
- end
670
-
671
- it 'should get credit card instant buy key' do
672
- credit_card_transaction = Gateway::CreditCardTransaction.new
673
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
674
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
675
- credit_card_transaction.CreditCard.ExpMonth = 10
676
- credit_card_transaction.CreditCard.ExpYear = 2018
677
- credit_card_transaction.CreditCard.SecurityCode = '123'
678
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
679
- credit_card_transaction.AmountInCents = 100
680
-
681
- sale_request = Gateway::CreateSaleRequest.new
682
- sale_request.CreditCardTransactionCollection << credit_card_transaction
683
-
684
- sale_response = gateway.CreateSale(sale_request)
685
-
686
- expect(sale_response['ErrorReport']).to eq nil
687
-
688
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
689
-
690
- response = gateway.GetCreditCard(instant_buy_key)
691
-
692
- expect(response['ErrorReport']).to eq nil
693
- end
694
-
695
- it 'should delete credit card instant buy key' do
696
- credit_card_transaction = Gateway::CreditCardTransaction.new
697
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
698
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
699
- credit_card_transaction.CreditCard.ExpMonth = 10
700
- credit_card_transaction.CreditCard.ExpYear = 2018
701
- credit_card_transaction.CreditCard.SecurityCode = '123'
702
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
703
- credit_card_transaction.AmountInCents = 100
704
-
705
- sale_request = Gateway::CreateSaleRequest.new
706
- sale_request.CreditCardTransactionCollection << credit_card_transaction
707
-
708
- sale_response = gateway.CreateSale(sale_request)
709
-
710
- expect(sale_response['ErrorReport']).to eq nil
711
-
712
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
713
-
714
- response = gateway.DeleteCreditCard(instant_buy_key)
715
-
716
- expect(response['Success']).to eq true
717
- end
718
-
719
- it 'should consult get credit card with buyer key deprecated' do
720
-
721
- credit_card_transaction = Gateway::CreditCardTransaction.new
722
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
723
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
724
- credit_card_transaction.CreditCard.ExpMonth = 10
725
- credit_card_transaction.CreditCard.ExpYear = 2018
726
- credit_card_transaction.CreditCard.SecurityCode = '123'
727
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
728
- credit_card_transaction.AmountInCents = 100
729
-
730
- sale_request = Gateway::CreateSaleRequest.new
731
- sale_request.Buyer.Name = 'Anakin Skywalker'
732
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
733
- sale_request.Buyer.DocumentNumber = '12345678901'
734
- sale_request.Buyer.DocumentType = 'CPF'
735
- sale_request.Buyer.PersonType = 'Person'
736
- sale_request.Buyer.Gender = 'M'
737
- sale_request.CreditCardTransactionCollection << credit_card_transaction
738
-
739
- sale_response = gateway.CreateSale(sale_request)
740
-
741
- expect(sale_response['ErrorReport']).to eq nil
742
-
743
- response = gateway.BuyerKey(sale_response['BuyerKey'])
744
-
745
- expect(response['ErrorReport']).to eq nil
746
- end
747
-
748
- it 'should consult get credit card with buyer key' do
749
-
750
- credit_card_transaction = Gateway::CreditCardTransaction.new
751
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
752
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
753
- credit_card_transaction.CreditCard.ExpMonth = 10
754
- credit_card_transaction.CreditCard.ExpYear = 2018
755
- credit_card_transaction.CreditCard.SecurityCode = '123'
756
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
757
- credit_card_transaction.AmountInCents = 100
758
-
759
- sale_request = Gateway::CreateSaleRequest.new
760
- sale_request.Buyer.Name = 'Anakin Skywalker'
761
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
762
- sale_request.Buyer.DocumentNumber = '12345678901'
763
- sale_request.Buyer.DocumentType = 'CPF'
764
- sale_request.Buyer.PersonType = 'Person'
765
- sale_request.Buyer.Gender = 'M'
766
- sale_request.CreditCardTransactionCollection << credit_card_transaction
767
-
768
- sale_response = gateway.CreateSale(sale_request)
769
-
770
- expect(sale_response['ErrorReport']).to eq nil
771
-
772
- response = gateway.GetCreditCardWithBuyerKey(sale_response['BuyerKey'])
773
-
774
- expect(response['ErrorReport']).to eq nil
775
- end
776
-
777
- it 'should create a credit card' do
778
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
779
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
780
- create_instant_buy_data.ExpMonth = 10
781
- create_instant_buy_data.ExpYear = 2018
782
- create_instant_buy_data.SecurityCode = '123'
783
- create_instant_buy_data.HolderName = 'Luke Skywalker'
784
- create_instant_buy_data.CreditCardBrand = 'Visa'
785
- create_instant_buy_data.IsOneDollarAuthEnabled = false
786
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
787
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
788
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
789
- create_instant_buy_data.BillingAddress.District = 'Centro'
790
- create_instant_buy_data.BillingAddress.Number = '123'
791
- create_instant_buy_data.BillingAddress.State = 'RJ'
792
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
793
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
794
-
795
- response = gateway.CreateCreditCard(create_instant_buy_data)
796
-
797
- expect(response['ErrorReport']).to eq nil
798
- end
799
-
800
- it 'should create credit card with buyerkey in it' do
801
- address = Gateway::BuyerAddress.new
802
- address.AddressType = 'Residential'
803
- address.City = 'Tatooine'
804
- address.Complement = ''
805
- address.Country = 'Brazil'
806
- address.District = 'Mos Eisley'
807
- address.Number = '123'
808
- address.State = 'RJ'
809
- address.Street = 'Mos Eisley Cantina'
810
- address.ZipCode = '20001000'
811
-
812
- buyer_request = Gateway::CreateBuyerRequest.new
813
- buyer_request.AddressCollection << address
814
- buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
815
- buyer_request.BuyerCategory = 'Normal'
816
- buyer_request.BuyerReference = 'C3PO'
817
- buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
818
- buyer_request.DocumentNumber = '12345678901'
819
- buyer_request.DocumentType = 'CPF'
820
- buyer_request.Email = 'lskywalker@r2d2.com'
821
- buyer_request.EmailType = 'Personal'
822
- buyer_request.FacebookId = 'lukeskywalker8917'
823
- buyer_request.Gender = 'M'
824
- buyer_request.HomePhone = '(21)123456789'
825
- buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
826
- buyer_request.MobilePhone = '(21)987654321'
827
- buyer_request.Name = 'Luke Skywalker'
828
- buyer_request.PersonType = 'Person'
829
- buyer_request.TwitterId = '@lukeskywalker8917'
830
- buyer_request.WorkPhone = '(21)28467902'
831
-
832
- new_buyer_response = gateway.CreateBuyer(buyer_request)
833
- buyer_key = new_buyer_response['BuyerKey']
834
-
835
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
836
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
837
- create_instant_buy_data.ExpMonth = 10
838
- create_instant_buy_data.ExpYear = 2018
839
- create_instant_buy_data.SecurityCode = '123'
840
- create_instant_buy_data.HolderName = 'Luke Skywalker'
841
- create_instant_buy_data.CreditCardBrand = 'Visa'
842
- create_instant_buy_data.IsOneDollarAuthEnabled = false
843
- create_instant_buy_data.BuyerKey = buyer_key
844
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
845
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
846
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
847
- create_instant_buy_data.BillingAddress.District = 'Centro'
848
- create_instant_buy_data.BillingAddress.Number = '123'
849
- create_instant_buy_data.BillingAddress.State = 'RJ'
850
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
851
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
852
-
853
- response = gateway.CreateCreditCard(create_instant_buy_data)
854
-
855
- expect(response['Success']).to eq true
856
- end
857
-
858
- it 'should create a credit card without billing address' do
859
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
860
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
861
- create_instant_buy_data.ExpMonth = 10
862
- create_instant_buy_data.ExpYear = 2018
863
- create_instant_buy_data.SecurityCode = '123'
864
- create_instant_buy_data.HolderName = 'Luke Skywalker'
865
- create_instant_buy_data.CreditCardBrand = 'Visa'
866
-
867
- response = gateway.CreateCreditCard(create_instant_buy_data)
868
-
869
- expect(response['ErrorReport']).to eq nil
870
- end
871
-
872
- it 'should update the credit card' do
873
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
874
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
875
- create_instant_buy_data.ExpMonth = 10
876
- create_instant_buy_data.ExpYear = 2018
877
- create_instant_buy_data.SecurityCode = '123'
878
- create_instant_buy_data.HolderName = 'Luke Skywalker'
879
- create_instant_buy_data.CreditCardBrand = 'Visa'
880
- create_instant_buy_data.IsOneDollarAuthEnabled = false
881
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
882
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
883
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
884
- create_instant_buy_data.BillingAddress.District = 'Centro'
885
- create_instant_buy_data.BillingAddress.Number = '123'
886
- create_instant_buy_data.BillingAddress.State = 'RJ'
887
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
888
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
889
-
890
- create_credit_card = gateway.CreateCreditCard(create_instant_buy_data)
891
-
892
- credit_card_transaction = Gateway::CreditCardTransaction.new
893
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
894
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
895
- credit_card_transaction.CreditCard.ExpMonth = 10
896
- credit_card_transaction.CreditCard.ExpYear = 2018
897
- credit_card_transaction.CreditCard.SecurityCode = '123'
898
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
899
- credit_card_transaction.AmountInCents = 100
900
-
901
- sale_request = Gateway::CreateSaleRequest.new
902
- sale_request.Buyer.Name = 'Anakin Skywalker'
903
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
904
- sale_request.Buyer.DocumentNumber = '12345678901'
905
- sale_request.Buyer.DocumentType = 'CPF'
906
- sale_request.Buyer.PersonType = 'Person'
907
- sale_request.Buyer.Gender = 'M'
908
- sale_request.CreditCardTransactionCollection << credit_card_transaction
909
-
910
- sale_response = gateway.CreateSale(sale_request)
911
-
912
- instant_buy_key = create_credit_card['InstantBuyKey']
913
-
914
- buyer_key = sale_response['BuyerKey']
915
-
916
- update_instant_buy_data_request = Gateway::UpdateInstantBuyDataRequest.new
917
- update_instant_buy_data_request.BuyerKey = buyer_key
918
-
919
- response = gateway.UpdateCreditCard(instant_buy_key, update_instant_buy_data_request)
920
-
921
- expect(response['Success']).to eq true
922
- end
923
-
924
- it 'should do a credit card transaction with instant buy key' do
925
- credit_card_transaction = Gateway::CreditCardTransaction.new
926
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
927
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
928
- credit_card_transaction.CreditCard.ExpMonth = 10
929
- credit_card_transaction.CreditCard.ExpYear = 2018
930
- credit_card_transaction.CreditCard.SecurityCode = '123'
931
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
932
- credit_card_transaction.AmountInCents = 100
933
-
934
- sale_request = Gateway::CreateSaleRequest.new
935
- sale_request.CreditCardTransactionCollection << credit_card_transaction
936
-
937
- sale_response = gateway.CreateSale(sale_request)
938
-
939
- expect(sale_response['ErrorReport']).to eq nil
940
-
941
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
942
-
943
- # coleta dados do cartao
944
- creditCardTransaction = Gateway::CreditCardTransaction.new
945
- creditCardTransaction.AmountInCents = 100
946
- creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
947
-
948
- # cria a transacao
949
- createSaleRequest = Gateway::CreateSaleRequest.new
950
- createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
951
-
952
- # faz a requisicao de criação de transacao, retorna um hash com a resposta
953
- response = gateway.CreateSale(createSaleRequest)
954
-
955
- expect(response['ErrorReport']).to eq nil
956
- end
957
-
958
- it 'should get the buyer with buyer key' do
959
- credit_card_transaction = Gateway::CreditCardTransaction.new
960
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
961
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
962
- credit_card_transaction.CreditCard.ExpMonth = 10
963
- credit_card_transaction.CreditCard.ExpYear = 2018
964
- credit_card_transaction.CreditCard.SecurityCode = '123'
965
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
966
- credit_card_transaction.AmountInCents = 100
967
-
968
- sale_request = Gateway::CreateSaleRequest.new
969
- sale_request.Buyer.Name = 'Anakin Skywalker'
970
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
971
- sale_request.Buyer.DocumentNumber = '12345678901'
972
- sale_request.Buyer.DocumentType = 'CPF'
973
- sale_request.Buyer.PersonType = 'Person'
974
- sale_request.Buyer.Gender = 'M'
975
- sale_request.CreditCardTransactionCollection << credit_card_transaction
976
-
977
- sale_response = gateway.CreateSale(sale_request)
978
-
979
- expect(sale_response['ErrorReport']).to eq nil
980
-
981
- response = gateway.GetBuyer(sale_response['BuyerKey'])
982
-
983
- expect(response['ErrorReport']).to eq nil
984
- end
985
-
986
- it 'should create buyer with buyer request' do
987
- address = Gateway::BuyerAddress.new
988
- address.AddressType = 'Residential'
989
- address.City = 'Tatooine'
990
- address.Complement = ''
991
- address.Country = 'Brazil'
992
- address.District = 'Mos Eisley'
993
- address.Number = '123'
994
- address.State = 'RJ'
995
- address.Street = 'Mos Eisley Cantina'
996
- address.ZipCode = '20001000'
997
-
998
- buyer_request = Gateway::CreateBuyerRequest.new
999
- buyer_request.AddressCollection << address
1000
- buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
1001
- buyer_request.BuyerCategory = 'Normal'
1002
- buyer_request.BuyerReference = 'C3PO'
1003
- buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
1004
- buyer_request.DocumentNumber = '12345678901'
1005
- buyer_request.DocumentType = 'CPF'
1006
- buyer_request.Email = 'lskywalker@r2d2.com'
1007
- buyer_request.EmailType = 'Personal'
1008
- buyer_request.FacebookId = 'lukeskywalker8917'
1009
- buyer_request.Gender = 'M'
1010
- buyer_request.HomePhone = '(21)123456789'
1011
- buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
1012
- buyer_request.MobilePhone = '(21)987654321'
1013
- buyer_request.Name = 'Luke Skywalker'
1014
- buyer_request.PersonType = 'Person'
1015
- buyer_request.TwitterId = '@lukeskywalker8917'
1016
- buyer_request.WorkPhone = '(21)28467902'
1017
-
1018
- response = gateway.CreateBuyer(buyer_request)
1019
-
1020
- expect(response['Success']).to eq true
1021
- end
1022
- end
1
+ require_relative '../../lib/mundipagg_sdk'
2
+ require_relative 'test_helper'
3
+ require 'date'
4
+
5
+ merchant_key = '85328786-8BA6-420F-9948-5352F5A183EB'
6
+
7
+ gateway = Gateway::Gateway.new(:sandbox, merchant_key)
8
+
9
+ RSpec.describe Gateway do
10
+ it 'should create a sale with boleto' do
11
+ createSaleRequest = Gateway::CreateSaleRequest.new
12
+
13
+ boletoTransaction = Gateway::BoletoTransaction.new
14
+ boletoTransaction.AmountInCents = 100
15
+ boletoTransaction.BankNumber = '237'
16
+ boletoTransaction.DocumentNumber = '12345678901'
17
+ boletoTransaction.Instructions = 'Pagar antes do vencimento'
18
+ boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
19
+ boletoTransaction.Options.CurrencyIso = 'BRL'
20
+ boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
21
+
22
+ createSaleRequest.BoletoTransactionCollection << boletoTransaction
23
+
24
+ response = gateway.CreateSale(createSaleRequest)
25
+
26
+ expect(response[:ErrorReport]).to eq nil
27
+ end
28
+
29
+ it 'should create a sale with credit card' do
30
+ createSaleRequest = Gateway::CreateSaleRequest.new
31
+
32
+ buyerAddress = Gateway::BuyerAddress.new
33
+ buyerAddress.AddressType = 'Residential'
34
+ buyerAddress.City = 'Rio de Janeiro'
35
+ buyerAddress.Complement = '10 Andar'
36
+ buyerAddress.Country = 'Brazil'
37
+ buyerAddress.District = 'Centro'
38
+ buyerAddress.Number = '199'
39
+ buyerAddress.State = 'RJ'
40
+ buyerAddress.Street = 'Rua da Quitanda'
41
+ buyerAddress.ZipCode = '20091005'
42
+
43
+ creditCardTransaction = Gateway::CreditCardTransaction.new
44
+ creditCardTransaction.AmountInCents = 100
45
+ creditCardTransaction.InstallmentCount = 1
46
+ creditCardTransaction.TransactionReference = 'CreditCard One RubySDK Test'
47
+ creditCardTransaction.Options.PaymentMethodCode = 1
48
+ creditCardTransaction.Options.SoftDescriptorText = 'My Store Name'
49
+ creditCardTransaction.CreditCard.CreditCardNumber = '5453010000066167'
50
+ creditCardTransaction.CreditCard.ExpMonth = 5
51
+ creditCardTransaction.CreditCard.ExpYear = 18
52
+ creditCardTransaction.CreditCard.HolderName = 'Maria do Carmo'
53
+ creditCardTransaction.CreditCard.SecurityCode = '123'
54
+ creditCardTransaction.CreditCard.CreditCardBrand = 'Mastercard'
55
+ creditCardTransaction.CreditCard.BillingAddress.City = 'Rio de Janeiro'
56
+ creditCardTransaction.CreditCard.BillingAddress.Complement = '10 Andar'
57
+ creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
58
+ creditCardTransaction.CreditCard.BillingAddress.District = 'Centro'
59
+ creditCardTransaction.CreditCard.BillingAddress.Number = '199'
60
+ creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
61
+ creditCardTransaction.CreditCard.BillingAddress.Street = 'Rua da Quitanda'
62
+ creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20091005'
63
+
64
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
65
+ createSaleRequest.Buyer.Birthdate = Date.new(2001, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
66
+ createSaleRequest.Buyer.BuyerCategory = 'Normal'
67
+ createSaleRequest.Buyer.Email = 'mundiBuyer@mundi.com.br'
68
+ createSaleRequest.Buyer.EmailType = 'Personal'
69
+ createSaleRequest.Buyer.Gender = 'M'
70
+ createSaleRequest.Buyer.HomePhone = '22222222'
71
+ createSaleRequest.Buyer.MobilePhone = '988888888'
72
+ createSaleRequest.Buyer.WorkPhone = '25555555'
73
+ createSaleRequest.Buyer.CreateDateInMerchant = (Date.parse(Time.now.to_s)).strftime("%Y-%m-%dT%H:%M:%S")
74
+ createSaleRequest.Buyer.LastBuyerUpdateInMerchant = (Date.parse(Time.now.to_s)).strftime("%Y-%m-%dT%H:%M:%S")
75
+ createSaleRequest.Buyer.DocumentNumber = '51212382749'
76
+ createSaleRequest.Buyer.DocumentType = 'CPF'
77
+ createSaleRequest.Buyer.Name = 'Jose da Silva Ramos'
78
+ createSaleRequest.Buyer.PersonType = 'Person'
79
+ createSaleRequest.Buyer.AddressCollection << buyerAddress
80
+
81
+ response = gateway.CreateSale(createSaleRequest)
82
+
83
+ expect(response[:ErrorReport]).to eq nil
84
+
85
+ end
86
+
87
+ it 'should create a sale with all types of transactions and all fields filled' do
88
+ # creates boleto transaction object
89
+ boletoTransaction = Gateway::BoletoTransaction.new
90
+
91
+ # 100 reais in cents
92
+ boletoTransaction.AmountInCents = 10000
93
+ boletoTransaction.BankNumber = '237'
94
+ boletoTransaction.BillingAddress.City = 'Tatooine'
95
+ boletoTransaction.BillingAddress.Complement = ''
96
+ boletoTransaction.BillingAddress.Country = 'Brazil'
97
+ boletoTransaction.BillingAddress.District = 'Mos Eisley'
98
+ boletoTransaction.BillingAddress.Number = '123'
99
+ boletoTransaction.BillingAddress.State = 'RJ'
100
+ boletoTransaction.BillingAddress.Street = 'Mos Eisley Cantina'
101
+ boletoTransaction.BillingAddress.ZipCode = '20001000'
102
+ boletoTransaction.DocumentNumber = '12345678901'
103
+ boletoTransaction.Instructions = 'Pagar antes do vencimento'
104
+ boletoTransaction.Options.CurrencyIso = 'BRL'
105
+ boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
106
+ boletoTransaction.TransactionReference = 'NumeroDaTransacao'
107
+
108
+
109
+ # create credit card transaction object
110
+ creditCardTransaction = Gateway::CreditCardTransaction.new
111
+
112
+ # 100 reais in cents
113
+ creditCardTransaction.AmountInCents = 10000
114
+ creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
115
+ creditCardTransaction.CreditCard.BillingAddress.Complement = ''
116
+ creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
117
+ creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
118
+ creditCardTransaction.CreditCard.BillingAddress.Number = '123'
119
+ creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
120
+ creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
121
+ creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
122
+ creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
123
+ creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
124
+ creditCardTransaction.CreditCard.ExpMonth = 10
125
+ creditCardTransaction.CreditCard.ExpYear = 22
126
+ creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
127
+ creditCardTransaction.CreditCard.SecurityCode = '123'
128
+ creditCardTransaction.CreditCardOperation = 'AuthOnly'
129
+ creditCardTransaction.InstallmentCount = 1
130
+ creditCardTransaction.Options.CurrencyIso = 'BRL'
131
+ creditCardTransaction.Options.PaymentMethodCode = 1
132
+ creditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'
133
+
134
+ shoppingCartItem = Gateway::ShoppingCartItemCollection.new
135
+ shoppingCartItem.Description = 'Red Lightsaber'
136
+ shoppingCartItem.DiscountAmountInCents = 0
137
+ shoppingCartItem.ItemReference = 'NumeroDoProduto'
138
+ shoppingCartItem.Name = 'Lightsaber'
139
+ shoppingCartItem.Quantity = 1
140
+ shoppingCartItem.TotalCostInCents = 18000
141
+ shoppingCartItem.UnitCostInCents = 18000
142
+
143
+ shoppingCartCollection = Gateway::ShoppingCartCollection.new
144
+ shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
145
+ shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
146
+ shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
147
+ shoppingCartCollection.DeliveryAddress.District = 'Command Room'
148
+ shoppingCartCollection.DeliveryAddress.Number = '321'
149
+ shoppingCartCollection.DeliveryAddress.State = 'RJ'
150
+ shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
151
+ shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
152
+ shoppingCartCollection.DeliveryDeadline = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
153
+ shoppingCartCollection.EstimatedDeliveryDate = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
154
+ shoppingCartCollection.FreighCostInCents = 2000
155
+ shoppingCartCollection.ShippingCompany = 'Empire'
156
+ shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
157
+
158
+ # creates request object for transaction creation
159
+ createSaleRequest = Gateway::CreateSaleRequest.new
160
+
161
+ # adds to the boleto transaction collection
162
+ createSaleRequest.BoletoTransactionCollection << boletoTransaction
163
+
164
+ buyerAddress = Gateway::BuyerAddress.new
165
+ buyerAddress.AddressType = 'Residential'
166
+ buyerAddress.City = 'Tatooine'
167
+ buyerAddress.Complement = ''
168
+ buyerAddress.Country = 'Brazil'
169
+ buyerAddress.District = 'Mos Eisley'
170
+ buyerAddress.Number = '123'
171
+ buyerAddress.State = 'RJ'
172
+ buyerAddress.Street = 'Mos Eisley Cantina'
173
+ buyerAddress.ZipCode = '20001000'
174
+
175
+ createSaleRequest.Buyer.AddressCollection << buyerAddress
176
+ createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
177
+ createSaleRequest.Buyer.BuyerCategory = 'Normal'
178
+ createSaleRequest.Buyer.BuyerReference = 'C3PO'
179
+ createSaleRequest.Buyer.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
180
+ createSaleRequest.Buyer.DocumentNumber = '12345678901'
181
+ createSaleRequest.Buyer.DocumentType = 'CPF'
182
+ createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
183
+ createSaleRequest.Buyer.EmailType = 'Personal'
184
+ createSaleRequest.Buyer.FacebookId = 'lukeskywalker8917'
185
+ createSaleRequest.Buyer.Gender = 'M'
186
+ createSaleRequest.Buyer.HomePhone = '(21)123456789'
187
+ createSaleRequest.Buyer.MobilePhone = '(21)987654321'
188
+ createSaleRequest.Buyer.Name = 'Luke Skywalker'
189
+ createSaleRequest.Buyer.PersonType = 'Person'
190
+ createSaleRequest.Buyer.TwitterId = '@lukeskywalker8917'
191
+ createSaleRequest.Buyer.WorkPhone = '(21)28467902'
192
+
193
+ # adds to the credit card transaction collection
194
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
195
+ createSaleRequest.Merchant.MerchantReference = 'IdDaLojaPlataforma'
196
+ createSaleRequest.Options.AntiFraudServiceCode = 0
197
+ createSaleRequest.Options.CurrencyIso = 'BRL'
198
+ createSaleRequest.Options.IsAntiFraudEnabled = true
199
+ createSaleRequest.Options.Retries = 1
200
+ createSaleRequest.Order.OrderReference = 'NumeroDoPedido'
201
+ createSaleRequest.RequestData.EcommerceCategory = 'B2C'
202
+ createSaleRequest.RequestData.IpAddress = '127.0.0.1'
203
+ createSaleRequest.RequestData.Origin = 'SiteDeCompra'
204
+ createSaleRequest.RequestData.SessionId = 'IdSesssaoNoSite'
205
+
206
+ # adds shopping cart collection in the request
207
+ createSaleRequest.ShoppingCartCollection << shoppingCartCollection
208
+
209
+ # make the request and returns a response hash
210
+ response = gateway.CreateSale(createSaleRequest)
211
+
212
+ expect(response[:ErrorReport]).to eq nil
213
+ end
214
+
215
+ it 'should create an anti fraud transaction' do
216
+ # create credit card transaction object
217
+ creditCardTransaction = Gateway::CreditCardTransaction.new
218
+
219
+ # 100 reais in cents
220
+ creditCardTransaction.AmountInCents = 10000
221
+ creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
222
+ creditCardTransaction.CreditCard.BillingAddress.Complement = ''
223
+ creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
224
+ creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
225
+ creditCardTransaction.CreditCard.BillingAddress.Number = '123'
226
+ creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
227
+ creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
228
+ creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
229
+ creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
230
+ creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
231
+ creditCardTransaction.CreditCard.ExpMonth = 10
232
+ creditCardTransaction.CreditCard.ExpYear = 22
233
+ creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
234
+ creditCardTransaction.CreditCard.SecurityCode = '123'
235
+ creditCardTransaction.InstallmentCount = 1
236
+
237
+ shoppingCartItem = Gateway::ShoppingCartItemCollection.new
238
+ shoppingCartItem.Description = 'Red Lightsaber'
239
+ shoppingCartItem.DiscountAmountInCents = 0
240
+ shoppingCartItem.ItemReference = 'NumeroDoProduto'
241
+ shoppingCartItem.Name = 'Lightsaber'
242
+ shoppingCartItem.Quantity = 1
243
+ shoppingCartItem.TotalCostInCents = 18000
244
+ shoppingCartItem.UnitCostInCents = 0
245
+
246
+ shoppingCartCollection = Gateway::ShoppingCartCollection.new
247
+ shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
248
+ shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
249
+ shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
250
+ shoppingCartCollection.DeliveryAddress.District = 'Command Room'
251
+ shoppingCartCollection.DeliveryAddress.Number = '321'
252
+ shoppingCartCollection.DeliveryAddress.State = 'RJ'
253
+ shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
254
+ shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
255
+ shoppingCartCollection.FreighCostInCents = 2000
256
+ shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
257
+
258
+ # creates request object for transaction creation
259
+ createSaleRequest = Gateway::CreateSaleRequest.new
260
+
261
+ buyerAddress = Gateway::BuyerAddress.new
262
+ buyerAddress.AddressType = 'Residential'
263
+ buyerAddress.City = 'Tatooine'
264
+ buyerAddress.Complement = ''
265
+ buyerAddress.Country = 'Brazil'
266
+ buyerAddress.District = 'Mos Eisley'
267
+ buyerAddress.Number = '123'
268
+ buyerAddress.State = 'RJ'
269
+ buyerAddress.Street = 'Mos Eisley Cantina'
270
+ buyerAddress.ZipCode = '20001000'
271
+
272
+ createSaleRequest.Buyer.AddressCollection << buyerAddress
273
+ createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
274
+ createSaleRequest.Buyer.BuyerReference = 'C3PO'
275
+ createSaleRequest.Buyer.DocumentNumber = '12345678901'
276
+ createSaleRequest.Buyer.DocumentType = 'CPF'
277
+ createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
278
+ createSaleRequest.Buyer.EmailType = 'Personal'
279
+ createSaleRequest.Buyer.Gender = 'M'
280
+ createSaleRequest.Buyer.HomePhone = '(21)123456789'
281
+ createSaleRequest.Buyer.MobilePhone = '(21)987654321'
282
+ createSaleRequest.Buyer.Name = 'Luke Skywalker'
283
+ createSaleRequest.Buyer.PersonType = 'Person'
284
+ createSaleRequest.Buyer.WorkPhone = '(21)28467902'
285
+
286
+ # adds to the credit card transaction collection
287
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
288
+ createSaleRequest.Options.IsAntiFraudEnabled = true
289
+ createSaleRequest.Order.OrderReference = 'NumeroDoPedido'
290
+
291
+ # adds shopping cart collection in the request
292
+ createSaleRequest.ShoppingCartCollection << shoppingCartCollection
293
+
294
+ # make the request and returns a response hash
295
+ response = gateway.CreateSale(createSaleRequest)
296
+
297
+ expect(response[:ErrorReport]).to eq nil
298
+ end
299
+
300
+ it 'should consult the order with order key' do
301
+ querySaleRequest = Gateway::QuerySaleRequest.new
302
+ createSaleRequest = Gateway::CreateSaleRequest.new
303
+
304
+ boletoTransaction = Gateway::BoletoTransaction.new
305
+ boletoTransaction.AmountInCents = 100
306
+ boletoTransaction.BankNumber = '237'
307
+ boletoTransaction.DocumentNumber = '12345678901'
308
+ boletoTransaction.Instructions = 'Pagar antes do vencimento'
309
+ boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
310
+ boletoTransaction.Options.CurrencyIso = 'BRL'
311
+ boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
312
+
313
+ createSaleRequest.BoletoTransactionCollection << boletoTransaction
314
+
315
+ boleto_response = gateway.CreateSale(createSaleRequest)
316
+
317
+ querySaleRequest.OrderKey = boleto_response['OrderResult']['OrderKey']
318
+ responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
319
+
320
+ orderKey = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderKey"]
321
+
322
+ expect(orderKey).to eq querySaleRequest.OrderKey
323
+ end
324
+
325
+ it 'should consult the order with order reference' do
326
+ querySaleRequest = Gateway::QuerySaleRequest.new
327
+ createSaleRequest = Gateway::CreateSaleRequest.new
328
+
329
+ boletoTransaction = Gateway::BoletoTransaction.new
330
+ boletoTransaction.AmountInCents = 100
331
+ boletoTransaction.BankNumber = '237'
332
+ boletoTransaction.DocumentNumber = '12345678901'
333
+ boletoTransaction.Instructions = 'Pagar antes do vencimento'
334
+ boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
335
+ boletoTransaction.Options.CurrencyIso = 'BRL'
336
+ boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
337
+
338
+ createSaleRequest.Order.OrderReference = 'RubyOrderReferenceUnitTest'
339
+ createSaleRequest.BoletoTransactionCollection << boletoTransaction
340
+
341
+ boleto_response = gateway.CreateSale(createSaleRequest)
342
+
343
+ querySaleRequest.OrderReference = boleto_response['OrderResult']['OrderReference']
344
+ responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
345
+
346
+ orderReference = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderReference"]
347
+
348
+ expect(orderReference).to eq querySaleRequest.OrderReference
349
+ end
350
+
351
+ it 'should do a retry method' do
352
+ retrySaleRequest = Gateway::RetrySaleRequest.new
353
+ retrySaleCreditCardTransactionItem = Gateway::RetrySaleCreditCardTransaction.new
354
+
355
+ createSaleRequest = Gateway::CreateSaleRequest.new
356
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
357
+ creditCardTransactionItem.AmountInCents = 100
358
+ creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
359
+ creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
360
+ creditCardTransactionItem.CreditCard.ExpMonth = 10
361
+ creditCardTransactionItem.CreditCard.ExpYear = 19
362
+ creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
363
+ creditCardTransactionItem.CreditCard.SecurityCode = '123'
364
+ creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
365
+ creditCardTransactionItem.InstallmentCount = 1
366
+ creditCardTransactionItem.Options.CurrencyIso = 'BRL'
367
+ creditCardTransactionItem.Options.PaymentMethodCode = 1
368
+ creditCardTransactionItem.TransactionReference = 'RubySDK-RetryTest'
369
+
370
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
371
+ createSaleRequest.Order.OrderReference = 'RubySDK-RetryTest'
372
+
373
+ # cria o pedido que sera usado para retentativa
374
+ responseCreate = gateway.CreateSale(createSaleRequest)
375
+
376
+ # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a retentativa
377
+ orderKey = responseCreate["OrderResult"]["OrderKey"]
378
+ transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
379
+
380
+ # monta o objeto de retentativa
381
+ retrySaleCreditCardTransactionItem.SecurityCode = '123'
382
+ retrySaleCreditCardTransactionItem.TransactionKey = transactionKey
383
+ retrySaleRequest.OrderKey = orderKey
384
+ retrySaleRequest.RetrySaleCreditCardTransactionCollection << retrySaleCreditCardTransactionItem
385
+
386
+ # faz a requisicao de retentativa
387
+ response = gateway.Retry(retrySaleRequest)
388
+
389
+ # espera que o transaction key seja igual, significa que foi tudo ok no teste
390
+ responseTransactionKey = response['CreditCardTransactionResultCollection'][0]['TransactionKey']
391
+
392
+ expect(responseTransactionKey).to eq transactionKey
393
+
394
+ end
395
+
396
+ it 'should do a retry method with only order key' do
397
+ createSaleRequest = Gateway::CreateSaleRequest.new
398
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
399
+ creditCardTransactionItem.AmountInCents = 100
400
+ creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
401
+ creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
402
+ creditCardTransactionItem.CreditCard.ExpMonth = 10
403
+ creditCardTransactionItem.CreditCard.ExpYear = 22
404
+ creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
405
+ creditCardTransactionItem.CreditCard.SecurityCode = '123'
406
+ creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
407
+ creditCardTransactionItem.TransactionReference = 'RubySDK-RetryTest'
408
+
409
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
410
+ createSaleRequest.Order.OrderReference = 'RubySDK-RetryTest'
411
+
412
+ # cria o pedido que sera usado para retentativa
413
+ responseCreate = gateway.CreateSale(createSaleRequest)
414
+
415
+ # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a retentativa
416
+ orderKey = responseCreate["OrderResult"]["OrderKey"]
417
+ transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
418
+
419
+ retrySaleRequest = Gateway::RetrySaleRequest.new
420
+
421
+ # monta o objeto de retentativa
422
+ retrySaleRequest.OrderKey = orderKey
423
+
424
+ # faz a requisicao de retentativa
425
+ response = gateway.Retry(retrySaleRequest)
426
+
427
+ expect(response['ErrorReport']).to eq nil
428
+
429
+ end
430
+
431
+ it 'should cancel a transaction' do
432
+ createSaleRequest = Gateway::CreateSaleRequest.new
433
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
434
+ creditCardTransactionItem.AmountInCents = 100
435
+ creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
436
+ creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
437
+ creditCardTransactionItem.CreditCard.ExpMonth = 10
438
+ creditCardTransactionItem.CreditCard.ExpYear = 19
439
+ creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
440
+ creditCardTransactionItem.CreditCard.SecurityCode = '123'
441
+ creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
442
+ creditCardTransactionItem.InstallmentCount = 1
443
+ creditCardTransactionItem.Options.CurrencyIso = 'BRL'
444
+ creditCardTransactionItem.Options.PaymentMethodCode = 1
445
+ creditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
446
+
447
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
448
+ createSaleRequest.Order.OrderReference = 'RubySDK-CancelTest'
449
+
450
+ # cria o pedido que sera usado para cancelamento
451
+ responseCreate = gateway.CreateSale(createSaleRequest)
452
+
453
+ # pega o orderkey e o transaction key da resposta que sao necessarios para fazer o cancelamento
454
+ orderKey = responseCreate["OrderResult"]["OrderKey"]
455
+ transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
456
+
457
+ # itens necessarios para cancelamento da transacao de cartao de credito
458
+ cancelCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
459
+ cancelCreditCardTransactionItem.AmountInCents = 100
460
+ cancelCreditCardTransactionItem.TransactionKey = transactionKey
461
+ cancelCreditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
462
+
463
+ # monta o objeto para cancelamento de transacao
464
+ cancelSaleRequest = Gateway::ManageSaleRequest.new
465
+ cancelSaleRequest.OrderKey = orderKey
466
+ cancelSaleRequest.CreditCardTransactionCollection << cancelCreditCardTransactionItem
467
+
468
+ response = gateway.Cancel(cancelSaleRequest)
469
+
470
+ expect(response[:ErrorReport]).to eq nil
471
+ end
472
+
473
+ it 'should capture a transaction' do
474
+ createSaleRequest = Gateway::CreateSaleRequest.new
475
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
476
+ creditCardTransactionItem.AmountInCents = 100
477
+ creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
478
+ creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
479
+ creditCardTransactionItem.CreditCard.ExpMonth = 10
480
+ creditCardTransactionItem.CreditCard.ExpYear = 19
481
+ creditCardTransactionItem.CreditCard.HolderName = 'Maria do Carmo'
482
+ creditCardTransactionItem.CreditCard.SecurityCode = '123'
483
+ creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
484
+ creditCardTransactionItem.InstallmentCount = 1
485
+ creditCardTransactionItem.Options.CurrencyIso = 'BRL'
486
+ creditCardTransactionItem.Options.PaymentMethodCode = 1
487
+ creditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
488
+
489
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
490
+ createSaleRequest.Order.OrderReference = 'RubySDK-CaptureTest'
491
+
492
+ # cria o pedido que sera usado para captura
493
+ responseCreate = gateway.CreateSale(createSaleRequest)
494
+
495
+ # pega o orderkey e o transaction key da resposta que sao necessarios para fazer a captura
496
+ orderKey = responseCreate["OrderResult"]["OrderKey"]
497
+ transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
498
+
499
+ # itens necessarios para captura da transacao de cartao de credito
500
+ captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
501
+ captureCreditCardTransactionItem.AmountInCents = 100
502
+ captureCreditCardTransactionItem.TransactionKey = transactionKey
503
+ captureCreditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
504
+
505
+ # monta o objeto para cancelamento de transacao
506
+ captureSaleRequest = Gateway::ManageSaleRequest.new
507
+ captureSaleRequest.OrderKey = orderKey
508
+ captureSaleRequest.CreditCardTransactionCollection << captureCreditCardTransactionItem
509
+
510
+ response = gateway.Capture(captureSaleRequest)
511
+
512
+ # espera que o ErrorReport seja nulo, significa que foi tudo ok na transação
513
+ expect(response['ErrorReport']).to eq nil
514
+ end
515
+
516
+ it 'should do a parse xml to notification interpretation' do
517
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
518
+ creditCardTransactionItem.AmountInCents = 100
519
+ creditCardTransactionItem.TransactionReference = 'Ruby PostNotification Test'
520
+ creditCardTransactionItem.InstallmentCount = 1
521
+ creditCardTransactionItem.CreditCardOperation = 'AuthAndCapture'
522
+ creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
523
+ creditCardTransactionItem.CreditCard.CreditCardNumber = '4111111111111111'
524
+ creditCardTransactionItem.CreditCard.HolderName = 'Bruce Wayne'
525
+ creditCardTransactionItem.CreditCard.SecurityCode = '123'
526
+ creditCardTransactionItem.CreditCard.ExpMonth = 5
527
+ creditCardTransactionItem.CreditCard.ExpYear = 20
528
+ creditCardTransactionItem.Options.PaymentMethodCode = 1
529
+
530
+ createSaleRequest = Gateway::CreateSaleRequest.new
531
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
532
+
533
+ response_hash = gateway.CreateSale(createSaleRequest)
534
+
535
+ credit_card_result = response_hash['CreditCardTransactionResultCollection'][0]
536
+
537
+ expect(credit_card_result['Success']).to eq true
538
+ # expect(credit_card_result['CreditCardOperation']).to eq 'AuthOnly'
539
+ # expect(credit_card_result['CreditCardTransactionStatus']).to eq 'AuthorizedPendingCapture'
540
+
541
+ captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
542
+ captureCreditCardTransactionItem.AmountInCents = creditCardTransactionItem.AmountInCents
543
+ captureCreditCardTransactionItem.TransactionKey = credit_card_result['TransactionKey']
544
+ captureCreditCardTransactionItem.TransactionReference = creditCardTransactionItem.TransactionReference
545
+
546
+ captureSale = Gateway::ManageSaleRequest.new
547
+ captureSale.OrderKey = response_hash['OrderResult']['OrderKey']
548
+ captureSale.CreditCardTransactionCollection << captureCreditCardTransactionItem
549
+
550
+ captureResponse = gateway.Capture(captureSale)
551
+
552
+ expect(captureResponse['ErrorReport']).to eq nil
553
+
554
+
555
+ xml = TestHelper.CreateFakePostNotification(response_hash, captureResponse)
556
+
557
+ response = gateway.ParseXmlToNotification(xml)
558
+
559
+ expect(response.nil?).to eq false
560
+ end
561
+
562
+ it 'should do a parse on online debit xml' do
563
+ xml = '<StatusNotification xmlns="http://schemas.datacontract.org/2004/07/Gateway.NotificationService.DataContract"
564
+ xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
565
+ i:schemaLocation="http://schemas.datacontract.org/2004/07/Gateway.NotificationService.DataContract StatusNotificationXmlSchema.xsd">
566
+ <AmountInCents>500</AmountInCents>
567
+ <AmountPaidInCents>0</AmountPaidInCents>
568
+ <BoletoTransaction>
569
+ <AmountInCents>500</AmountInCents>
570
+ <AmountPaidInCents>0</AmountPaidInCents>
571
+ <BoletoExpirationDate>2013-02-08T00:00:00</BoletoExpirationDate>
572
+ <NossoNumero>0123456789</NossoNumero>
573
+ <StatusChangedDate>2012-11-06T08:55:49.753</StatusChangedDate>
574
+ <TransactionKey>4111D523-9A83-4BE3-94D2-160F1BC9C4BD</TransactionKey>
575
+ <TransactionReference>B2E32108</TransactionReference>
576
+ <PreviousBoletoTransactionStatus>Generated</PreviousBoletoTransactionStatus>
577
+ <BoletoTransactionStatus>Paid</BoletoTransactionStatus>
578
+ </BoletoTransaction>
579
+ <CreditCardTransaction>
580
+ <Acquirer>Simulator</Acquirer>
581
+ <AmountInCents>2000</AmountInCents>
582
+ <AuthorizedAmountInCents>2000</AuthorizedAmountInCents>
583
+ <CapturedAmountInCents>2000</CapturedAmountInCents>
584
+ <CreditCardBrand>Visa</CreditCardBrand>
585
+ <RefundedAmountInCents i:nil="true"/>
586
+ <StatusChangedDate>2012-11-06T10:52:55.93</StatusChangedDate>
587
+ <TransactionIdentifier>123456</TransactionIdentifier>
588
+ <TransactionKey>351FC96A-7F42-4269-AF3C-1E3C179C1CD0</TransactionKey>
589
+ <TransactionReference>24de0432</TransactionReference>
590
+ <UniqueSequentialNumber>123456</UniqueSequentialNumber>
591
+ <VoidedAmountInCents i:nil="true"/>
592
+ <PreviousCreditCardTransactionStatus>AuthorizedPendingCapture</PreviousCreditCardTransactionStatus>
593
+ <CreditCardTransactionStatus>Captured</CreditCardTransactionStatus>
594
+ </CreditCardTransaction>
595
+
596
+ <OnlineDebitTransaction>
597
+ <AmountInCents>100</AmountInCents>
598
+ <AmountPaidInCents>0</AmountPaidInCents>
599
+ <StatusChangedDate>2013-06-27T19:46:46.87</StatusChangedDate>
600
+ <TransactionKey>fb3f158a-0309-4ae3-b8ef-3c5ac2d603d2</TransactionKey>
601
+ <TransactionReference>30bfee13-c908-4e3b-9f70-1f84dbe79fbf</TransactionReference>
602
+ <PreviousOnlineDebitTransactionStatus>OpenedPendingPayment</PreviousOnlineDebitTransactionStatus>
603
+ <OnlineDebitTransactionStatus>NotPaid</OnlineDebitTransactionStatus>
604
+ </OnlineDebitTransaction>
605
+
606
+ <MerchantKey>B1B1092C-8681-40C2-A734-500F22683D9B</MerchantKey>
607
+ <OrderKey>18471F05-9F6D-4497-9C24-D60D5BBB6BBE</OrderKey>
608
+ <OrderReference>64a85875</OrderReference>
609
+ <OrderStatus>Paid</OrderStatus>
610
+ </StatusNotification>'
611
+
612
+ response = gateway.ParseXmlToNotification(xml)
613
+
614
+ expect(response.nil?).to eq false
615
+ end
616
+
617
+ it 'should bring the transaction report file' do
618
+ date = Date.new(2015, 9, 19)
619
+ result = gateway.TransactionReportFile(date)
620
+ split_commas = result.split(',')
621
+
622
+ expect(split_commas[1]).to eq '20150919'
623
+ end
624
+
625
+ it 'should parse the transaction report file received' do
626
+ date = Date.new(2015, 9, 19)
627
+ request_to_parse = gateway.TransactionReportFile(date)
628
+ result = gateway.TransactionReportFileParser(request_to_parse)
629
+
630
+ expect(result['Header'].TransactionProcessedDate).to eq '20150919'
631
+ end
632
+
633
+ it 'should save the transaction report file at selected path' do
634
+ date = Date.new(2015, 9, 19)
635
+
636
+ file = Tempfile.new('Test')
637
+ gateway.TransactionReportFileDownloader(date, 'Test', file.path)
638
+
639
+ file_path = file.path.to_s + 'Test.txt'
640
+ file_exist = File.exist?(file_path)
641
+
642
+ file.close
643
+ file.unlink
644
+
645
+ expect(file_exist).to eq true
646
+ end
647
+
648
+ it 'should get credit card instant buy key deprecated' do
649
+ credit_card_transaction = Gateway::CreditCardTransaction.new
650
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
651
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
652
+ credit_card_transaction.CreditCard.ExpMonth = 10
653
+ credit_card_transaction.CreditCard.ExpYear = 2018
654
+ credit_card_transaction.CreditCard.SecurityCode = '123'
655
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
656
+ credit_card_transaction.AmountInCents = 100
657
+
658
+ sale_request = Gateway::CreateSaleRequest.new
659
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
660
+
661
+ sale_response = gateway.CreateSale(sale_request)
662
+
663
+ expect(sale_response['ErrorReport']).to eq nil
664
+
665
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
666
+
667
+ response = gateway.InstantBuyKey(instant_buy_key)
668
+
669
+ expect(response['ErrorReport']).to eq nil
670
+ end
671
+
672
+ it 'should get credit card instant buy key' do
673
+ credit_card_transaction = Gateway::CreditCardTransaction.new
674
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
675
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
676
+ credit_card_transaction.CreditCard.ExpMonth = 10
677
+ credit_card_transaction.CreditCard.ExpYear = 2018
678
+ credit_card_transaction.CreditCard.SecurityCode = '123'
679
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
680
+ credit_card_transaction.AmountInCents = 100
681
+
682
+ sale_request = Gateway::CreateSaleRequest.new
683
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
684
+
685
+ sale_response = gateway.CreateSale(sale_request)
686
+
687
+ expect(sale_response['ErrorReport']).to eq nil
688
+
689
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
690
+
691
+ response = gateway.GetCreditCard(instant_buy_key)
692
+
693
+ expect(response['ErrorReport']).to eq nil
694
+ end
695
+
696
+ it 'should delete credit card instant buy key' do
697
+ credit_card_transaction = Gateway::CreditCardTransaction.new
698
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
699
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
700
+ credit_card_transaction.CreditCard.ExpMonth = 10
701
+ credit_card_transaction.CreditCard.ExpYear = 2018
702
+ credit_card_transaction.CreditCard.SecurityCode = '123'
703
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker' + DateTime.now().to_s
704
+ credit_card_transaction.AmountInCents = 100
705
+
706
+ sale_request = Gateway::CreateSaleRequest.new
707
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
708
+
709
+ sale_response = gateway.CreateSale(sale_request)
710
+
711
+ expect(sale_response['ErrorReport']).to eq nil
712
+
713
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
714
+
715
+ response = gateway.DeleteCreditCard(instant_buy_key)
716
+
717
+ expect(response['Success']).to eq true
718
+ end
719
+
720
+ it 'should consult get credit card with buyer key deprecated' do
721
+
722
+ credit_card_transaction = Gateway::CreditCardTransaction.new
723
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
724
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
725
+ credit_card_transaction.CreditCard.ExpMonth = 10
726
+ credit_card_transaction.CreditCard.ExpYear = 2018
727
+ credit_card_transaction.CreditCard.SecurityCode = '123'
728
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
729
+ credit_card_transaction.AmountInCents = 100
730
+
731
+ sale_request = Gateway::CreateSaleRequest.new
732
+ sale_request.Buyer.Name = 'Anakin Skywalker'
733
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
734
+ sale_request.Buyer.DocumentNumber = '12345678901'
735
+ sale_request.Buyer.DocumentType = 'CPF'
736
+ sale_request.Buyer.PersonType = 'Person'
737
+ sale_request.Buyer.Gender = 'M'
738
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
739
+
740
+ sale_response = gateway.CreateSale(sale_request)
741
+
742
+ expect(sale_response['ErrorReport']).to eq nil
743
+
744
+ response = gateway.BuyerKey(sale_response['BuyerKey'])
745
+
746
+ expect(response['ErrorReport']).to eq nil
747
+ end
748
+
749
+ it 'should consult get credit card with buyer key' do
750
+
751
+ credit_card_transaction = Gateway::CreditCardTransaction.new
752
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
753
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
754
+ credit_card_transaction.CreditCard.ExpMonth = 10
755
+ credit_card_transaction.CreditCard.ExpYear = 2018
756
+ credit_card_transaction.CreditCard.SecurityCode = '123'
757
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
758
+ credit_card_transaction.AmountInCents = 100
759
+
760
+ sale_request = Gateway::CreateSaleRequest.new
761
+ sale_request.Buyer.Name = 'Anakin Skywalker'
762
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
763
+ sale_request.Buyer.DocumentNumber = '12345678901'
764
+ sale_request.Buyer.DocumentType = 'CPF'
765
+ sale_request.Buyer.PersonType = 'Person'
766
+ sale_request.Buyer.Gender = 'M'
767
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
768
+
769
+ sale_response = gateway.CreateSale(sale_request)
770
+
771
+ expect(sale_response['ErrorReport']).to eq nil
772
+
773
+ response = gateway.GetCreditCardWithBuyerKey(sale_response['BuyerKey'])
774
+
775
+ expect(response['ErrorReport']).to eq nil
776
+ end
777
+
778
+ it 'should create a credit card' do
779
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
780
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
781
+ create_instant_buy_data.ExpMonth = 10
782
+ create_instant_buy_data.ExpYear = 2018
783
+ create_instant_buy_data.SecurityCode = '123'
784
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
785
+ create_instant_buy_data.CreditCardBrand = 'Visa'
786
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
787
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
788
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
789
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
790
+ create_instant_buy_data.BillingAddress.District = 'Centro'
791
+ create_instant_buy_data.BillingAddress.Number = '123'
792
+ create_instant_buy_data.BillingAddress.State = 'RJ'
793
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
794
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
795
+
796
+ response = gateway.CreateCreditCard(create_instant_buy_data)
797
+
798
+ expect(response['ErrorReport']).to eq nil
799
+ end
800
+
801
+ it 'should create credit card with buyerkey in it' do
802
+ address = Gateway::BuyerAddress.new
803
+ address.AddressType = 'Residential'
804
+ address.City = 'Tatooine'
805
+ address.Complement = ''
806
+ address.Country = 'Brazil'
807
+ address.District = 'Mos Eisley'
808
+ address.Number = '123'
809
+ address.State = 'RJ'
810
+ address.Street = 'Mos Eisley Cantina'
811
+ address.ZipCode = '20001000'
812
+
813
+ buyer_request = Gateway::CreateBuyerRequest.new
814
+ buyer_request.AddressCollection << address
815
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
816
+ buyer_request.BuyerCategory = 'Normal'
817
+ buyer_request.BuyerReference = 'C3PO'
818
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
819
+ buyer_request.DocumentNumber = '12345678901'
820
+ buyer_request.DocumentType = 'CPF'
821
+ buyer_request.Email = 'lskywalker@r2d2.com'
822
+ buyer_request.EmailType = 'Personal'
823
+ buyer_request.FacebookId = 'lukeskywalker8917'
824
+ buyer_request.Gender = 'M'
825
+ buyer_request.HomePhone = '(21)123456789'
826
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
827
+ buyer_request.MobilePhone = '(21)987654321'
828
+ buyer_request.Name = 'Luke Skywalker'
829
+ buyer_request.PersonType = 'Person'
830
+ buyer_request.TwitterId = '@lukeskywalker8917'
831
+ buyer_request.WorkPhone = '(21)28467902'
832
+
833
+ new_buyer_response = gateway.CreateBuyer(buyer_request)
834
+ buyer_key = new_buyer_response['BuyerKey']
835
+
836
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
837
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
838
+ create_instant_buy_data.ExpMonth = 10
839
+ create_instant_buy_data.ExpYear = 2018
840
+ create_instant_buy_data.SecurityCode = '123'
841
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
842
+ create_instant_buy_data.CreditCardBrand = 'Visa'
843
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
844
+ create_instant_buy_data.BuyerKey = buyer_key
845
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
846
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
847
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
848
+ create_instant_buy_data.BillingAddress.District = 'Centro'
849
+ create_instant_buy_data.BillingAddress.Number = '123'
850
+ create_instant_buy_data.BillingAddress.State = 'RJ'
851
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
852
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
853
+
854
+ response = gateway.CreateCreditCard(create_instant_buy_data)
855
+
856
+ expect(response['Success']).to eq true
857
+ end
858
+
859
+ it 'should create a credit card without billing address' do
860
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
861
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
862
+ create_instant_buy_data.ExpMonth = 10
863
+ create_instant_buy_data.ExpYear = 2018
864
+ create_instant_buy_data.SecurityCode = '123'
865
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
866
+ create_instant_buy_data.CreditCardBrand = 'Visa'
867
+
868
+ response = gateway.CreateCreditCard(create_instant_buy_data)
869
+
870
+ expect(response['ErrorReport']).to eq nil
871
+ end
872
+
873
+ it 'should update the credit card' do
874
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
875
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
876
+ create_instant_buy_data.ExpMonth = 10
877
+ create_instant_buy_data.ExpYear = 2018
878
+ create_instant_buy_data.SecurityCode = '123'
879
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
880
+ create_instant_buy_data.CreditCardBrand = 'Visa'
881
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
882
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
883
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
884
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
885
+ create_instant_buy_data.BillingAddress.District = 'Centro'
886
+ create_instant_buy_data.BillingAddress.Number = '123'
887
+ create_instant_buy_data.BillingAddress.State = 'RJ'
888
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
889
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
890
+
891
+ create_credit_card = gateway.CreateCreditCard(create_instant_buy_data)
892
+
893
+ credit_card_transaction = Gateway::CreditCardTransaction.new
894
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
895
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
896
+ credit_card_transaction.CreditCard.ExpMonth = 10
897
+ credit_card_transaction.CreditCard.ExpYear = 2018
898
+ credit_card_transaction.CreditCard.SecurityCode = '123'
899
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
900
+ credit_card_transaction.AmountInCents = 100
901
+
902
+ sale_request = Gateway::CreateSaleRequest.new
903
+ sale_request.Buyer.Name = 'Anakin Skywalker'
904
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
905
+ sale_request.Buyer.DocumentNumber = '12345678901'
906
+ sale_request.Buyer.DocumentType = 'CPF'
907
+ sale_request.Buyer.PersonType = 'Person'
908
+ sale_request.Buyer.Gender = 'M'
909
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
910
+
911
+ sale_response = gateway.CreateSale(sale_request)
912
+
913
+ instant_buy_key = create_credit_card['InstantBuyKey']
914
+
915
+ buyer_key = sale_response['BuyerKey']
916
+
917
+ update_instant_buy_data_request = Gateway::UpdateInstantBuyDataRequest.new
918
+ update_instant_buy_data_request.BuyerKey = buyer_key
919
+
920
+ response = gateway.UpdateCreditCard(instant_buy_key, update_instant_buy_data_request)
921
+
922
+ expect(response['Success']).to eq true
923
+ end
924
+
925
+ it 'should do a credit card transaction with instant buy key' do
926
+ credit_card_transaction = Gateway::CreditCardTransaction.new
927
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
928
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
929
+ credit_card_transaction.CreditCard.ExpMonth = 10
930
+ credit_card_transaction.CreditCard.ExpYear = 2018
931
+ credit_card_transaction.CreditCard.SecurityCode = '123'
932
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
933
+ credit_card_transaction.AmountInCents = 100
934
+
935
+ sale_request = Gateway::CreateSaleRequest.new
936
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
937
+
938
+ sale_response = gateway.CreateSale(sale_request)
939
+
940
+ expect(sale_response['ErrorReport']).to eq nil
941
+
942
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
943
+
944
+ # coleta dados do cartao
945
+ creditCardTransaction = Gateway::CreditCardTransaction.new
946
+ creditCardTransaction.AmountInCents = 100
947
+ creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
948
+
949
+ # cria a transacao
950
+ createSaleRequest = Gateway::CreateSaleRequest.new
951
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
952
+
953
+ # faz a requisicao de criação de transacao, retorna um hash com a resposta
954
+ response = gateway.CreateSale(createSaleRequest)
955
+
956
+ expect(response['ErrorReport']).to eq nil
957
+ end
958
+
959
+ it 'should get the buyer with buyer key' do
960
+ credit_card_transaction = Gateway::CreditCardTransaction.new
961
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
962
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
963
+ credit_card_transaction.CreditCard.ExpMonth = 10
964
+ credit_card_transaction.CreditCard.ExpYear = 2018
965
+ credit_card_transaction.CreditCard.SecurityCode = '123'
966
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
967
+ credit_card_transaction.AmountInCents = 100
968
+
969
+ sale_request = Gateway::CreateSaleRequest.new
970
+ sale_request.Buyer.Name = 'Anakin Skywalker'
971
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
972
+ sale_request.Buyer.DocumentNumber = '12345678901'
973
+ sale_request.Buyer.DocumentType = 'CPF'
974
+ sale_request.Buyer.PersonType = 'Person'
975
+ sale_request.Buyer.Gender = 'M'
976
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
977
+
978
+ sale_response = gateway.CreateSale(sale_request)
979
+
980
+ expect(sale_response['ErrorReport']).to eq nil
981
+
982
+ response = gateway.GetBuyer(sale_response['BuyerKey'])
983
+
984
+ expect(response['ErrorReport']).to eq nil
985
+ end
986
+
987
+ it 'should create buyer with buyer request' do
988
+ address = Gateway::BuyerAddress.new
989
+ address.AddressType = 'Residential'
990
+ address.City = 'Tatooine'
991
+ address.Complement = ''
992
+ address.Country = 'Brazil'
993
+ address.District = 'Mos Eisley'
994
+ address.Number = '123'
995
+ address.State = 'RJ'
996
+ address.Street = 'Mos Eisley Cantina'
997
+ address.ZipCode = '20001000'
998
+
999
+ buyer_request = Gateway::CreateBuyerRequest.new
1000
+ buyer_request.AddressCollection << address
1001
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
1002
+ buyer_request.BuyerCategory = 'Normal'
1003
+ buyer_request.BuyerReference = 'C3PO'
1004
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
1005
+ buyer_request.DocumentNumber = '12345678901'
1006
+ buyer_request.DocumentType = 'CPF'
1007
+ buyer_request.Email = 'lskywalker@r2d2.com'
1008
+ buyer_request.EmailType = 'Personal'
1009
+ buyer_request.FacebookId = 'lukeskywalker8917'
1010
+ buyer_request.Gender = 'M'
1011
+ buyer_request.HomePhone = '(21)123456789'
1012
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
1013
+ buyer_request.MobilePhone = '(21)987654321'
1014
+ buyer_request.Name = 'Luke Skywalker'
1015
+ buyer_request.PersonType = 'Person'
1016
+ buyer_request.TwitterId = '@lukeskywalker8917'
1017
+ buyer_request.WorkPhone = '(21)28467902'
1018
+
1019
+ response = gateway.CreateBuyer(buyer_request)
1020
+
1021
+ expect(response['Success']).to eq true
1022
+ end
1023
+ end