genesis_ruby 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +40 -0
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/externally_processed.rb +22 -0
  7. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/processing_type.rb +22 -0
  8. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sca_exemptions.rb +25 -0
  9. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets.rb +26 -0
  10. data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +38 -0
  11. data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +21 -0
  12. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +65 -0
  13. data/lib/genesis_ruby/api/mixins/requests/non_financial/mode_attributes.rb +24 -0
  14. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/card_data_attributes.rb +62 -0
  15. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/token_attributes.rb +23 -0
  16. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/tokenization_attributes.rb +51 -0
  17. data/lib/genesis_ruby/api/requests/base/consumer.rb +24 -0
  18. data/lib/genesis_ruby/api/requests/base/financial.rb +10 -1
  19. data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +5 -7
  20. data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +11 -14
  21. data/lib/genesis_ruby/api/requests/base/reference.rb +2 -1
  22. data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +8 -9
  23. data/lib/genesis_ruby/api/requests/financial/cash_payments/cash.rb +13 -14
  24. data/lib/genesis_ruby/api/requests/financial/cash_payments/pix.rb +23 -25
  25. data/lib/genesis_ruby/api/requests/financial/mobile/apple_pay.rb +18 -20
  26. data/lib/genesis_ruby/api/requests/financial/mobile/google_pay.rb +20 -24
  27. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/banco_do_brasil.rb +11 -14
  28. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/eps.rb +9 -10
  29. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_in.rb +11 -18
  30. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_in.rb +61 -0
  31. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_out.rb +24 -0
  32. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/multibanco.rb +48 -0
  33. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/my_bank.rb +47 -0
  34. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_in.rb +17 -18
  35. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb +33 -38
  36. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pay_u.rb +61 -0
  37. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/post_finance.rb +53 -0
  38. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/safety_pay.rb +57 -0
  39. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/sofort.rb +63 -0
  40. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/trustly_sale.rb +75 -0
  41. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/upi.rb +54 -0
  42. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/wechat.rb +11 -14
  43. data/lib/genesis_ruby/api/requests/financial/sdd/sale.rb +13 -17
  44. data/lib/genesis_ruby/api/requests/financial/void.rb +12 -5
  45. data/lib/genesis_ruby/api/requests/financial/wallets/alipay.rb +10 -13
  46. data/lib/genesis_ruby/api/requests/financial/wallets/pay_pal.rb +18 -20
  47. data/lib/genesis_ruby/api/requests/non_financial/consumers/create.rb +44 -0
  48. data/lib/genesis_ruby/api/requests/non_financial/consumers/disable.rb +40 -0
  49. data/lib/genesis_ruby/api/requests/non_financial/consumers/enable.rb +40 -0
  50. data/lib/genesis_ruby/api/requests/non_financial/consumers/get_cards.rb +40 -0
  51. data/lib/genesis_ruby/api/requests/non_financial/consumers/retrieve.rb +40 -0
  52. data/lib/genesis_ruby/api/requests/non_financial/consumers/update.rb +45 -0
  53. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/date_range.rb +81 -0
  54. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/transaction.rb +52 -0
  55. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/date_range.rb +68 -0
  56. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/post_date_range.rb +72 -0
  57. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/transaction.rb +48 -0
  58. data/lib/genesis_ruby/api/requests/non_financial/sca/checker.rb +77 -0
  59. data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +43 -0
  60. data/lib/genesis_ruby/api/requests/non_financial/tokenization/delete_token.rb +43 -0
  61. data/lib/genesis_ruby/api/requests/non_financial/tokenization/detokenize.rb +43 -0
  62. data/lib/genesis_ruby/api/requests/non_financial/tokenization/get_card.rb +43 -0
  63. data/lib/genesis_ruby/api/requests/non_financial/tokenization/tokenize.rb +45 -0
  64. data/lib/genesis_ruby/api/requests/non_financial/tokenization/update_token.rb +45 -0
  65. data/lib/genesis_ruby/api/requests/non_financial/tokenization/validate_token.rb +43 -0
  66. data/lib/genesis_ruby/dependencies.rb +1 -0
  67. data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +1 -1
  68. data/lib/genesis_ruby/version.rb +1 -1
  69. metadata +43 -2
@@ -15,8 +15,8 @@ module GenesisRuby
15
15
  include Api::Mixins::Requests::DocumentAttributes
