stone_ecommerce 1.0.3 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/gateway/Address/billing_address.rb +25 -23
- data/lib/gateway/Address/buyer_address.rb +28 -25
- data/lib/gateway/Address/delivery_address.rb +24 -22
- data/lib/gateway/BoletoTransaction/boleto_transaction.rb +28 -30
- data/lib/gateway/BoletoTransaction/boleto_transaction_options.rb +14 -11
- data/lib/gateway/BoletoTransaction/boleto_transaction_report_file.rb +20 -17
- data/lib/gateway/CreditCardTransaction/credit_card.rb +19 -18
- data/lib/gateway/CreditCardTransaction/credit_card_transaction.rb +21 -19
- data/lib/gateway/CreditCardTransaction/credit_card_transaction_options.rb +17 -15
- data/lib/gateway/CreditCardTransaction/credit_card_transaction_report_file.rb +29 -26
- data/lib/gateway/CreditCardTransaction/manage_credit_card_transaction.rb +11 -8
- data/lib/gateway/CreditCardTransaction/retry_sale_credit_card_transaction.rb +10 -8
- data/lib/gateway/Gateway.rb +514 -334
- data/lib/gateway/InstantBuyData/create_instant_buy_data_request.rb +31 -0
- data/lib/gateway/InstantBuyData/update_instant_buy_data_request.rb +11 -0
- data/lib/gateway/Merchant/merchant.rb +10 -8
- data/lib/gateway/OnlineDebit/online_debit_transaction_report_file.rb +19 -16
- data/lib/gateway/Order/order.rb +11 -8
- data/lib/gateway/Order/order_transaction_report_file.rb +8 -5
- data/lib/gateway/Parsers/boleto_transaction_parser.rb +28 -25
- data/lib/gateway/Parsers/credit_card_transaction_parser.rb +37 -34
- data/lib/gateway/Parsers/header_parser.rb +13 -10
- data/lib/gateway/Parsers/online_debit_transaction_parser.rb +26 -23
- data/lib/gateway/Parsers/trailer_parser.rb +13 -11
- data/lib/gateway/Person/buyer.rb +22 -22
- data/lib/gateway/Person/create_buyer_request.rb +23 -0
- data/lib/gateway/Person/person.rb +34 -32
- data/lib/gateway/Recurrency/recurrency.rb +18 -16
- data/lib/gateway/Sale/create_sale_request.rb +26 -24
- data/lib/gateway/Sale/manage_sale_request.rb +13 -11
- data/lib/gateway/Sale/query_sale_request.rb +27 -25
- data/lib/gateway/Sale/request_data.rb +16 -14
- data/lib/gateway/Sale/retry_sale_options.rb +12 -10
- data/lib/gateway/Sale/retry_sale_request.rb +15 -14
- data/lib/gateway/Sale/sale_data.rb +0 -2
- data/lib/gateway/Sale/sale_order_data.rb +14 -12
- data/lib/gateway/SalesOption.rb +13 -11
- data/lib/gateway/ShoppingCart/shopping_cart.rb +18 -16
- data/lib/gateway/ShoppingCart/shopping_cart_item.rb +15 -13
- data/lib/gateway/Trailer.rb +8 -5
- data/lib/gateway/header.rb +7 -4
- data/lib/gateway/post_notification.rb +23 -20
- data/lib/gateway/transaction_report_file.rb +43 -40
- data/lib/stone_ecommerce.rb +6 -14
- data/spec/integration/gateway_spec.rb +376 -85
- data/spec/spec_helper.rb +96 -96
- data/stone_ecommerce.gemspec +2 -2
- metadata +6 -20
- data/lib/gateway/AntiFraud/anti_fraud_analysis_result.rb +0 -47
- data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_data.rb +0 -51
- data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data.rb +0 -41
- data/lib/gateway/BaseRequest.rb +0 -11
- data/lib/gateway/BaseResponse.rb +0 -17
- data/lib/gateway/BoletoTransaction/boleto_transaction_data.rb +0 -44
- data/lib/gateway/BoletoTransaction/boleto_transaction_result.rb +0 -35
- data/lib/gateway/CreditCardTransaction/credit_card_transaction_data.rb +0 -104
- data/lib/gateway/ErrorItem.rb +0 -17
- data/lib/gateway/ErrorReport.rb +0 -18
- data/lib/gateway/InstantBuy/credit_card_data.rb +0 -41
- data/lib/gateway/InstantBuy/get_instant_buy_data_response.rb +0 -18
- data/lib/gateway/Sale/create_sale_response.rb +0 -25
- data/lib/gateway/Sale/manage_sale_response.rb +0 -15
- data/lib/gateway/Sale/query_sale_response.rb +0 -18
- data/lib/gateway/Sale/retry_sale_response.rb +0 -14
- data/lib/gateway/address.rb +0 -25
data/lib/gateway/SalesOption.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
|
-
|
1
|
+
module Gateway
|
2
2
|
|
3
|
-
|
3
|
+
class SalesOption
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :IsAntiFraudEnabled
|
6
6
|
|
7
|
-
|
7
|
+
attr_accessor :AntiFraudServiceCode
|
8
8
|
|
9
|
-
|
9
|
+
attr_accessor :Retries
|
10
10
|
|
11
|
-
|
12
|
-
hash = {}
|
13
|
-
instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
14
|
-
hash
|
15
|
-
end
|
11
|
+
attr_accessor :CurrencyIso
|
16
12
|
|
17
|
-
|
13
|
+
def to_json
|
14
|
+
hash = {}
|
15
|
+
instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
16
|
+
hash
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,26 +1,28 @@
|
|
1
|
-
|
1
|
+
module Gateway
|
2
2
|
|
3
|
-
|
3
|
+
class ShoppingCartCollection
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :FreighCostInCents
|
6
6
|
|
7
|
-
|
7
|
+
attr_accessor :EstimatedDeliveryDate
|
8
8
|
|
9
|
-
|
9
|
+
attr_accessor :DeliveryDeadline
|
10
10
|
|
11
|
-
|
11
|
+
attr_accessor :ShippingCompany
|
12
12
|
|
13
|
-
|
13
|
+
attr_accessor :DeliveryAddress
|
14
14
|
|
15
|
-
|
16
|
-
@ShoppingCartItemCollection = Array.new
|
17
|
-
@DeliveryAddress = DeliveryAddress.new
|
18
|
-
end
|
15
|
+
attr_accessor :ShoppingCartItemCollection
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
17
|
+
def initialize
|
18
|
+
@ShoppingCartItemCollection = Array.new
|
19
|
+
@DeliveryAddress = DeliveryAddress.new
|
20
|
+
end
|
25
21
|
|
22
|
+
def to_json
|
23
|
+
hash = {}
|
24
|
+
instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
25
|
+
hash
|
26
|
+
end
|
27
|
+
end
|
26
28
|
end
|
@@ -1,23 +1,25 @@
|
|
1
|
-
|
1
|
+
module Gateway
|
2
2
|
|
3
|
-
|
3
|
+
class ShoppingCartItemCollection
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :ItemReference
|
6
6
|
|
7
|
-
|
7
|
+
attr_accessor :Quantity
|
8
8
|
|
9
|
-
|
9
|
+
attr_accessor :UnitCostInCents
|
10
10
|
|
11
|
-
|
11
|
+
attr_accessor :TotalCostInCents
|
12
12
|
|
13
|
-
|
13
|
+
attr_accessor :Name
|
14
14
|
|
15
|
-
|
15
|
+
attr_accessor :Description
|
16
16
|
|
17
|
-
|
18
|
-
hash = {}
|
19
|
-
instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
20
|
-
hash
|
21
|
-
end
|
17
|
+
attr_accessor :DiscountAmountInCents
|
22
18
|
|
19
|
+
def to_json
|
20
|
+
hash = {}
|
21
|
+
instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
22
|
+
hash
|
23
|
+
end
|
24
|
+
end
|
23
25
|
end
|
data/lib/gateway/Trailer.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
module Gateway
|
2
|
+
|
3
|
+
class Trailer
|
4
|
+
attr_accessor :OrderDataCount
|
5
|
+
attr_accessor :CreditCardTransactionDataCount
|
6
|
+
attr_accessor :BoletoTransactionDataCount
|
7
|
+
attr_accessor :OnlineDebitTransactionDataCount
|
8
|
+
end
|
6
9
|
end
|
data/lib/gateway/header.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
module Gateway
|
2
|
+
|
3
|
+
class Header
|
4
|
+
attr_accessor :TransactionProcessedDate
|
5
|
+
attr_accessor :ReportFileCreateDate
|
6
|
+
attr_accessor :Version
|
7
|
+
end
|
5
8
|
end
|
@@ -1,29 +1,32 @@
|
|
1
1
|
require 'nori'
|
2
2
|
|
3
|
+
module Gateway
|
4
|
+
|
3
5
|
# Class who handles Gateway post notification XML
|
4
|
-
class PostNotification
|
6
|
+
class PostNotification
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
# This method parse the Xml sent by Gateway when notify a change in a transaction.
|
9
|
+
#
|
10
|
+
# @param request [String] XML received in the Gateway POST request.
|
11
|
+
# @return [Hash<Symbol, String>] A hash collection containing the XML data parsed.
|
12
|
+
def self.ParseNotification(xml)
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
+
nori = Nori.new(:convert_tags_to => lambda { |tag| PostNotification.to_underscore(tag).to_sym })
|
15
|
+
xml_hash = nori.parse(CGI::unescapeHTML(xml))
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
return xml_hash
|
18
|
+
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
# Converts a string in Camel Case format to lower case with underscore.
|
21
|
+
#
|
22
|
+
# @param Example: 'StatusNotification' outputs 'status_notification'
|
23
|
+
# @returns [String] lower case string separated with underscore
|
24
|
+
def self.to_underscore(camel_case_string)
|
25
|
+
return camel_case_string.gsub(/::/, '/').
|
26
|
+
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
|
27
|
+
gsub(/([a-z\d])([A-Z])/, '\1_\2').
|
28
|
+
tr("-", "_").
|
29
|
+
downcase
|
30
|
+
end
|
28
31
|
end
|
29
32
|
end
|
@@ -1,45 +1,48 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
1
|
+
module Gateway
|
2
|
+
|
3
|
+
class TransactionReportFile
|
4
|
+
def TransactionReportFileParser(file_to_parse)
|
5
|
+
response = {}
|
6
|
+
response['CreditCardTransaction'] = []
|
7
|
+
response['OnlineDebitTransaction'] = []
|
8
|
+
response['BoletoTransaction'] = []
|
9
|
+
|
10
|
+
header_parser = HeaderParser.new
|
11
|
+
credit_card_parser = CreditCardTransactionParser.new
|
12
|
+
boleto_parser = BoletoTransactionParser.new
|
13
|
+
online_debit_parser = OnlineDebitTransactionParser.new
|
14
|
+
trailer_parser = TrailerParser.new
|
15
|
+
|
16
|
+
begin
|
17
|
+
response_splited = file_to_parse.split("\n")
|
18
|
+
|
19
|
+
response_splited.each do |item|
|
20
|
+
|
21
|
+
to_parse_item = item.split(',')
|
22
|
+
if to_parse_item[0] == '01'
|
23
|
+
response['Header'] = header_parser.Parse(to_parse_item)
|
24
|
+
end
|
25
|
+
|
26
|
+
if to_parse_item[0] == '20'
|
27
|
+
response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
|
28
|
+
end
|
29
|
+
|
30
|
+
if to_parse_item[0] == '40'
|
31
|
+
response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
|
32
|
+
end
|
33
|
+
|
34
|
+
if to_parse_item[0] == '30'
|
35
|
+
response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
|
36
|
+
end
|
37
|
+
|
38
|
+
if to_parse_item[0] == '99'
|
39
|
+
response['Trailer'] = trailer_parser.Parse(to_parse_item)
|
40
|
+
end
|
38
41
|
end
|
42
|
+
rescue Exception => err
|
43
|
+
return err
|
39
44
|
end
|
40
|
-
|
41
|
-
return err
|
45
|
+
return response
|
42
46
|
end
|
43
|
-
return response
|
44
47
|
end
|
45
48
|
end
|
data/lib/stone_ecommerce.rb
CHANGED
@@ -7,31 +7,20 @@ require 'nori'
|
|
7
7
|
require 'rspec'
|
8
8
|
require 'rexml/document'
|
9
9
|
|
10
|
-
require_relative 'gateway/address'
|
11
|
-
require_relative 'gateway/Address/billing_address'
|
12
|
-
require_relative 'gateway/Address/buyer_address'
|
13
|
-
require_relative 'gateway/Address/delivery_address'
|
14
|
-
|
15
|
-
require_relative 'gateway/AntiFraud/anti_fraud_analysis_result'
|
16
|
-
require_relative 'gateway/AntiFraud/query_sale_anti_fraud_analysis_data'
|
17
|
-
require_relative 'gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data'
|
18
|
-
|
19
10
|
require_relative 'gateway/BoletoTransaction/boleto_transaction'
|
20
|
-
require_relative 'gateway/BoletoTransaction/boleto_transaction_data'
|
21
11
|
require_relative 'gateway/BoletoTransaction/boleto_transaction_options'
|
22
|
-
require_relative 'gateway/BoletoTransaction/boleto_transaction_result'
|
23
12
|
require_relative 'gateway/BoletoTransaction/boleto_transaction_report_file'
|
24
13
|
|
25
14
|
require_relative 'gateway/CreditCardTransaction/credit_card'
|
26
15
|
require_relative 'gateway/CreditCardTransaction/credit_card_transaction'
|
27
|
-
require_relative 'gateway/CreditCardTransaction/credit_card_transaction_data'
|
28
16
|
require_relative 'gateway/CreditCardTransaction/credit_card_transaction_options'
|
29
17
|
require_relative 'gateway/CreditCardTransaction/manage_credit_card_transaction'
|
30
18
|
require_relative 'gateway/CreditCardTransaction/retry_sale_credit_card_transaction'
|
31
19
|
require_relative 'gateway/CreditCardTransaction/credit_card_transaction_report_file'
|
32
20
|
|
33
|
-
require_relative 'gateway/
|
34
|
-
require_relative 'gateway/
|
21
|
+
require_relative 'gateway/Address/billing_address'
|
22
|
+
require_relative 'gateway/Address/buyer_address'
|
23
|
+
require_relative 'gateway/Address/delivery_address'
|
35
24
|
|
36
25
|
require_relative 'gateway/Merchant/merchant'
|
37
26
|
|
@@ -68,3 +57,6 @@ require_relative 'gateway/Gateway'
|
|
68
57
|
require_relative 'gateway/header'
|
69
58
|
require_relative 'gateway/Trailer'
|
70
59
|
require_relative 'gateway/transaction_report_file'
|
60
|
+
require_relative 'gateway/InstantBuyData/create_instant_buy_data_request'
|
61
|
+
require_relative 'gateway/InstantBuyData/update_instant_buy_data_request'
|
62
|
+
require_relative 'gateway/Person/create_buyer_request'
|
@@ -2,13 +2,14 @@ require_relative '../../lib/stone_ecommerce'
|
|
2
2
|
require_relative 'test_helper'
|
3
3
|
|
4
4
|
merchant_key = '8A2DD57F-1ED9-4153-B4CE-69683EFADAD5'
|
5
|
-
|
5
|
+
|
6
|
+
gateway = Gateway::Gateway.new(:production, merchant_key)
|
6
7
|
|
7
8
|
RSpec.describe Gateway do
|
8
9
|
it 'should create a sale with boleto' do
|
9
|
-
createSaleRequest = CreateSaleRequest.new
|
10
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
10
11
|
|
11
|
-
boletoTransaction = BoletoTransaction.new
|
12
|
+
boletoTransaction = Gateway::BoletoTransaction.new
|
12
13
|
boletoTransaction.AmountInCents = 100
|
13
14
|
boletoTransaction.BankNumber = '237'
|
14
15
|
boletoTransaction.DocumentNumber = '12345678901'
|
@@ -25,9 +26,9 @@ RSpec.describe Gateway do
|
|
25
26
|
end
|
26
27
|
|
27
28
|
it 'should create a sale with credit card' do
|
28
|
-
createSaleRequest = CreateSaleRequest.new
|
29
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
29
30
|
|
30
|
-
buyerAddress = BuyerAddress.new
|
31
|
+
buyerAddress = Gateway::BuyerAddress.new
|
31
32
|
buyerAddress.AddressType = 'Residential'
|
32
33
|
buyerAddress.City = 'Rio de Janeiro'
|
33
34
|
buyerAddress.Complement = '10 Andar'
|
@@ -38,7 +39,7 @@ RSpec.describe Gateway do
|
|
38
39
|
buyerAddress.Street = 'Rua da Quitanda'
|
39
40
|
buyerAddress.ZipCode = '20091005'
|
40
41
|
|
41
|
-
creditCardTransaction = CreditCardTransaction.new
|
42
|
+
creditCardTransaction = Gateway::CreditCardTransaction.new
|
42
43
|
creditCardTransaction.AmountInCents = 100
|
43
44
|
creditCardTransaction.InstallmentCount = 1
|
44
45
|
creditCardTransaction.TransactionReference = 'CreditCard One RubySDK Test'
|
@@ -84,7 +85,7 @@ RSpec.describe Gateway do
|
|
84
85
|
|
85
86
|
it 'should create a sale with all types of transactions and all fields filled' do
|
86
87
|
# creates boleto transaction object
|
87
|
-
boletoTransaction = BoletoTransaction.new
|
88
|
+
boletoTransaction = Gateway::BoletoTransaction.new
|
88
89
|
|
89
90
|
# 100 reais in cents
|
90
91
|
boletoTransaction.AmountInCents = 10000
|
@@ -105,7 +106,7 @@ RSpec.describe Gateway do
|
|
105
106
|
|
106
107
|
|
107
108
|
# create credit card transaction object
|
108
|
-
creditCardTransaction = CreditCardTransaction.new
|
109
|
+
creditCardTransaction = Gateway::CreditCardTransaction.new
|
109
110
|
|
110
111
|
# 100 reais in cents
|
111
112
|
creditCardTransaction.AmountInCents = 10000
|
@@ -129,7 +130,7 @@ RSpec.describe Gateway do
|
|
129
130
|
creditCardTransaction.Options.PaymentMethodCode = 1
|
130
131
|
creditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'
|
131
132
|
|
132
|
-
shoppingCartItem = ShoppingCartItemCollection.new
|
133
|
+
shoppingCartItem = Gateway::ShoppingCartItemCollection.new
|
133
134
|
shoppingCartItem.Description = 'Red Lightsaber'
|
134
135
|
shoppingCartItem.DiscountAmountInCents = 0
|
135
136
|
shoppingCartItem.ItemReference = 'NumeroDoProduto'
|
@@ -138,7 +139,7 @@ RSpec.describe Gateway do
|
|
138
139
|
shoppingCartItem.TotalCostInCents = 18000
|
139
140
|
shoppingCartItem.UnitCostInCents = 18000
|
140
141
|
|
141
|
-
shoppingCartCollection = ShoppingCartCollection.new
|
142
|
+
shoppingCartCollection = Gateway::ShoppingCartCollection.new
|
142
143
|
shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
|
143
144
|
shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
|
144
145
|
shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
|
@@ -154,12 +155,12 @@ RSpec.describe Gateway do
|
|
154
155
|
shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
|
155
156
|
|
156
157
|
# creates request object for transaction creation
|
157
|
-
createSaleRequest = CreateSaleRequest.new
|
158
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
158
159
|
|
159
160
|
# adds to the boleto transaction collection
|
160
161
|
createSaleRequest.BoletoTransactionCollection << boletoTransaction
|
161
162
|
|
162
|
-
buyerAddress = BuyerAddress.new
|
163
|
+
buyerAddress = Gateway::BuyerAddress.new
|
163
164
|
buyerAddress.AddressType = 'Residential'
|
164
165
|
buyerAddress.City = 'Tatooine'
|
165
166
|
buyerAddress.Complement = ''
|
@@ -212,7 +213,7 @@ RSpec.describe Gateway do
|
|
212
213
|
|
213
214
|
it 'should create an anti fraud transaction' do
|
214
215
|
# create credit card transaction object
|
215
|
-
creditCardTransaction = CreditCardTransaction.new
|
216
|
+
creditCardTransaction = Gateway::CreditCardTransaction.new
|
216
217
|
|
217
218
|
# 100 reais in cents
|
218
219
|
creditCardTransaction.AmountInCents = 10000
|
@@ -232,7 +233,7 @@ RSpec.describe Gateway do
|
|
232
233
|
creditCardTransaction.CreditCard.SecurityCode = '123'
|
233
234
|
creditCardTransaction.InstallmentCount = 1
|
234
235
|
|
235
|
-
shoppingCartItem = ShoppingCartItemCollection.new
|
236
|
+
shoppingCartItem = Gateway::ShoppingCartItemCollection.new
|
236
237
|
shoppingCartItem.Description = 'Red Lightsaber'
|
237
238
|
shoppingCartItem.DiscountAmountInCents = 0
|
238
239
|
shoppingCartItem.ItemReference = 'NumeroDoProduto'
|
@@ -241,7 +242,7 @@ RSpec.describe Gateway do
|
|
241
242
|
shoppingCartItem.TotalCostInCents = 18000
|
242
243
|
shoppingCartItem.UnitCostInCents = 0
|
243
244
|
|
244
|
-
shoppingCartCollection = ShoppingCartCollection.new
|
245
|
+
shoppingCartCollection = Gateway::ShoppingCartCollection.new
|
245
246
|
shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
|
246
247
|
shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
|
247
248
|
shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
|
@@ -254,9 +255,9 @@ RSpec.describe Gateway do
|
|
254
255
|
shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
|
255
256
|
|
256
257
|
# creates request object for transaction creation
|
257
|
-
createSaleRequest = CreateSaleRequest.new
|
258
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
258
259
|
|
259
|
-
buyerAddress = BuyerAddress.new
|
260
|
+
buyerAddress = Gateway::BuyerAddress.new
|
260
261
|
buyerAddress.AddressType = 'Residential'
|
261
262
|
buyerAddress.City = 'Tatooine'
|
262
263
|
buyerAddress.Complement = ''
|
@@ -296,10 +297,10 @@ RSpec.describe Gateway do
|
|
296
297
|
end
|
297
298
|
|
298
299
|
it 'should consult the order with order key' do
|
299
|
-
querySaleRequest = QuerySaleRequest.new
|
300
|
-
createSaleRequest = CreateSaleRequest.new
|
300
|
+
querySaleRequest = Gateway::QuerySaleRequest.new
|
301
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
301
302
|
|
302
|
-
boletoTransaction = BoletoTransaction.new
|
303
|
+
boletoTransaction = Gateway::BoletoTransaction.new
|
303
304
|
boletoTransaction.AmountInCents = 100
|
304
305
|
boletoTransaction.BankNumber = '237'
|
305
306
|
boletoTransaction.DocumentNumber = '12345678901'
|
@@ -313,7 +314,7 @@ RSpec.describe Gateway do
|
|
313
314
|
boleto_response = gateway.CreateSale(createSaleRequest)
|
314
315
|
|
315
316
|
querySaleRequest.OrderKey = boleto_response['OrderResult']['OrderKey']
|
316
|
-
responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
|
317
|
+
responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
|
317
318
|
|
318
319
|
orderKey = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderKey"]
|
319
320
|
|
@@ -321,10 +322,10 @@ RSpec.describe Gateway do
|
|
321
322
|
end
|
322
323
|
|
323
324
|
it 'should consult the order with order reference' do
|
324
|
-
querySaleRequest = QuerySaleRequest.new
|
325
|
-
createSaleRequest = CreateSaleRequest.new
|
325
|
+
querySaleRequest = Gateway::QuerySaleRequest.new
|
326
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
326
327
|
|
327
|
-
boletoTransaction = BoletoTransaction.new
|
328
|
+
boletoTransaction = Gateway::BoletoTransaction.new
|
328
329
|
boletoTransaction.AmountInCents = 100
|
329
330
|
boletoTransaction.BankNumber = '237'
|
330
331
|
boletoTransaction.DocumentNumber = '12345678901'
|
@@ -339,7 +340,7 @@ RSpec.describe Gateway do
|
|
339
340
|
boleto_response = gateway.CreateSale(createSaleRequest)
|
340
341
|
|
341
342
|
querySaleRequest.OrderReference = boleto_response['OrderResult']['OrderReference']
|
342
|
-
responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
|
343
|
+
responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
|
343
344
|
|
344
345
|
orderReference = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderReference"]
|
345
346
|
|
@@ -347,11 +348,11 @@ RSpec.describe Gateway do
|
|
347
348
|
end
|
348
349
|
|
349
350
|
it 'should do a retry method' do
|
350
|
-
retrySaleRequest = RetrySaleRequest.new
|
351
|
-
retrySaleCreditCardTransactionItem = RetrySaleCreditCardTransaction.new
|
351
|
+
retrySaleRequest = Gateway::RetrySaleRequest.new
|
352
|
+
retrySaleCreditCardTransactionItem = Gateway::RetrySaleCreditCardTransaction.new
|
352
353
|
|
353
|
-
createSaleRequest = CreateSaleRequest.new
|
354
|
-
creditCardTransactionItem = CreditCardTransaction.new
|
354
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
355
|
+
creditCardTransactionItem = Gateway::CreditCardTransaction.new
|
355
356
|
creditCardTransactionItem.AmountInCents = 100
|
356
357
|
creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
|
357
358
|
creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
|
@@ -392,8 +393,8 @@ RSpec.describe Gateway do
|
|
392
393
|
end
|
393
394
|
|
394
395
|
it 'should do a retry method with only order key' do
|
395
|
-
createSaleRequest = CreateSaleRequest.new
|
396
|
-
creditCardTransactionItem = CreditCardTransaction.new
|
396
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
397
|
+
creditCardTransactionItem = Gateway::CreditCardTransaction.new
|
397
398
|
creditCardTransactionItem.AmountInCents = 100
|
398
399
|
creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
|
399
400
|
creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
|
@@ -414,7 +415,7 @@ RSpec.describe Gateway do
|
|
414
415
|
orderKey = responseCreate["OrderResult"]["OrderKey"]
|
415
416
|
transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
|
416
417
|
|
417
|
-
retrySaleRequest = RetrySaleRequest.new
|
418
|
+
retrySaleRequest = Gateway::RetrySaleRequest.new
|
418
419
|
|
419
420
|
# monta o objeto de retentativa
|
420
421
|
retrySaleRequest.OrderKey = orderKey
|
@@ -427,8 +428,8 @@ RSpec.describe Gateway do
|
|
427
428
|
end
|
428
429
|
|
429
430
|
it 'should cancel a transaction' do
|
430
|
-
createSaleRequest = CreateSaleRequest.new
|
431
|
-
creditCardTransactionItem = CreditCardTransaction.new
|
431
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
432
|
+
creditCardTransactionItem = Gateway::CreditCardTransaction.new
|
432
433
|
creditCardTransactionItem.AmountInCents = 100
|
433
434
|
creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
|
434
435
|
creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
|
@@ -453,13 +454,13 @@ RSpec.describe Gateway do
|
|
453
454
|
transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
|
454
455
|
|
455
456
|
# itens necessarios para cancelamento da transacao de cartao de credito
|
456
|
-
cancelCreditCardTransactionItem = ManageCreditCardTransaction.new
|
457
|
+
cancelCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
|
457
458
|
cancelCreditCardTransactionItem.AmountInCents = 100
|
458
459
|
cancelCreditCardTransactionItem.TransactionKey = transactionKey
|
459
460
|
cancelCreditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
|
460
461
|
|
461
462
|
# monta o objeto para cancelamento de transacao
|
462
|
-
cancelSaleRequest = ManageSaleRequest.new
|
463
|
+
cancelSaleRequest = Gateway::ManageSaleRequest.new
|
463
464
|
cancelSaleRequest.OrderKey = orderKey
|
464
465
|
cancelSaleRequest.CreditCardTransactionCollection << cancelCreditCardTransactionItem
|
465
466
|
|
@@ -469,8 +470,8 @@ RSpec.describe Gateway do
|
|
469
470
|
end
|
470
471
|
|
471
472
|
it 'should capture a transaction' do
|
472
|
-
createSaleRequest = CreateSaleRequest.new
|
473
|
-
creditCardTransactionItem = CreditCardTransaction.new
|
473
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
474
|
+
creditCardTransactionItem = Gateway::CreditCardTransaction.new
|
474
475
|
creditCardTransactionItem.AmountInCents = 100
|
475
476
|
creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
|
476
477
|
creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
|
@@ -495,13 +496,13 @@ RSpec.describe Gateway do
|
|
495
496
|
transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
|
496
497
|
|
497
498
|
# itens necessarios para captura da transacao de cartao de credito
|
498
|
-
captureCreditCardTransactionItem = ManageCreditCardTransaction.new
|
499
|
+
captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
|
499
500
|
captureCreditCardTransactionItem.AmountInCents = 100
|
500
501
|
captureCreditCardTransactionItem.TransactionKey = transactionKey
|
501
502
|
captureCreditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
|
502
503
|
|
503
504
|
# monta o objeto para cancelamento de transacao
|
504
|
-
captureSaleRequest = ManageSaleRequest.new
|
505
|
+
captureSaleRequest = Gateway::ManageSaleRequest.new
|
505
506
|
captureSaleRequest.OrderKey = orderKey
|
506
507
|
captureSaleRequest.CreditCardTransactionCollection << captureCreditCardTransactionItem
|
507
508
|
|
@@ -512,7 +513,7 @@ RSpec.describe Gateway do
|
|
512
513
|
end
|
513
514
|
|
514
515
|
it 'should do a parse xml to notification interpretation' do
|
515
|
-
creditCardTransactionItem = CreditCardTransaction.new
|
516
|
+
creditCardTransactionItem = Gateway::CreditCardTransaction.new
|
516
517
|
creditCardTransactionItem.AmountInCents = 100
|
517
518
|
creditCardTransactionItem.TransactionReference = 'Ruby PostNotification Test'
|
518
519
|
creditCardTransactionItem.InstallmentCount = 1
|
@@ -525,7 +526,7 @@ RSpec.describe Gateway do
|
|
525
526
|
creditCardTransactionItem.CreditCard.ExpYear = 20
|
526
527
|
creditCardTransactionItem.Options.PaymentMethodCode = 1
|
527
528
|
|
528
|
-
createSaleRequest = CreateSaleRequest.new
|
529
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
529
530
|
createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
|
530
531
|
|
531
532
|
response_hash = gateway.CreateSale(createSaleRequest)
|
@@ -536,12 +537,12 @@ RSpec.describe Gateway do
|
|
536
537
|
# expect(credit_card_result['CreditCardOperation']).to eq 'AuthOnly'
|
537
538
|
# expect(credit_card_result['CreditCardTransactionStatus']).to eq 'AuthorizedPendingCapture'
|
538
539
|
|
539
|
-
captureCreditCardTransactionItem = ManageCreditCardTransaction.new
|
540
|
+
captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
|
540
541
|
captureCreditCardTransactionItem.AmountInCents = creditCardTransactionItem.AmountInCents
|
541
542
|
captureCreditCardTransactionItem.TransactionKey = credit_card_result['TransactionKey']
|
542
543
|
captureCreditCardTransactionItem.TransactionReference = creditCardTransactionItem.TransactionReference
|
543
544
|
|
544
|
-
captureSale = ManageSaleRequest.new
|
545
|
+
captureSale = Gateway::ManageSaleRequest.new
|
545
546
|
captureSale.OrderKey = response_hash['OrderResult']['OrderKey']
|
546
547
|
captureSale.CreditCardTransactionCollection << captureCreditCardTransactionItem
|
547
548
|
|
@@ -612,39 +613,41 @@ RSpec.describe Gateway do
|
|
612
613
|
expect(response.nil?).to eq false
|
613
614
|
end
|
614
615
|
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
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
|
648
651
|
credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
|
649
652
|
credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
|
650
653
|
credit_card_transaction.CreditCard.ExpMonth = 10
|
@@ -653,7 +656,7 @@ RSpec.describe Gateway do
|
|
653
656
|
credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
|
654
657
|
credit_card_transaction.AmountInCents = 100
|
655
658
|
|
656
|
-
sale_request = CreateSaleRequest.new
|
659
|
+
sale_request = Gateway::CreateSaleRequest.new
|
657
660
|
sale_request.CreditCardTransactionCollection << credit_card_transaction
|
658
661
|
|
659
662
|
sale_response = gateway.CreateSale(sale_request)
|
@@ -667,9 +670,32 @@ RSpec.describe Gateway do
|
|
667
670
|
expect(response['ErrorReport']).to eq nil
|
668
671
|
end
|
669
672
|
|
670
|
-
it 'should
|
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
|
671
682
|
|
672
|
-
|
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
|
673
699
|
credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
|
674
700
|
credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
|
675
701
|
credit_card_transaction.CreditCard.ExpMonth = 10
|
@@ -678,7 +704,32 @@ RSpec.describe Gateway do
|
|
678
704
|
credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
|
679
705
|
credit_card_transaction.AmountInCents = 100
|
680
706
|
|
681
|
-
sale_request = CreateSaleRequest.new
|
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
|
682
733
|
sale_request.Buyer.Name = 'Anakin Skywalker'
|
683
734
|
sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
|
684
735
|
sale_request.Buyer.DocumentNumber = '12345678901'
|
@@ -696,8 +747,184 @@ RSpec.describe Gateway do
|
|
696
747
|
expect(response['ErrorReport']).to eq nil
|
697
748
|
end
|
698
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
|
+
|
699
926
|
it 'should do a credit card transaction with instant buy key' do
|
700
|
-
credit_card_transaction = CreditCardTransaction.new
|
927
|
+
credit_card_transaction = Gateway::CreditCardTransaction.new
|
701
928
|
credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
|
702
929
|
credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
|
703
930
|
credit_card_transaction.CreditCard.ExpMonth = 10
|
@@ -706,7 +933,7 @@ RSpec.describe Gateway do
|
|
706
933
|
credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
|
707
934
|
credit_card_transaction.AmountInCents = 100
|
708
935
|
|
709
|
-
sale_request = CreateSaleRequest.new
|
936
|
+
sale_request = Gateway::CreateSaleRequest.new
|
710
937
|
sale_request.CreditCardTransactionCollection << credit_card_transaction
|
711
938
|
|
712
939
|
sale_response = gateway.CreateSale(sale_request)
|
@@ -716,12 +943,12 @@ RSpec.describe Gateway do
|
|
716
943
|
instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
|
717
944
|
|
718
945
|
# coleta dados do cartao
|
719
|
-
creditCardTransaction = CreditCardTransaction.new
|
946
|
+
creditCardTransaction = Gateway::CreditCardTransaction.new
|
720
947
|
creditCardTransaction.AmountInCents = 100
|
721
948
|
creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
|
722
949
|
|
723
950
|
# cria a transacao
|
724
|
-
createSaleRequest = CreateSaleRequest.new
|
951
|
+
createSaleRequest = Gateway::CreateSaleRequest.new
|
725
952
|
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
|
726
953
|
|
727
954
|
# faz a requisicao de criação de transacao, retorna um hash com a resposta
|
@@ -730,4 +957,68 @@ RSpec.describe Gateway do
|
|
730
957
|
expect(response['ErrorReport']).to eq nil
|
731
958
|
end
|
732
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
|
733
1024
|
end
|