genesis_ruby 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +158 -0
- data/LICENSE +21 -0
- data/README.md +343 -0
- data/Rakefile +12 -0
- data/VERSION +1 -0
- data/genesis_ruby.gemspec +43 -0
- data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +1106 -0
- data/lib/genesis_ruby/api/constants/date_time_formats.rb +45 -0
- data/lib/genesis_ruby/api/constants/endpoints.rb +18 -0
- data/lib/genesis_ruby/api/constants/environments.rb +17 -0
- data/lib/genesis_ruby/api/constants/states/state.rb +43 -0
- data/lib/genesis_ruby/api/constants/states.rb +86 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/business/payment_types.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/sca_exemptions.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths.rb +46 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/password_change_indicators.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/registration_indicators.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/shipping_address_usage_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/suspicious_activity_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/update_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_indicators.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_window_sizes.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/device_types.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/delivery_timeframes.rb +34 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/pre_order_purchase_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/reorder_item_indicators.rb +28 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/shipping_indicators.rb +46 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/purchase/categories.rb +43 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/interfaces.rb +31 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/ui_types.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions.rb +371 -0
- data/lib/genesis_ruby/api/mixins/constants/common.rb +27 -0
- data/lib/genesis_ruby/api/mixins/requests/address_info_attributes.rb +20 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/billing_info_attributes.rb +33 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/customer_info_attributes.rb +26 -0
- data/lib/genesis_ruby/api/mixins/requests/customer_address/shipping_info_attributes.rb +33 -0
- data/lib/genesis_ruby/api/mixins/requests/document_attributes.rb +14 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/async_attributes.rb +34 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/base_attributes.rb +16 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes.rb +60 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/business_attributes.rb +56 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/car_plane_and_boat_rentals_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/cruise_lines_attributes.rb +50 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/event_management_attributes.rb +54 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/furniture_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/hotels_and_real_estate_rentals_attributes.rb +53 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/business/travel_agencies_attributes.rb +88 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/credit_card_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/fx_rate_attributes.rb +18 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_category_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_type_attributes.rb +31 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_attributes.rb +39 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/crypto_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/dynamic_descriptor_attributes.rb +114 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/gaming_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/moto_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/notification_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/payment_attributes.rb +32 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/pending_payment_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/reference_attributes.rb +16 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/risk_attributes.rb +47 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/sca_attributes.rb +37 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/browser.rb +92 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/card_holder_account.rb +183 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/common_attributes.rb +52 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/control.rb +61 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/merchant_risk.rb +114 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/method.rb +44 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/purchase.rb +42 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/recurring.rb +49 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/sdk.rb +107 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/wpf_attributes.rb +61 -0
- data/lib/genesis_ruby/api/mixins/requests/restricted_setter.rb +75 -0
- data/lib/genesis_ruby/api/request.rb +171 -0
- data/lib/genesis_ruby/api/requests/base/financial.rb +44 -0
- data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +27 -0
- data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +60 -0
- data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +76 -0
- data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +59 -0
- data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +75 -0
- data/lib/genesis_ruby/api/requests/wpf/create.rb +142 -0
- data/lib/genesis_ruby/api/response.rb +91 -0
- data/lib/genesis_ruby/builder.rb +42 -0
- data/lib/genesis_ruby/builders/base.rb +18 -0
- data/lib/genesis_ruby/builders/xml.rb +95 -0
- data/lib/genesis_ruby/configuration.rb +177 -0
- data/lib/genesis_ruby/connection.rb +20 -0
- data/lib/genesis_ruby/dependencies.rb +19 -0
- data/lib/genesis_ruby/errors/builder_error.rb +14 -0
- data/lib/genesis_ruby/errors/endpoint_not_set_error.rb +14 -0
- data/lib/genesis_ruby/errors/error.rb +18 -0
- data/lib/genesis_ruby/errors/invalid_argument_error.rb +14 -0
- data/lib/genesis_ruby/errors/network_error.rb +14 -0
- data/lib/genesis_ruby/errors/object_formatter_error.rb +14 -0
- data/lib/genesis_ruby/errors/parameter_error.rb +12 -0
- data/lib/genesis_ruby/errors/parser_error.rb +14 -0
- data/lib/genesis_ruby/errors/response_error.rb +14 -0
- data/lib/genesis_ruby/network/adapter/base_adapter.rb +31 -0
- data/lib/genesis_ruby/network/adapter/net_http_adapter.rb +92 -0
- data/lib/genesis_ruby/network/base_network.rb +83 -0
- data/lib/genesis_ruby/network/net_http.rb +28 -0
- data/lib/genesis_ruby/parser.rb +44 -0
- data/lib/genesis_ruby/parsers/base.rb +25 -0
- data/lib/genesis_ruby/parsers/xml.rb +120 -0
- data/lib/genesis_ruby/utils/common.rb +108 -0
- data/lib/genesis_ruby/utils/formatters/base.rb +40 -0
- data/lib/genesis_ruby/utils/formatters/response/definitions.rb +21 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/amount.rb +34 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +29 -0
- data/lib/genesis_ruby/utils/formatters/response/loader.rb +42 -0
- data/lib/genesis_ruby/utils/money/base/strategy.rb +38 -0
- data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +22 -0
- data/lib/genesis_ruby/utils/money/conversions/exponent_to_amount.rb +22 -0
- data/lib/genesis_ruby/utils/money/format.rb +34 -0
- data/lib/genesis_ruby/utils/money_format.rb +39 -0
- data/lib/genesis_ruby/utils/object_formatter.rb +67 -0
- data/lib/genesis_ruby/utils/options/api_config.rb +36 -0
- data/lib/genesis_ruby/utils/options/base.rb +35 -0
- data/lib/genesis_ruby/utils/options/network_adapter_config.rb +41 -0
- data/lib/genesis_ruby/utils/transactions/financial_types.rb +50 -0
- data/lib/genesis_ruby/utils/transactions/references/capturable_types.rb +52 -0
- data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +70 -0
- data/lib/genesis_ruby/utils/transactions/references/voidable_types.rb +49 -0
- data/lib/genesis_ruby/utils/transactions/wpf_types.rb +43 -0
- data/lib/genesis_ruby/version.rb +5 -0
- data/lib/genesis_ruby.rb +57 -0
- metadata +372 -0
data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_type_attributes.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'genesis_ruby/api/constants/transactions/parameters/recurring/types'
|
2
|
+
|
3
|
+
module GenesisRuby
|
4
|
+
module Api
|
5
|
+
module Mixins
|
6
|
+
module Requests
|
7
|
+
module Financial
|
8
|
+
module Cards
|
9
|
+
module Recurring
|
10
|
+
# Recurring Type Attributes
|
11
|
+
module RecurringTypeAttributes
|
12
|
+
|
13
|
+
attr_reader :recurring_type
|
14
|
+
|
15
|
+
# Specifies the recurring type of transaction
|
16
|
+
def recurring_type=(value)
|
17
|
+
allowed_options attribute: __method__,
|
18
|
+
allowed: GenesisRuby::Api::Constants::Transactions::Parameters::Recurring::
|
19
|
+
Types.all,
|
20
|
+
value: value,
|
21
|
+
allow_empty: true
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
module Cards
|
7
|
+
# Tokenization Attributes mixin
|
8
|
+
module TokenizationAttributes
|
9
|
+
|
10
|
+
attr_reader :remember_card
|
11
|
+
attr_accessor :consumer_id, :token
|
12
|
+
|
13
|
+
# Tokenizes cardholder parameters. Cannot be set together with token
|
14
|
+
def remember_card=(value)
|
15
|
+
allowed_options attribute: __method__,
|
16
|
+
allowed: [true, false],
|
17
|
+
value: value,
|
18
|
+
allow_empty: true,
|
19
|
+
error_message: 'Accepts only boolean values'
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
# Tokenization Attributes Structure
|
25
|
+
def tokenization_attributes_structure
|
26
|
+
{
|
27
|
+
token: token,
|
28
|
+
consumer_id: consumer_id,
|
29
|
+
remember_card: remember_card
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Crypto Attributes mixin
|
7
|
+
module CryptoAttributes
|
8
|
+
|
9
|
+
attr_reader :crypto
|
10
|
+
|
11
|
+
# Signifies whether a crypto transaction is performed
|
12
|
+
def crypto=(value)
|
13
|
+
allowed_options attribute: __method__,
|
14
|
+
allowed: [true, false],
|
15
|
+
value: value,
|
16
|
+
allow_empty: true,
|
17
|
+
error_message: 'Accepts only boolean values'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Dynamic Descriptor Attributes
|
7
|
+
module DynamicDescriptorAttributes
|
8
|
+
|
9
|
+
attr_reader :dynamic_descriptor_merchant_name, :dynamic_descriptor_merchant_city,
|
10
|
+
:dynamic_descriptor_sub_merchant_id, :dynamic_descriptor_merchant_country,
|
11
|
+
:dynamic_descriptor_merchant_state, :dynamic_descriptor_merchant_zip_code,
|
12
|
+
:dynamic_descriptor_merchant_address, :dynamic_descriptor_merchant_url,
|
13
|
+
:dynamic_descriptor_merchant_phone, :dynamic_descriptor_merchant_service_city,
|
14
|
+
:dynamic_descriptor_merchant_service_country, :dynamic_descriptor_merchant_service_state,
|
15
|
+
:dynamic_descriptor_merchant_service_zip_code, :dynamic_descriptor_merchant_service_phone
|
16
|
+
|
17
|
+
# Allows to dynamically override the charge descriptor
|
18
|
+
def dynamic_descriptor_merchant_name=(value)
|
19
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 25
|
20
|
+
end
|
21
|
+
|
22
|
+
# Allows to dynamically override the merchant city
|
23
|
+
def dynamic_descriptor_merchant_city=(value)
|
24
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 13
|
25
|
+
end
|
26
|
+
|
27
|
+
# Allows to dynamically override the sub-merchant ID
|
28
|
+
def dynamic_descriptor_sub_merchant_id=(value)
|
29
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 15
|
30
|
+
end
|
31
|
+
|
32
|
+
# Allows to dynamically override the merchant country
|
33
|
+
def dynamic_descriptor_merchant_country=(value)
|
34
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 3
|
35
|
+
end
|
36
|
+
|
37
|
+
# Allows to dynamically override the merchant subdivision code
|
38
|
+
def dynamic_descriptor_merchant_state=(value)
|
39
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 3
|
40
|
+
end
|
41
|
+
|
42
|
+
# Allows to dynamically override the merchant zip/postal code
|
43
|
+
def dynamic_descriptor_merchant_zip_code=(value)
|
44
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 10
|
45
|
+
end
|
46
|
+
|
47
|
+
# Allows to dynamically override the merchant address
|
48
|
+
def dynamic_descriptor_merchant_address=(value)
|
49
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 48
|
50
|
+
end
|
51
|
+
|
52
|
+
# Allows to dynamically override the merchant URL
|
53
|
+
def dynamic_descriptor_merchant_url=(value)
|
54
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 60
|
55
|
+
end
|
56
|
+
|
57
|
+
# Allows to dynamically override the merchant phone number
|
58
|
+
def dynamic_descriptor_merchant_phone=(value)
|
59
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 16
|
60
|
+
end
|
61
|
+
|
62
|
+
# Allows to dynamically override the merchant service city
|
63
|
+
def dynamic_descriptor_merchant_service_city=(value)
|
64
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 13
|
65
|
+
end
|
66
|
+
|
67
|
+
# Allows to dynamically override the merchant service country
|
68
|
+
def dynamic_descriptor_merchant_service_country=(value)
|
69
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 3
|
70
|
+
end
|
71
|
+
|
72
|
+
# Allows to dynamically override the merchant service subdivision code
|
73
|
+
def dynamic_descriptor_merchant_service_state=(value)
|
74
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 3
|
75
|
+
end
|
76
|
+
|
77
|
+
# Allows to dynamically override the merchant service zip/postal
|
78
|
+
def dynamic_descriptor_merchant_service_zip_code=(value)
|
79
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 10
|
80
|
+
end
|
81
|
+
|
82
|
+
# Allows to dynamically override the merchant service phone number
|
83
|
+
def dynamic_descriptor_merchant_service_phone=(value)
|
84
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 16
|
85
|
+
end
|
86
|
+
|
87
|
+
protected
|
88
|
+
|
89
|
+
# Dynamic Descriptor Params structure
|
90
|
+
def dynamic_descriptor_structure # rubocop:disable Metrics/MethodLength
|
91
|
+
{
|
92
|
+
merchant_name: dynamic_descriptor_merchant_name,
|
93
|
+
merchant_city: dynamic_descriptor_merchant_city,
|
94
|
+
sub_merchant_id: dynamic_descriptor_sub_merchant_id,
|
95
|
+
merchant_country: dynamic_descriptor_merchant_country,
|
96
|
+
merchant_state: dynamic_descriptor_merchant_state,
|
97
|
+
merchant_zip_code: dynamic_descriptor_merchant_zip_code,
|
98
|
+
merchant_address: dynamic_descriptor_merchant_address,
|
99
|
+
merchant_url: dynamic_descriptor_merchant_url,
|
100
|
+
merchant_phone: dynamic_descriptor_merchant_phone,
|
101
|
+
merchant_service_city: dynamic_descriptor_merchant_service_city,
|
102
|
+
merchant_service_country: dynamic_descriptor_merchant_service_country,
|
103
|
+
merchant_service_state: dynamic_descriptor_merchant_service_state,
|
104
|
+
merchant_service_zip_code: dynamic_descriptor_merchant_service_zip_code,
|
105
|
+
merchant_service_phone: dynamic_descriptor_merchant_service_phone
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Gaming Attributes mixin
|
7
|
+
module GamingAttributes
|
8
|
+
|
9
|
+
attr_reader :gaming
|
10
|
+
|
11
|
+
# Signifies whether a gaming transaction is performed
|
12
|
+
def gaming=(value)
|
13
|
+
allowed_options attribute: __method__,
|
14
|
+
allowed: [true, false],
|
15
|
+
value: value,
|
16
|
+
allow_empty: true,
|
17
|
+
error_message: 'Accepts only boolean values'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Moto Attributes mixin
|
7
|
+
module MotoAttributes
|
8
|
+
|
9
|
+
attr_reader :moto
|
10
|
+
|
11
|
+
# Signifies whether a moto transaction is performed
|
12
|
+
def moto=(value)
|
13
|
+
allowed_options attribute: __method__,
|
14
|
+
allowed: [true, false],
|
15
|
+
value: value,
|
16
|
+
allow_empty: true,
|
17
|
+
error_message: 'Accepts only boolean values'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Mixin Notification Attributes
|
7
|
+
module NotificationAttributes
|
8
|
+
|
9
|
+
attr_reader :notification_url
|
10
|
+
|
11
|
+
# Return Success URL setter
|
12
|
+
def notification_url=(value)
|
13
|
+
unless GenesisRuby::Utils::Common.valid_url?(value)
|
14
|
+
raise ParameterError, "Invalid URL given for #{__method__}"
|
15
|
+
end
|
16
|
+
|
17
|
+
@notification_url = value
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Mixin Payment Attributes, brings Payment Attributes partial
|
7
|
+
module PaymentAttributes
|
8
|
+
|
9
|
+
attr_accessor :amount
|
10
|
+
attr_writer :currency
|
11
|
+
|
12
|
+
# Currency Attribute getter
|
13
|
+
def currency
|
14
|
+
@currency.to_s.upcase
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
|
19
|
+
# Returns the Payment Attributes structure with the Genesis Request keys
|
20
|
+
def payment_attributes_structure
|
21
|
+
{
|
22
|
+
amount: transform_amount(amount, currency),
|
23
|
+
currency: currency
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Mixin Pending Payment Attributes
|
7
|
+
module PendingPaymentAttributes
|
8
|
+
|
9
|
+
attr_reader :return_pending_url
|
10
|
+
|
11
|
+
# Return Success URL setter
|
12
|
+
def return_pending_url=(value)
|
13
|
+
unless GenesisRuby::Utils::Common.valid_url?(value)
|
14
|
+
raise ParameterError, "Invalid URL given for #{__method__}"
|
15
|
+
end
|
16
|
+
|
17
|
+
@return_pending_url = value
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Mixins
|
4
|
+
module Requests
|
5
|
+
module Financial
|
6
|
+
# Risk Params Attributes
|
7
|
+
module RiskAttributes
|
8
|
+
|
9
|
+
attr_accessor :risk_ssn, :risk_mac_address, :risk_session_id, :risk_user_id, :risk_user_level, :risk_email,
|
10
|
+
:risk_phone, :risk_remote_ip, :risk_serial_number, :risk_pan_tail, :risk_bin,
|
11
|
+
:risk_first_name, :risk_last_name, :risk_country, :risk_pan, :risk_forwarded_ip,
|
12
|
+
:risk_username, :risk_password, :risk_bin_name, :risk_bin_phone
|
13
|
+
|
14
|
+
protected
|
15
|
+
|
16
|
+
# Risk Params Structure
|
17
|
+
def risk_parameters_structure # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
18
|
+
{
|
19
|
+
ssn: risk_ssn,
|
20
|
+
mac_address: risk_mac_address,
|
21
|
+
session_id: risk_session_id,
|
22
|
+
user_id: risk_user_id,
|
23
|
+
user_level: risk_user_level,
|
24
|
+
email: risk_email,
|
25
|
+
phone: risk_phone,
|
26
|
+
remote_ip: risk_remote_ip,
|
27
|
+
serial_number: risk_serial_number,
|
28
|
+
pan_tail: risk_pan_tail,
|
29
|
+
bin: risk_bin,
|
30
|
+
first_name: risk_first_name,
|
31
|
+
last_name: risk_last_name,
|
32
|
+
country: risk_country,
|
33
|
+
pan: risk_pan,
|
34
|
+
forwarded_ip: risk_forwarded_ip,
|
35
|
+
username: risk_username,
|
36
|
+
password: risk_password,
|
37
|
+
bin_name: risk_bin_name,
|
38
|
+
bin_phone: risk_bin_phone
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'genesis_ruby/api/constants/transactions/parameters/sca_exemptions'
|
2
|
+
|
3
|
+
module GenesisRuby
|
4
|
+
module Api
|
5
|
+
module Mixins
|
6
|
+
module Requests
|
7
|
+
module Financial
|
8
|
+
# SCA Attributes mixin
|
9
|
+
module ScaAttributes
|
10
|
+
|
11
|
+
attr_reader :sca_exemption
|
12
|
+
attr_accessor :sca_visa_merchant_id
|
13
|
+
|
14
|
+
# The exemption that the transaction should take advantage of
|
15
|
+
def sca_exemption=(value)
|
16
|
+
allowed_options attribute: __method__,
|
17
|
+
allowed: GenesisRuby::Api::Constants::Transactions::Parameters::ScaExemptions.all,
|
18
|
+
value: value.to_s.empty? ? nil : value.to_s.downcase,
|
19
|
+
allow_empty: true
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
# SCA Params Attributes Structure
|
25
|
+
def sca_attributes_structure
|
26
|
+
{
|
27
|
+
exemption: sca_exemption,
|
28
|
+
visa_merchant_id: sca_visa_merchant_id
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths'
|
2
|
+
require 'genesis_ruby/errors/invalid_argument_error'
|
3
|
+
|
4
|
+
module GenesisRuby
|
5
|
+
module Api
|
6
|
+
module Mixins
|
7
|
+
module Requests
|
8
|
+
module Financial
|
9
|
+
module Threeds
|
10
|
+
module Version2
|
11
|
+
# Mixin ThreedsV2 Browser Attributes
|
12
|
+
module Browser
|
13
|
+
|
14
|
+
attr_reader :threeds_v2_browser_accept_header, :threeds_v2_browser_java_enabled,
|
15
|
+
:threeds_v2_browser_language, :threeds_v2_browser_color_depth,
|
16
|
+
:threeds_v2_browser_screen_height, :threeds_v2_browser_screen_width,
|
17
|
+
:threeds_v2_browser_time_zone_offset, :threeds_v2_browser_user_agent
|
18
|
+
|
19
|
+
# Exact content of the HTTP accept headers as sent to the 3DS Requester from the Cardholder browser
|
20
|
+
def threeds_v2_browser_accept_header=(value)
|
21
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 2048
|
22
|
+
end
|
23
|
+
|
24
|
+
# Value representing the browser language as defined in IETF BCP47
|
25
|
+
def threeds_v2_browser_language=(value)
|
26
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 8
|
27
|
+
end
|
28
|
+
|
29
|
+
# Value representing the bit depth of the colour palette for displaying images, in bits per pixel
|
30
|
+
def threeds_v2_browser_color_depth=(value)
|
31
|
+
allowed_depths = GenesisRuby::Api::Constants::Transactions::Parameters::Threeds::Version2::
|
32
|
+
Browser::ColorDepths.all
|
33
|
+
|
34
|
+
allowed_options attribute: __method__,
|
35
|
+
allowed: allowed_depths,
|
36
|
+
value: value.to_s.empty? ? nil : value.to_i,
|
37
|
+
allow_empty: true
|
38
|
+
end
|
39
|
+
|
40
|
+
# Total height of the Cardholder's screen in pixels
|
41
|
+
def threeds_v2_browser_screen_height=(value)
|
42
|
+
parse_int attribute: __method__, value: value, allow_empty: true
|
43
|
+
end
|
44
|
+
|
45
|
+
# Total width of the Cardholder's screen in pixels
|
46
|
+
def threeds_v2_browser_screen_width=(value)
|
47
|
+
parse_int attribute: __method__, value: value, allow_empty: true
|
48
|
+
end
|
49
|
+
|
50
|
+
# Boolean that represents the ability of the cardholder browser to execute Java
|
51
|
+
def threeds_v2_browser_java_enabled=(value)
|
52
|
+
allowed_options attribute: __method__,
|
53
|
+
allowed: [true, false],
|
54
|
+
value: value,
|
55
|
+
allow_empty: true,
|
56
|
+
error_message: 'Accepts only boolean values'
|
57
|
+
end
|
58
|
+
|
59
|
+
# Time difference between UTC time and the Cardholder browser local time, in minutes
|
60
|
+
def threeds_v2_browser_time_zone_offset=(value)
|
61
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 5
|
62
|
+
end
|
63
|
+
|
64
|
+
# Exact content of the HTTP user-agent header
|
65
|
+
def threeds_v2_browser_user_agent=(value)
|
66
|
+
limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 2048
|
67
|
+
end
|
68
|
+
|
69
|
+
protected
|
70
|
+
|
71
|
+
# Request Browser Attributes structure
|
72
|
+
def browser_attributes
|
73
|
+
{
|
74
|
+
accept_header: threeds_v2_browser_accept_header,
|
75
|
+
java_enabled: threeds_v2_browser_java_enabled,
|
76
|
+
language: threeds_v2_browser_language,
|
77
|
+
color_depth: threeds_v2_browser_color_depth,
|
78
|
+
screen_height: threeds_v2_browser_screen_height,
|
79
|
+
screen_width: threeds_v2_browser_screen_width,
|
80
|
+
time_zone_offset: threeds_v2_browser_time_zone_offset,
|
81
|
+
user_agent: threeds_v2_browser_user_agent
|
82
|
+
}
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|