16
16
  include Api::Mixins::Requests::Financial::AsyncAttributes
17
17
  include Api::Mixins::Requests::Financial::NotificationAttributes
18
+ include Api::Mixins::Requests::Financial::OnlineBankingPayments::PayerAttributes
18
19
  include Api::Mixins::Requests::Financial::OnlineBankingPayments::PixAttributes
19
- include Api::Mixins::Requests::Financial::PaymentAttributes
20
20
 
21
21
  attr_reader :id_card_number, :payer_bank_phone_number, :document_type, :account_id, :user_id
22
22
  attr_accessor :bank_name, :bank_code, :bank_branch, :bank_account_name, :bank_account_number, :pix_key,
@@ -27,11 +27,6 @@ module GenesisRuby
27
27
  limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 30
28
28
  end
29
29
 
30
- # Payer bank phone Number
31
- def payer_bank_phone_number=(value)
32
- limited_string attribute: __method__, value: value.to_s, min: 11, max: 14
33
- end
34
-
35
30
  # ID card/document type
36
31
  def document_type=(value)
37
32
  limited_string attribute: __method__, value: value.to_s.empty? ? nil : value.to_s, max: 10
@@ -56,6 +51,8 @@ module GenesisRuby
56
51
 
57
52
  # Set field validations
58
53
  def init_field_validations
54
+ super
55
+
59
56
  required_fields.push *%i[transaction_id amount currency notification_url return_success_url
60
57
  return_failure_url billing_first_name billing_last_name billing_state billing_country]
61
58
 
@@ -75,38 +72,36 @@ module GenesisRuby
75
72
 
76
73
  # Bank Payout payment transaction structure
77
74
  def payment_transaction_structure # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
78
- payment_attributes_structure.merge(
79
- {
80
- return_success_url: return_success_url,
81
- return_failure_url: return_failure_url,
82
- notification_url: notification_url,
83
- customer_email: customer_email,
84
- customer_phone: customer_phone,
85
- bank_name: bank_name,
86
- bank_code: bank_code,
87
- bank_account_name: bank_account_name,
88
- bank_account_number: bank_account_number,
89
- bank_account_type: bank_account_type,
90
- bank_account_verification_digit: bank_account_verification_digit,
91
- bank_province: bank_province,
92
- bank_branch: bank_branch,
93
- id_card_number: id_card_number,
94
- payer_bank_phone_number: payer_bank_phone_number,
95
- document_type: document_type,
96
- document_id: document_id,
97
- account_id: account_id,
98
- user_id: user_id,
99
- birth_date: birth_date,
100
- payment_type: payment_type,
101
- company_type: company_type,
102
- company_activity: company_activity,
103
- incorporation_date: incorporation_date,
104
- mothers_name: mothers_name,
105
- pix_key: pix_key,
106
- billing_address: billing_address_parameters_structure,
107
- shipping_address: shipping_address_parameters_structure
108
- }
109
- )
75
+ {
76
+ return_success_url: return_success_url,
77
+ return_failure_url: return_failure_url,
78
+ notification_url: notification_url,
79
+ customer_email: customer_email,
80
+ customer_phone: customer_phone,
81
+ bank_name: bank_name,
82
+ bank_code: bank_code,
83
+ bank_account_name: bank_account_name,
84
+ bank_account_number: bank_account_number,
85
+ bank_account_type: bank_account_type,
86
+ bank_account_verification_digit: bank_account_verification_digit,
87
+ bank_province: bank_province,
88
+ bank_branch: bank_branch,
89
+ id_card_number: id_card_number,
90
+ payer: payer_parameters_structure,
91
+ document_type: document_type,
92
+ document_id: document_id,
93
+ account_id: account_id,
94
+ user_id: user_id,
95
+ birth_date: birth_date,
96
+ payment_type: payment_type,
97
+ company_type: company_type,
98
+ company_activity: company_activity,
99
+ incorporation_date: incorporation_date,
100
+ mothers_name: mothers_name,
101
+ pix_key: pix_key,
102
+ billing_address: billing_address_parameters_structure,
103
+ shipping_address: shipping_address_parameters_structure
104
+ }
110
105
  end
111
106
 
112
107
  private
