stone_ecommerce 1.2.3 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +202 -202
  3. data/README.md +58 -58
  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 +621 -621
  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/stone_ecommerce.rb +61 -62
  48. data/spec/integration/gateway_spec.rb +1024 -1024
  49. data/spec/integration/test_helper.rb +68 -68
  50. data/stone_ecommerce.gemspec +20 -19
  51. metadata +27 -24
@@ -1,1024 +1,1024 @@
1
- require_relative '../../lib/stone_ecommerce'
2
- require_relative 'test_helper'
3
-
4
- merchant_key = '8A2DD57F-1ED9-4153-B4CE-69683EFADAD5'
5
-
6
- gateway = Gateway::Gateway.new(:production, 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
- =begin
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
- =end
648
-
649
- it 'should get credit card instant buy key deprecated' do
650
- credit_card_transaction = Gateway::CreditCardTransaction.new
651
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
652
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
653
- credit_card_transaction.CreditCard.ExpMonth = 10
654
- credit_card_transaction.CreditCard.ExpYear = 2018
655
- credit_card_transaction.CreditCard.SecurityCode = '123'
656
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
657
- credit_card_transaction.AmountInCents = 100
658
-
659
- sale_request = Gateway::CreateSaleRequest.new
660
- sale_request.CreditCardTransactionCollection << credit_card_transaction
661
-
662
- sale_response = gateway.CreateSale(sale_request)
663
-
664
- expect(sale_response['ErrorReport']).to eq nil
665
-
666
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
667
-
668
- response = gateway.InstantBuyKey(instant_buy_key)
669
-
670
- expect(response['ErrorReport']).to eq nil
671
- end
672
-
673
- it 'should get credit card instant buy key' do
674
- credit_card_transaction = Gateway::CreditCardTransaction.new
675
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
676
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
677
- credit_card_transaction.CreditCard.ExpMonth = 10
678
- credit_card_transaction.CreditCard.ExpYear = 2018
679
- credit_card_transaction.CreditCard.SecurityCode = '123'
680
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
681
- credit_card_transaction.AmountInCents = 100
682
-
683
- sale_request = Gateway::CreateSaleRequest.new
684
- sale_request.CreditCardTransactionCollection << credit_card_transaction
685
-
686
- sale_response = gateway.CreateSale(sale_request)
687
-
688
- expect(sale_response['ErrorReport']).to eq nil
689
-
690
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
691
-
692
- response = gateway.GetCreditCard(instant_buy_key)
693
-
694
- expect(response['ErrorReport']).to eq nil
695
- end
696
-
697
- it 'should delete credit card instant buy key' do
698
- credit_card_transaction = Gateway::CreditCardTransaction.new
699
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
700
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
701
- credit_card_transaction.CreditCard.ExpMonth = 10
702
- credit_card_transaction.CreditCard.ExpYear = 2018
703
- credit_card_transaction.CreditCard.SecurityCode = '123'
704
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
705
- credit_card_transaction.AmountInCents = 100
706
-
707
- sale_request = Gateway::CreateSaleRequest.new
708
- sale_request.CreditCardTransactionCollection << credit_card_transaction
709
-
710
- sale_response = gateway.CreateSale(sale_request)
711
-
712
- expect(sale_response['ErrorReport']).to eq nil
713
-
714
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
715
-
716
- response = gateway.DeleteCreditCard(instant_buy_key)
717
-
718
- expect(response['Success']).to eq true
719
- end
720
-
721
- it 'should consult get credit card with buyer key deprecated' do
722
-
723
- credit_card_transaction = Gateway::CreditCardTransaction.new
724
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
725
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
726
- credit_card_transaction.CreditCard.ExpMonth = 10
727
- credit_card_transaction.CreditCard.ExpYear = 2018
728
- credit_card_transaction.CreditCard.SecurityCode = '123'
729
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
730
- credit_card_transaction.AmountInCents = 100
731
-
732
- sale_request = Gateway::CreateSaleRequest.new
733
- sale_request.Buyer.Name = 'Anakin Skywalker'
734
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
735
- sale_request.Buyer.DocumentNumber = '12345678901'
736
- sale_request.Buyer.DocumentType = 'CPF'
737
- sale_request.Buyer.PersonType = 'Person'
738
- sale_request.Buyer.Gender = 'M'
739
- sale_request.CreditCardTransactionCollection << credit_card_transaction
740
-
741
- sale_response = gateway.CreateSale(sale_request)
742
-
743
- expect(sale_response['ErrorReport']).to eq nil
744
-
745
- response = gateway.BuyerKey(sale_response['BuyerKey'])
746
-
747
- expect(response['ErrorReport']).to eq nil
748
- end
749
-
750
- it 'should consult get credit card with buyer key' do
751
-
752
- credit_card_transaction = Gateway::CreditCardTransaction.new
753
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
754
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
755
- credit_card_transaction.CreditCard.ExpMonth = 10
756
- credit_card_transaction.CreditCard.ExpYear = 2018
757
- credit_card_transaction.CreditCard.SecurityCode = '123'
758
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
759
- credit_card_transaction.AmountInCents = 100
760
-
761
- sale_request = Gateway::CreateSaleRequest.new
762
- sale_request.Buyer.Name = 'Anakin Skywalker'
763
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
764
- sale_request.Buyer.DocumentNumber = '12345678901'
765
- sale_request.Buyer.DocumentType = 'CPF'
766
- sale_request.Buyer.PersonType = 'Person'
767
- sale_request.Buyer.Gender = 'M'
768
- sale_request.CreditCardTransactionCollection << credit_card_transaction
769
-
770
- sale_response = gateway.CreateSale(sale_request)
771
-
772
- expect(sale_response['ErrorReport']).to eq nil
773
-
774
- response = gateway.GetCreditCardWithBuyerKey(sale_response['BuyerKey'])
775
-
776
- expect(response['ErrorReport']).to eq nil
777
- end
778
-
779
- it 'should create a credit card' do
780
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
781
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
782
- create_instant_buy_data.ExpMonth = 10
783
- create_instant_buy_data.ExpYear = 2018
784
- create_instant_buy_data.SecurityCode = '123'
785
- create_instant_buy_data.HolderName = 'Luke Skywalker'
786
- create_instant_buy_data.CreditCardBrand = 'Visa'
787
- create_instant_buy_data.IsOneDollarAuthEnabled = false
788
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
789
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
790
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
791
- create_instant_buy_data.BillingAddress.District = 'Centro'
792
- create_instant_buy_data.BillingAddress.Number = '123'
793
- create_instant_buy_data.BillingAddress.State = 'RJ'
794
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
795
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
796
-
797
- response = gateway.CreateCreditCard(create_instant_buy_data)
798
-
799
- expect(response['ErrorReport']).to eq nil
800
- end
801
-
802
- it 'should create credit card with buyerkey in it' do
803
- address = Gateway::BuyerAddress.new
804
- address.AddressType = 'Residential'
805
- address.City = 'Tatooine'
806
- address.Complement = ''
807
- address.Country = 'Brazil'
808
- address.District = 'Mos Eisley'
809
- address.Number = '123'
810
- address.State = 'RJ'
811
- address.Street = 'Mos Eisley Cantina'
812
- address.ZipCode = '20001000'
813
-
814
- buyer_request = Gateway::CreateBuyerRequest.new
815
- buyer_request.AddressCollection << address
816
- buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
817
- buyer_request.BuyerCategory = 'Normal'
818
- buyer_request.BuyerReference = 'C3PO'
819
- buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
820
- buyer_request.DocumentNumber = '12345678901'
821
- buyer_request.DocumentType = 'CPF'
822
- buyer_request.Email = 'lskywalker@r2d2.com'
823
- buyer_request.EmailType = 'Personal'
824
- buyer_request.FacebookId = 'lukeskywalker8917'
825
- buyer_request.Gender = 'M'
826
- buyer_request.HomePhone = '(21)123456789'
827
- buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
828
- buyer_request.MobilePhone = '(21)987654321'
829
- buyer_request.Name = 'Luke Skywalker'
830
- buyer_request.PersonType = 'Person'
831
- buyer_request.TwitterId = '@lukeskywalker8917'
832
- buyer_request.WorkPhone = '(21)28467902'
833
-
834
- new_buyer_response = gateway.CreateBuyer(buyer_request)
835
- buyer_key = new_buyer_response['BuyerKey']
836
-
837
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
838
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
839
- create_instant_buy_data.ExpMonth = 10
840
- create_instant_buy_data.ExpYear = 2018
841
- create_instant_buy_data.SecurityCode = '123'
842
- create_instant_buy_data.HolderName = 'Luke Skywalker'
843
- create_instant_buy_data.CreditCardBrand = 'Visa'
844
- create_instant_buy_data.IsOneDollarAuthEnabled = false
845
- create_instant_buy_data.BuyerKey = buyer_key
846
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
847
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
848
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
849
- create_instant_buy_data.BillingAddress.District = 'Centro'
850
- create_instant_buy_data.BillingAddress.Number = '123'
851
- create_instant_buy_data.BillingAddress.State = 'RJ'
852
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
853
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
854
-
855
- response = gateway.CreateCreditCard(create_instant_buy_data)
856
-
857
- expect(response['Success']).to eq true
858
- end
859
-
860
- it 'should create a credit card without billing address' do
861
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
862
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
863
- create_instant_buy_data.ExpMonth = 10
864
- create_instant_buy_data.ExpYear = 2018
865
- create_instant_buy_data.SecurityCode = '123'
866
- create_instant_buy_data.HolderName = 'Luke Skywalker'
867
- create_instant_buy_data.CreditCardBrand = 'Visa'
868
-
869
- response = gateway.CreateCreditCard(create_instant_buy_data)
870
-
871
- expect(response['ErrorReport']).to eq nil
872
- end
873
-
874
- it 'should update the credit card' do
875
- create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
876
- create_instant_buy_data.CreditCardNumber = '4111111111111111'
877
- create_instant_buy_data.ExpMonth = 10
878
- create_instant_buy_data.ExpYear = 2018
879
- create_instant_buy_data.SecurityCode = '123'
880
- create_instant_buy_data.HolderName = 'Luke Skywalker'
881
- create_instant_buy_data.CreditCardBrand = 'Visa'
882
- create_instant_buy_data.IsOneDollarAuthEnabled = false
883
- create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
884
- create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
885
- create_instant_buy_data.BillingAddress.Country = 'Brazil'
886
- create_instant_buy_data.BillingAddress.District = 'Centro'
887
- create_instant_buy_data.BillingAddress.Number = '123'
888
- create_instant_buy_data.BillingAddress.State = 'RJ'
889
- create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
890
- create_instant_buy_data.BillingAddress.ZipCode = '20270004'
891
-
892
- create_credit_card = gateway.CreateCreditCard(create_instant_buy_data)
893
-
894
- credit_card_transaction = Gateway::CreditCardTransaction.new
895
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
896
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
897
- credit_card_transaction.CreditCard.ExpMonth = 10
898
- credit_card_transaction.CreditCard.ExpYear = 2018
899
- credit_card_transaction.CreditCard.SecurityCode = '123'
900
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
901
- credit_card_transaction.AmountInCents = 100
902
-
903
- sale_request = Gateway::CreateSaleRequest.new
904
- sale_request.Buyer.Name = 'Anakin Skywalker'
905
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
906
- sale_request.Buyer.DocumentNumber = '12345678901'
907
- sale_request.Buyer.DocumentType = 'CPF'
908
- sale_request.Buyer.PersonType = 'Person'
909
- sale_request.Buyer.Gender = 'M'
910
- sale_request.CreditCardTransactionCollection << credit_card_transaction
911
-
912
- sale_response = gateway.CreateSale(sale_request)
913
-
914
- instant_buy_key = create_credit_card['InstantBuyKey']
915
-
916
- buyer_key = sale_response['BuyerKey']
917
-
918
- update_instant_buy_data_request = Gateway::UpdateInstantBuyDataRequest.new
919
- update_instant_buy_data_request.BuyerKey = buyer_key
920
-
921
- response = gateway.UpdateCreditCard(instant_buy_key, update_instant_buy_data_request)
922
-
923
- expect(response['Success']).to eq true
924
- end
925
-
926
- it 'should do a credit card transaction with instant buy key' do
927
- credit_card_transaction = Gateway::CreditCardTransaction.new
928
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
929
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
930
- credit_card_transaction.CreditCard.ExpMonth = 10
931
- credit_card_transaction.CreditCard.ExpYear = 2018
932
- credit_card_transaction.CreditCard.SecurityCode = '123'
933
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
934
- credit_card_transaction.AmountInCents = 100
935
-
936
- sale_request = Gateway::CreateSaleRequest.new
937
- sale_request.CreditCardTransactionCollection << credit_card_transaction
938
-
939
- sale_response = gateway.CreateSale(sale_request)
940
-
941
- expect(sale_response['ErrorReport']).to eq nil
942
-
943
- instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
944
-
945
- # coleta dados do cartao
946
- creditCardTransaction = Gateway::CreditCardTransaction.new
947
- creditCardTransaction.AmountInCents = 100
948
- creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
949
-
950
- # cria a transacao
951
- createSaleRequest = Gateway::CreateSaleRequest.new
952
- createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
953
-
954
- # faz a requisicao de criação de transacao, retorna um hash com a resposta
955
- response = gateway.CreateSale(createSaleRequest)
956
-
957
- expect(response['ErrorReport']).to eq nil
958
- end
959
-
960
- it 'should get the buyer with buyer key' do
961
- credit_card_transaction = Gateway::CreditCardTransaction.new
962
- credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
963
- credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
964
- credit_card_transaction.CreditCard.ExpMonth = 10
965
- credit_card_transaction.CreditCard.ExpYear = 2018
966
- credit_card_transaction.CreditCard.SecurityCode = '123'
967
- credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
968
- credit_card_transaction.AmountInCents = 100
969
-
970
- sale_request = Gateway::CreateSaleRequest.new
971
- sale_request.Buyer.Name = 'Anakin Skywalker'
972
- sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
973
- sale_request.Buyer.DocumentNumber = '12345678901'
974
- sale_request.Buyer.DocumentType = 'CPF'
975
- sale_request.Buyer.PersonType = 'Person'
976
- sale_request.Buyer.Gender = 'M'
977
- sale_request.CreditCardTransactionCollection << credit_card_transaction
978
-
979
- sale_response = gateway.CreateSale(sale_request)
980
-
981
- expect(sale_response['ErrorReport']).to eq nil
982
-
983
- response = gateway.GetBuyer(sale_response['BuyerKey'])
984
-
985
- expect(response['ErrorReport']).to eq nil
986
- end
987
-
988
- it 'should create buyer with buyer request' do
989
- address = Gateway::BuyerAddress.new
990
- address.AddressType = 'Residential'
991
- address.City = 'Tatooine'
992
- address.Complement = ''
993
- address.Country = 'Brazil'
994
- address.District = 'Mos Eisley'
995
- address.Number = '123'
996
- address.State = 'RJ'
997
- address.Street = 'Mos Eisley Cantina'
998
- address.ZipCode = '20001000'
999
-
1000
- buyer_request = Gateway::CreateBuyerRequest.new
1001
- buyer_request.AddressCollection << address
1002
- buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
1003
- buyer_request.BuyerCategory = 'Normal'
1004
- buyer_request.BuyerReference = 'C3PO'
1005
- buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
1006
- buyer_request.DocumentNumber = '12345678901'
1007
- buyer_request.DocumentType = 'CPF'
1008
- buyer_request.Email = 'lskywalker@r2d2.com'
1009
- buyer_request.EmailType = 'Personal'
1010
- buyer_request.FacebookId = 'lukeskywalker8917'
1011
- buyer_request.Gender = 'M'
1012
- buyer_request.HomePhone = '(21)123456789'
1013
- buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
1014
- buyer_request.MobilePhone = '(21)987654321'
1015
- buyer_request.Name = 'Luke Skywalker'
1016
- buyer_request.PersonType = 'Person'
1017
- buyer_request.TwitterId = '@lukeskywalker8917'
1018
- buyer_request.WorkPhone = '(21)28467902'
1019
-
1020
- response = gateway.CreateBuyer(buyer_request)
1021
-
1022
- expect(response['Success']).to eq true
1023
- end
1024
- end
1
+ require_relative '../../lib/stone_ecommerce'
2
+ require_relative 'test_helper'
3
+
4
+ merchant_key = '8A2DD57F-1ED9-4153-B4CE-69683EFADAD5'
5
+
6
+ gateway = Gateway::Gateway.new(:production, 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
+ =begin
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
+ =end
648
+
649
+ it 'should get credit card instant buy key deprecated' do
650
+ credit_card_transaction = Gateway::CreditCardTransaction.new
651
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
652
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
653
+ credit_card_transaction.CreditCard.ExpMonth = 10
654
+ credit_card_transaction.CreditCard.ExpYear = 2018
655
+ credit_card_transaction.CreditCard.SecurityCode = '123'
656
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
657
+ credit_card_transaction.AmountInCents = 100
658
+
659
+ sale_request = Gateway::CreateSaleRequest.new
660
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
661
+
662
+ sale_response = gateway.CreateSale(sale_request)
663
+
664
+ expect(sale_response['ErrorReport']).to eq nil
665
+
666
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
667
+
668
+ response = gateway.InstantBuyKey(instant_buy_key)
669
+
670
+ expect(response['ErrorReport']).to eq nil
671
+ end
672
+
673
+ it 'should get credit card instant buy key' do
674
+ credit_card_transaction = Gateway::CreditCardTransaction.new
675
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
676
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
677
+ credit_card_transaction.CreditCard.ExpMonth = 10
678
+ credit_card_transaction.CreditCard.ExpYear = 2018
679
+ credit_card_transaction.CreditCard.SecurityCode = '123'
680
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
681
+ credit_card_transaction.AmountInCents = 100
682
+
683
+ sale_request = Gateway::CreateSaleRequest.new
684
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
685
+
686
+ sale_response = gateway.CreateSale(sale_request)
687
+
688
+ expect(sale_response['ErrorReport']).to eq nil
689
+
690
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
691
+
692
+ response = gateway.GetCreditCard(instant_buy_key)
693
+
694
+ expect(response['ErrorReport']).to eq nil
695
+ end
696
+
697
+ it 'should delete credit card instant buy key' do
698
+ credit_card_transaction = Gateway::CreditCardTransaction.new
699
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
700
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
701
+ credit_card_transaction.CreditCard.ExpMonth = 10
702
+ credit_card_transaction.CreditCard.ExpYear = 2018
703
+ credit_card_transaction.CreditCard.SecurityCode = '123'
704
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
705
+ credit_card_transaction.AmountInCents = 100
706
+
707
+ sale_request = Gateway::CreateSaleRequest.new
708
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
709
+
710
+ sale_response = gateway.CreateSale(sale_request)
711
+
712
+ expect(sale_response['ErrorReport']).to eq nil
713
+
714
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
715
+
716
+ response = gateway.DeleteCreditCard(instant_buy_key)
717
+
718
+ expect(response['Success']).to eq true
719
+ end
720
+
721
+ it 'should consult get credit card with buyer key deprecated' do
722
+
723
+ credit_card_transaction = Gateway::CreditCardTransaction.new
724
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
725
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
726
+ credit_card_transaction.CreditCard.ExpMonth = 10
727
+ credit_card_transaction.CreditCard.ExpYear = 2018
728
+ credit_card_transaction.CreditCard.SecurityCode = '123'
729
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
730
+ credit_card_transaction.AmountInCents = 100
731
+
732
+ sale_request = Gateway::CreateSaleRequest.new
733
+ sale_request.Buyer.Name = 'Anakin Skywalker'
734
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
735
+ sale_request.Buyer.DocumentNumber = '12345678901'
736
+ sale_request.Buyer.DocumentType = 'CPF'
737
+ sale_request.Buyer.PersonType = 'Person'
738
+ sale_request.Buyer.Gender = 'M'
739
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
740
+
741
+ sale_response = gateway.CreateSale(sale_request)
742
+
743
+ expect(sale_response['ErrorReport']).to eq nil
744
+
745
+ response = gateway.BuyerKey(sale_response['BuyerKey'])
746
+
747
+ expect(response['ErrorReport']).to eq nil
748
+ end
749
+
750
+ it 'should consult get credit card with buyer key' do
751
+
752
+ credit_card_transaction = Gateway::CreditCardTransaction.new
753
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
754
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
755
+ credit_card_transaction.CreditCard.ExpMonth = 10
756
+ credit_card_transaction.CreditCard.ExpYear = 2018
757
+ credit_card_transaction.CreditCard.SecurityCode = '123'
758
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
759
+ credit_card_transaction.AmountInCents = 100
760
+
761
+ sale_request = Gateway::CreateSaleRequest.new
762
+ sale_request.Buyer.Name = 'Anakin Skywalker'
763
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
764
+ sale_request.Buyer.DocumentNumber = '12345678901'
765
+ sale_request.Buyer.DocumentType = 'CPF'
766
+ sale_request.Buyer.PersonType = 'Person'
767
+ sale_request.Buyer.Gender = 'M'
768
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
769
+
770
+ sale_response = gateway.CreateSale(sale_request)
771
+
772
+ expect(sale_response['ErrorReport']).to eq nil
773
+
774
+ response = gateway.GetCreditCardWithBuyerKey(sale_response['BuyerKey'])
775
+
776
+ expect(response['ErrorReport']).to eq nil
777
+ end
778
+
779
+ it 'should create a credit card' do
780
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
781
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
782
+ create_instant_buy_data.ExpMonth = 10
783
+ create_instant_buy_data.ExpYear = 2018
784
+ create_instant_buy_data.SecurityCode = '123'
785
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
786
+ create_instant_buy_data.CreditCardBrand = 'Visa'
787
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
788
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
789
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
790
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
791
+ create_instant_buy_data.BillingAddress.District = 'Centro'
792
+ create_instant_buy_data.BillingAddress.Number = '123'
793
+ create_instant_buy_data.BillingAddress.State = 'RJ'
794
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
795
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
796
+
797
+ response = gateway.CreateCreditCard(create_instant_buy_data)
798
+
799
+ expect(response['ErrorReport']).to eq nil
800
+ end
801
+
802
+ it 'should create credit card with buyerkey in it' do
803
+ address = Gateway::BuyerAddress.new
804
+ address.AddressType = 'Residential'
805
+ address.City = 'Tatooine'
806
+ address.Complement = ''
807
+ address.Country = 'Brazil'
808
+ address.District = 'Mos Eisley'
809
+ address.Number = '123'
810
+ address.State = 'RJ'
811
+ address.Street = 'Mos Eisley Cantina'
812
+ address.ZipCode = '20001000'
813
+
814
+ buyer_request = Gateway::CreateBuyerRequest.new
815
+ buyer_request.AddressCollection << address
816
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
817
+ buyer_request.BuyerCategory = 'Normal'
818
+ buyer_request.BuyerReference = 'C3PO'
819
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
820
+ buyer_request.DocumentNumber = '12345678901'
821
+ buyer_request.DocumentType = 'CPF'
822
+ buyer_request.Email = 'lskywalker@r2d2.com'
823
+ buyer_request.EmailType = 'Personal'
824
+ buyer_request.FacebookId = 'lukeskywalker8917'
825
+ buyer_request.Gender = 'M'
826
+ buyer_request.HomePhone = '(21)123456789'
827
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
828
+ buyer_request.MobilePhone = '(21)987654321'
829
+ buyer_request.Name = 'Luke Skywalker'
830
+ buyer_request.PersonType = 'Person'
831
+ buyer_request.TwitterId = '@lukeskywalker8917'
832
+ buyer_request.WorkPhone = '(21)28467902'
833
+
834
+ new_buyer_response = gateway.CreateBuyer(buyer_request)
835
+ buyer_key = new_buyer_response['BuyerKey']
836
+
837
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
838
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
839
+ create_instant_buy_data.ExpMonth = 10
840
+ create_instant_buy_data.ExpYear = 2018
841
+ create_instant_buy_data.SecurityCode = '123'
842
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
843
+ create_instant_buy_data.CreditCardBrand = 'Visa'
844
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
845
+ create_instant_buy_data.BuyerKey = buyer_key
846
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
847
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
848
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
849
+ create_instant_buy_data.BillingAddress.District = 'Centro'
850
+ create_instant_buy_data.BillingAddress.Number = '123'
851
+ create_instant_buy_data.BillingAddress.State = 'RJ'
852
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
853
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
854
+
855
+ response = gateway.CreateCreditCard(create_instant_buy_data)
856
+
857
+ expect(response['Success']).to eq true
858
+ end
859
+
860
+ it 'should create a credit card without billing address' do
861
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
862
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
863
+ create_instant_buy_data.ExpMonth = 10
864
+ create_instant_buy_data.ExpYear = 2018
865
+ create_instant_buy_data.SecurityCode = '123'
866
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
867
+ create_instant_buy_data.CreditCardBrand = 'Visa'
868
+
869
+ response = gateway.CreateCreditCard(create_instant_buy_data)
870
+
871
+ expect(response['ErrorReport']).to eq nil
872
+ end
873
+
874
+ it 'should update the credit card' do
875
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
876
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
877
+ create_instant_buy_data.ExpMonth = 10
878
+ create_instant_buy_data.ExpYear = 2018
879
+ create_instant_buy_data.SecurityCode = '123'
880
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
881
+ create_instant_buy_data.CreditCardBrand = 'Visa'
882
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
883
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
884
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
885
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
886
+ create_instant_buy_data.BillingAddress.District = 'Centro'
887
+ create_instant_buy_data.BillingAddress.Number = '123'
888
+ create_instant_buy_data.BillingAddress.State = 'RJ'
889
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
890
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
891
+
892
+ create_credit_card = gateway.CreateCreditCard(create_instant_buy_data)
893
+
894
+ credit_card_transaction = Gateway::CreditCardTransaction.new
895
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
896
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
897
+ credit_card_transaction.CreditCard.ExpMonth = 10
898
+ credit_card_transaction.CreditCard.ExpYear = 2018
899
+ credit_card_transaction.CreditCard.SecurityCode = '123'
900
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
901
+ credit_card_transaction.AmountInCents = 100
902
+
903
+ sale_request = Gateway::CreateSaleRequest.new
904
+ sale_request.Buyer.Name = 'Anakin Skywalker'
905
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
906
+ sale_request.Buyer.DocumentNumber = '12345678901'
907
+ sale_request.Buyer.DocumentType = 'CPF'
908
+ sale_request.Buyer.PersonType = 'Person'
909
+ sale_request.Buyer.Gender = 'M'
910
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
911
+
912
+ sale_response = gateway.CreateSale(sale_request)
913
+
914
+ instant_buy_key = create_credit_card['InstantBuyKey']
915
+
916
+ buyer_key = sale_response['BuyerKey']
917
+
918
+ update_instant_buy_data_request = Gateway::UpdateInstantBuyDataRequest.new
919
+ update_instant_buy_data_request.BuyerKey = buyer_key
920
+
921
+ response = gateway.UpdateCreditCard(instant_buy_key, update_instant_buy_data_request)
922
+
923
+ expect(response['Success']).to eq true
924
+ end
925
+
926
+ it 'should do a credit card transaction with instant buy key' do
927
+ credit_card_transaction = Gateway::CreditCardTransaction.new
928
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
929
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
930
+ credit_card_transaction.CreditCard.ExpMonth = 10
931
+ credit_card_transaction.CreditCard.ExpYear = 2018
932
+ credit_card_transaction.CreditCard.SecurityCode = '123'
933
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
934
+ credit_card_transaction.AmountInCents = 100
935
+
936
+ sale_request = Gateway::CreateSaleRequest.new
937
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
938
+
939
+ sale_response = gateway.CreateSale(sale_request)
940
+
941
+ expect(sale_response['ErrorReport']).to eq nil
942
+
943
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
944
+
945
+ # coleta dados do cartao
946
+ creditCardTransaction = Gateway::CreditCardTransaction.new
947
+ creditCardTransaction.AmountInCents = 100
948
+ creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
949
+
950
+ # cria a transacao
951
+ createSaleRequest = Gateway::CreateSaleRequest.new
952
+ createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
953
+
954
+ # faz a requisicao de criação de transacao, retorna um hash com a resposta
955
+ response = gateway.CreateSale(createSaleRequest)
956
+
957
+ expect(response['ErrorReport']).to eq nil
958
+ end
959
+
960
+ it 'should get the buyer with buyer key' do
961
+ credit_card_transaction = Gateway::CreditCardTransaction.new
962
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
963
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
964
+ credit_card_transaction.CreditCard.ExpMonth = 10
965
+ credit_card_transaction.CreditCard.ExpYear = 2018
966
+ credit_card_transaction.CreditCard.SecurityCode = '123'
967
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
968
+ credit_card_transaction.AmountInCents = 100
969
+
970
+ sale_request = Gateway::CreateSaleRequest.new
971
+ sale_request.Buyer.Name = 'Anakin Skywalker'
972
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
973
+ sale_request.Buyer.DocumentNumber = '12345678901'
974
+ sale_request.Buyer.DocumentType = 'CPF'
975
+ sale_request.Buyer.PersonType = 'Person'
976
+ sale_request.Buyer.Gender = 'M'
977
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
978
+
979
+ sale_response = gateway.CreateSale(sale_request)
980
+
981
+ expect(sale_response['ErrorReport']).to eq nil
982
+
983
+ response = gateway.GetBuyer(sale_response['BuyerKey'])
984
+
985
+ expect(response['ErrorReport']).to eq nil
986
+ end
987
+
988
+ it 'should create buyer with buyer request' do
989
+ address = Gateway::BuyerAddress.new
990
+ address.AddressType = 'Residential'
991
+ address.City = 'Tatooine'
992
+ address.Complement = ''
993
+ address.Country = 'Brazil'
994
+ address.District = 'Mos Eisley'
995
+ address.Number = '123'
996
+ address.State = 'RJ'
997
+ address.Street = 'Mos Eisley Cantina'
998
+ address.ZipCode = '20001000'
999
+
1000
+ buyer_request = Gateway::CreateBuyerRequest.new
1001
+ buyer_request.AddressCollection << address
1002
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
1003
+ buyer_request.BuyerCategory = 'Normal'
1004
+ buyer_request.BuyerReference = 'C3PO'
1005
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
1006
+ buyer_request.DocumentNumber = '12345678901'
1007
+ buyer_request.DocumentType = 'CPF'
1008
+ buyer_request.Email = 'lskywalker@r2d2.com'
1009
+ buyer_request.EmailType = 'Personal'
1010
+ buyer_request.FacebookId = 'lukeskywalker8917'
1011
+ buyer_request.Gender = 'M'
1012
+ buyer_request.HomePhone = '(21)123456789'
1013
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
1014
+ buyer_request.MobilePhone = '(21)987654321'
1015
+ buyer_request.Name = 'Luke Skywalker'
1016
+ buyer_request.PersonType = 'Person'
1017
+ buyer_request.TwitterId = '@lukeskywalker8917'
1018
+ buyer_request.WorkPhone = '(21)28467902'
1019
+
1020
+ response = gateway.CreateBuyer(buyer_request)
1021
+
1022
+ expect(response['Success']).to eq true
1023
+ end
1024
+ end