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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/Gemfile.lock +1 -1
- data/README.md +40 -0
- data/VERSION +1 -1
- data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/externally_processed.rb +22 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/processing_type.rb +22 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sca_exemptions.rb +25 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets.rb +26 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +38 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +21 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +65 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/mode_attributes.rb +24 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/card_data_attributes.rb +62 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/token_attributes.rb +23 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/tokenization_attributes.rb +51 -0
- data/lib/genesis_ruby/api/requests/base/consumer.rb +24 -0
- data/lib/genesis_ruby/api/requests/base/financial.rb +10 -1
- data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +5 -7
- data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +11 -14
- data/lib/genesis_ruby/api/requests/base/reference.rb +2 -1
- data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +8 -9
- data/lib/genesis_ruby/api/requests/financial/cash_payments/cash.rb +13 -14
- data/lib/genesis_ruby/api/requests/financial/cash_payments/pix.rb +23 -25
- data/lib/genesis_ruby/api/requests/financial/mobile/apple_pay.rb +18 -20
- data/lib/genesis_ruby/api/requests/financial/mobile/google_pay.rb +20 -24
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/banco_do_brasil.rb +11 -14
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/eps.rb +9 -10
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_in.rb +11 -18
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_in.rb +61 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_out.rb +24 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/multibanco.rb +48 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/my_bank.rb +47 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_in.rb +17 -18
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb +33 -38
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pay_u.rb +61 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/post_finance.rb +53 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/safety_pay.rb +57 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/sofort.rb +63 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/trustly_sale.rb +75 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/upi.rb +54 -0
- data/lib/genesis_ruby/api/requests/financial/online_banking_payments/wechat.rb +11 -14
- data/lib/genesis_ruby/api/requests/financial/sdd/sale.rb +13 -17
- data/lib/genesis_ruby/api/requests/financial/void.rb +12 -5
- data/lib/genesis_ruby/api/requests/financial/wallets/alipay.rb +10 -13
- data/lib/genesis_ruby/api/requests/financial/wallets/pay_pal.rb +18 -20
- data/lib/genesis_ruby/api/requests/non_financial/consumers/create.rb +44 -0
- data/lib/genesis_ruby/api/requests/non_financial/consumers/disable.rb +40 -0
- data/lib/genesis_ruby/api/requests/non_financial/consumers/enable.rb +40 -0
- data/lib/genesis_ruby/api/requests/non_financial/consumers/get_cards.rb +40 -0
- data/lib/genesis_ruby/api/requests/non_financial/consumers/retrieve.rb +40 -0
- data/lib/genesis_ruby/api/requests/non_financial/consumers/update.rb +45 -0
- data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/date_range.rb +81 -0
- data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/transaction.rb +52 -0
- data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/date_range.rb +68 -0
- data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/post_date_range.rb +72 -0
- data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/transaction.rb +48 -0
- data/lib/genesis_ruby/api/requests/non_financial/sca/checker.rb +77 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +43 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/delete_token.rb +43 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/detokenize.rb +43 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/get_card.rb +43 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/tokenize.rb +45 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/update_token.rb +45 -0
- data/lib/genesis_ruby/api/requests/non_financial/tokenization/validate_token.rb +43 -0
- data/lib/genesis_ruby/dependencies.rb +1 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +1 -1
- data/lib/genesis_ruby/version.rb +1 -1
- metadata +43 -2
data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb
CHANGED
@@ -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
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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!
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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 <
|
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
|
-
#
|
22
|
-
def
|
23
|
-
{
|
24
|
-
|
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
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|