@@ -0,0 +1,61 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ module OnlineBankingPayments
6
+ # PayU is a payment method for Czech Republic and Poland
7
+ class PayU < Base::Financial
8
+
9
+ include Api::Mixins::Requests::AddressInfoAttributes
10
+ include Api::Mixins::Requests::Financial::AsyncAttributes
11
+ include Api::Mixins::Requests::Financial::PendingPaymentAttributes
12
+
13
+ protected
14
+
15
+ # PayU transaction type
16
+ def transaction_type
17
+ Api::Constants::Transactions::PAYU
18
+ end
19
+
20
+ # PayU field validations
21
+ def init_field_validations # rubocop:disable Metrics/MethodLength
22
+ super
23
+
24
+ required_fields.push *%i[transaction_id return_success_url return_failure_url
25
+ amount currency billing_first_name billing_last_name billing_country]
26
+
27
+ field_values.merge! billing_country: %w(CZ PL),
28
+ currency: %w(CZK PLN)
29
+
30
+ field_value_dependencies.merge!(
31
+ {
32
+ currency: {
33
+ CZK: {
34
+ billing_country: %w(CZ)
35
+ },
36
+ PLN: {
37
+ billing_country: %w(PL)
38
+ }
39
+ }
40
+ }
41
+ )
42
+ end
43
+
44
+ # PayU request structure
45
+ def payment_transaction_structure
46
+ {
47
+ return_success_url: return_success_url,
48
+ return_failure_url: return_failure_url,
49
+ return_pending_url: return_pending_url,
50
+ customer_email: customer_email,
51
+ billing_address: billing_address_parameters_structure,
52
+ shipping_address: shipping_address_parameters_structure
53
+ }
54
+ end
55
+
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,53 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ module OnlineBankingPayments
6
+ # PostFinance is an online banking provider in Switzerland
7
+ class PostFinance < Base::Financial
8
+
9
+ include Api::Mixins::Requests::AddressInfoAttributes
10
+ include Api::Mixins::Requests::Financial::AsyncAttributes
11
+ include Api::Mixins::Requests::Financial::PendingPaymentAttributes
12
+
13
+ protected
14
+
15
+ # PostFinance transaction type
16
+ def transaction_type
17
+ Api::Constants::Transactions::POST_FINANCE
18
+ end
19
+
20
+ # PostFinance field validations
21
+ def init_field_validations # rubocop:disable Metrics/MethodLength
22
+ super
23
+
24
+ required_fields.push *%i[
25
+ transaction_id
26
+ return_success_url
27
+ return_failure_url
28
+ amount
29
+ currency
30
+ billing_country
31
+ ]
32
+
33
+ field_values.merge! currency: %w(EUR CHF),
34
+ billing_country: 'CH'
35
+ end
36
+
37
+ # PostFinance request structure
38
+ def payment_transaction_structure
39
+ {
40
+ return_success_url: return_success_url,
41
+ return_failure_url: return_failure_url,
42
+ return_pending_url: return_pending_url,
43
+ billing_address: billing_address_parameters_structure,
44
+ shipping_address: shipping_address_parameters_structure
45
+ }
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,57 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ module OnlineBankingPayments
6
+ # SafetyPay, bank transfer payment method, popular in Germany
7
+ class SafetyPay < Requests::Base::Financial
8
+
9
+ include Api::Mixins::Requests::CustomerAddress::BillingInfoAttributes
10
+ include Api::Mixins::Requests::CustomerAddress::ShippingInfoAttributes
11
+ include Api::Mixins::Requests::CustomerAddress::CustomerInfoAttributes
12
+ include Api::Mixins::Requests::Financial::AsyncAttributes
13
+ include Api::Mixins::Requests::Financial::PendingPaymentAttributes
14
+
15
+ protected
16
+
17
+ # SafetyPay transaction type
18
+ def transaction_type
19
+ Api::Constants::Transactions::SAFETYPAY
20
+ end
21
+
22
+ # SafetyPay field validation
23
+ def init_field_validations # rubocop:disable Metrics/MethodLength
24
+ super
25
+
26
+ required_fields.push *%i[
27
+ transaction_id
28
+ return_success_url
29
+ return_failure_url
30
+ amount
31
+ currency
32
+ customer_email
33
+ billing_country
34
+ ]
35
+
36
+ field_values.merge! currency: %w(EUR USD),
37
+ billing_country: %w(AT BE BR CL CO DE EC ES MX NL PE PR)
38
+ end
39
+
40
+ # SafetyPay request structure
41
+ def payment_transaction_structure
42
+ {
43
+ return_success_url: return_success_url,
44
+ return_failure_url: return_failure_url,
45
+ return_pending_url: return_pending_url,
46
+ customer_email: customer_email,
47
+ billing_address: billing_address_parameters_structure,
48
+ shipping_address: shipping_address_parameters_structure
49
+ }
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,63 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ module OnlineBankingPayments
6
+ # Sofort, bank transfer payment method, popular in Germany
7
+ class Sofort < Requests::Base::Financial
8
+
9
+ include Api::Mixins::Requests::CustomerAddress::BillingInfoAttributes
10
+ include Api::Mixins::Requests::CustomerAddress::ShippingInfoAttributes
11
+ include Api::Mixins::Requests::CustomerAddress::CustomerInfoAttributes
12
+ include Api::Mixins::Requests::Financial::AsyncAttributes
13
+ include Api::Mixins::Requests::Financial::BankAttributes
14
+ include Api::Mixins::Requests::Financial::PendingPaymentAttributes
15
+ include Api::Mixins::Requests::Financial::NotificationAttributes
16
+
17
+ protected
18
+
19
+ # Sofort transaction type
20
+ def transaction_type
21
+ Api::Constants::Transactions::SOFORT
22
+ end
23
+
24
+ # Sofort field validation
25
+ def init_field_validations # rubocop:disable Metrics/MethodLength
26
+ super
27
+
28
+ required_fields.push *%i[
29
+ transaction_id
30
+ remote_ip
31
+ return_success_url
32
+ return_failure_url
33
+ amount
34
+ currency
35
+ customer_email
36
+ billing_country
37
+ ]
38
+
39
+ field_values.merge! billing_country: %w(AT BE DE IT NL PL ES CH)
40
+ end
41
+
42
+ # Sofort request structure
43
+ def payment_transaction_structure # rubocop:disable Metrics/MethodLength
44
+ {
45
+ notification_url: notification_url,
46
+ return_success_url: return_success_url,
47
+ return_failure_url: return_failure_url,
48
+ return_pending_url: return_pending_url,
49
+ customer_email: customer_email,
50
+ customer_phone: customer_phone,
51
+ iban: iban,
52
+ bic: bic,
53
+ billing_address: billing_address_parameters_structure,
54
+ shipping_address: shipping_address_parameters_structure
55
+ }
56
+ end
57
+
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,75 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets'
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module Financial
7
+ module OnlineBankingPayments
8
+ # Online Banking TrustlySale transaction class
9
+ class TrustlySale < Base::Financial
10
+
11
+ include Api::Mixins::Requests::AddressInfoAttributes
12
+ include Api::Mixins::Requests::BirthDateAttributes
13
+ include Api::Mixins::Requests::Financial::AsyncAttributes
14
+ include Api::Mixins::Requests::Financial::Business::BusinessAttributes
15
+
16
+ attr_accessor :account_id, :user_id
17
+ attr_reader :return_success_url_target
18
+
19
+ # Allowed values for return_success_url_target
20
+ def return_success_url_target=(value)
21
+ allowed_options attribute: __method__,
22
+ allowed: Constants::Transactions::Parameters::OnlineBanking::IframeTargets.all,
23
+ value: value,
24
+ allow_empty: true
25
+ end
26
+
27
+ protected
28
+
29
+ # TrustlySale transaction type
30
+ def transaction_type
31
+ Api::Constants::Transactions::TRUSTLY_SALE
32
+ end
33
+
34
+ # TrustlySale field validations
35
+ def init_field_validations # rubocop:disable Metrics/MethodLength
36
+ super
37
+
38
+ required_fields.push *%i[
39
+ transaction_id
40
+ remote_ip
41
+ return_success_url
42
+ return_failure_url
43
+ amount
44
+ currency
45
+ customer_email
46
+ billing_country
47
+ account_id
48
+ ]
49
+
50
+ field_values.merge! billing_country: %w(AT BE CZ DK EE FI DE LV LT NL NO PL SK ES SE GB)
51
+ end
52
+
53
+ # TrustlySale parameters structure
54
+ def payment_transaction_structure # rubocop:disable Metrics/MethodLength
55
+ {
56
+ return_success_url: return_success_url,
57
+ return_failure_url: return_failure_url,
58
+ return_success_url_target: return_success_url_target,
59
+ customer_email: customer_email,
60
+ customer_phone: customer_phone,
61
+ user_id: user_id,
62
+ birth_date: birth_date,
63
+ billing_address: billing_address_parameters_structure,
64
+ shipping_address: shipping_address_parameters_structure,
65
+ business_attributes: business_attributes_structure,
66
+ account_id: account_id
67
+ }
68
+ end
69
+
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,54 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module Financial
5
+ module OnlineBankingPayments
6
+ # Online Banking UPI transaction class
7
+ class Upi < Base::Financial
8
+
9
+ include Api::Mixins::Requests::AddressInfoAttributes
10
+ include Api::Mixins::Requests::DocumentAttributes
11
+ include Api::Mixins::Requests::Financial::AsyncAttributes
12
+ include Api::Mixins::Requests::Financial::OnlineBankingPayments::VirtualPaymentAddressAttributes
13
+
14
+ attr_accessor :user_category
15
+
16
+ protected
17
+
18
+ # Upi transaction type
19
+ def transaction_type
20
+ Api::Constants::Transactions::UPI
21
+ end
22
+
23
+ # Upi field validations
24
+ def init_field_validations
25
+ super
26
+
27
+ required_fields.push *%i[
28
+ transaction_id return_success_url return_failure_url amount currency billing_country
29
+ ]
30
+
31
+ field_values.merge! currency: 'INR'
32
+ end
33
+
34
+ # Upi parameters structure
35
+ def payment_transaction_structure # rubocop:disable Metrics/MethodLength
36
+ {
37
+ return_success_url: return_success_url,
38
+ return_failure_url: return_failure_url,
39
+ customer_email: customer_email,
40
+ customer_phone: customer_phone,
41
+ document_id: document_id,
42
+ virtual_payment_address: virtual_payment_address,
43
+ user_category: user_category,
44
+ billing_address: billing_address_parameters_structure,
45
+ shipping_address: shipping_address_parameters_structure
46
+ }
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -8,7 +8,6 @@ module GenesisRuby
8
8
  class Wechat < Base::Financial
9
9
 
10
10
  include Api::Mixins::Requests::AddressInfoAttributes
11
- include Api::Mixins::Requests::Financial::PaymentAttributes
12
11
  include Api::Mixins::Requests::Financial::AsyncAttributes
13
12
 
14
13
  attr_accessor :product_code, :product_num, :product_desc
@@ -30,19 +29,17 @@ module GenesisRuby
30
29
 
31
30
  # WeChat transaction request structure
32
31
  def payment_transaction_structure # rubocop:disable Metrics/MethodLength
33
- payment_attributes_structure.merge(
34
- {
35
- return_success_url: return_success_url,
36
- return_failure_url: return_failure_url,
37
- product_code: product_code,
38
- product_num: product_num,
39
- product_desc: product_desc,
40
- customer_email: customer_email,
41
- customer_phone: customer_phone,
42
- billing_address: billing_address_parameters_structure,
43
- shipping_address: shipping_address_parameters_structure
44
- }
45
- )
32
+ {
33
+ return_success_url: return_success_url,
34
+ return_failure_url: return_failure_url,
35
+ product_code: product_code,
36
+ product_num: product_num,
37
+ product_desc: product_desc,
38
+ customer_email: customer_email,
39
+ customer_phone: customer_phone,
40
+ billing_address: billing_address_parameters_structure,
41
+ shipping_address: shipping_address_parameters_structure
42
+ }
46
43
  end
47
44
 
48
45
  end
@@ -10,7 +10,6 @@ module GenesisRuby
10
10
  include Api::Mixins::Requests::CustomerAddress::ShippingInfoAttributes
11
11
  include Api::Mixins::Requests::Financial::AsyncAttributes
12
12
  include Api::Mixins::Requests::Financial::BankAttributes
13
- include Api::Mixins::Requests::Financial::PaymentAttributes
14
13
  include Api::Mixins::Requests::Financial::PendingPaymentAttributes
15
14
  include Api::Mixins::Requests::Financial::DynamicDescriptorAttributes
16
15
 
@@ -31,26 +30,23 @@ module GenesisRuby
31
30
  transaction_id usage amount currency iban billing_first_name billing_last_name billing_country
32
31
  ]
33
32
 
34
- field_values.merge! currency: Api::Constants::Currencies::Iso4217.all.map(&:upcase),
35
- billing_country: %w(AT BE CY EE FI FR DE GR IE IT LV LT LU MT MC NL PT SK SM SI ES)
33
+ field_values.merge! billing_country: %w(AT BE CY EE FI FR DE GR IE IT LV LT LU MT MC NL PT SK SM SI ES)
36
34
  end
37
35
 
38
36
  # SDD Sale request structure
39
37
  def payment_transaction_structure # rubocop:disable Metrics/MethodLength
40
- payment_attributes_structure.merge(
41
- {
42
- iban: iban,
43
- bic: bic,
44
- company_name: company_name,
45
- mandate_reference: mandate_reference,
46
- return_success_url: return_success_url,
47
- return_failure_url: return_failure_url,
48
- return_pending_url: return_pending_url,
49
- billing_address: billing_address_parameters_structure,
50
- shipping_address: shipping_address_parameters_structure,
51
- dynamic_descriptor_params: dynamic_descriptor_structure
52
- }
53
- )
38
+ {
39
+ iban: iban,
40
+ bic: bic,
41
+ company_name: company_name,
42
+ mandate_reference: mandate_reference,
43
+ return_success_url: return_success_url,
44
+ return_failure_url: return_failure_url,
45
+ return_pending_url: return_pending_url,
46
+ billing_address: billing_address_parameters_structure,
47
+ shipping_address: shipping_address_parameters_structure,
48
+ dynamic_descriptor_params: dynamic_descriptor_structure
49
+ }
54
50
  end
55
51
 
56
52
  end
@@ -3,8 +3,9 @@ module GenesisRuby
3
3
  module Requests
4
4
  module Financial
5
5
  # Void or undo payment transaction request
6
- class Void < Base::Financial
6
+ class Void < Request
7
7
 
8
+ include Mixins::Requests::Financial::BaseAttributes
8
9
  include Mixins::Requests::Financial::ReferenceAttributes
9
10
 
10
11
  protected
@@ -18,10 +19,16 @@ module GenesisRuby
18
19
  required_fields.push *%i[transaction_id reference_id]
19
20
  end
20
21
 
21
- # Void transaction request structure
22
- def payment_transaction_structure
23
- {
24
- reference_id: reference_id
22
+ # Returns the Request transaction structure
23
+ def populate_structure
24
+ @tree_structure = {
25
+ payment_transaction: {
26
+ transaction_type: transaction_type,
27
+ transaction_id: transaction_id,
28
+ usage: usage,
29
+ reference_id: reference_id,
30
+ remote_ip: remote_ip
31
+ }
25
32
  }
26
33
  end
27
34
 
@@ -9,7 +9,6 @@ module GenesisRuby
9
9
  include Api::Mixins::Requests::AddressInfoAttributes
10
10
  include Api::Mixins::Requests::BirthDateAttributes
11
11
  include Api::Mixins::Requests::Financial::AsyncAttributes
12
- include Api::Mixins::Requests::Financial::PaymentAttributes
13
12
 
14
13
  protected
15
14
 
@@ -27,18 +26,16 @@ module GenesisRuby
27
26
  end
28
27
 
29
28
  # Alipay request structure
30
- def payment_transaction_structure # rubocop:disable Metrics/MethodLength
31
- payment_attributes_structure.merge(
32
- {
33
- return_success_url: return_success_url,
34
- return_failure_url: return_failure_url,
35
- customer_email: customer_email,
36
- customer_phone: customer_phone,
37
- birth_date: birth_date,
38
- billing_address: billing_address_parameters_structure,
39
- shipping_address: shipping_address_parameters_structure
40
- }
41
- )
29
+ def payment_transaction_structure
30
+ {
31
+ return_success_url: return_success_url,
32
+ return_failure_url: return_failure_url,
33
+ customer_email: customer_email,
34
+ customer_phone: customer_phone,
35
+ birth_date: birth_date,
36
+ billing_address: billing_address_parameters_structure,
37
+ shipping_address: shipping_address_parameters_structure
38
+ }
42
39
  end
43
40
 
44
41
  end