genesis_ruby 0.2.3 → 0.2.5
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 +78 -0
- data/Gemfile.lock +14 -14
- data/README.md +78 -0
- data/VERSION +1 -1
- data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +6 -0
- data/lib/genesis_ruby/api/constants/non_financial/kyc/document_types.rb +49 -0
- data/lib/genesis_ruby/api/constants/non_financial/kyc/genders.rb +22 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/african_mobile_operators.rb +37 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_owner.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_subtype.rb +24 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_type.rb +63 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/digital_asset_types.rb +31 -0
- 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/constants/transactions/parameters/purpose_of_payment.rb +136 -0
- data/lib/genesis_ruby/api/constants/transactions/parameters/source_of_funds.rb +34 -0
- data/lib/genesis_ruby/api/mixins/requests/digital_asset_type_attributes.rb +26 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/african_mobile_attributes.rb +30 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +38 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_params_attributes.rb +36 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +21 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/customer_identification_attributes.rb +82 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/gift_cards_attributes.rb +26 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +65 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/preauthorization_attributes.rb +25 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/purpose_of_payment_attributes.rb +29 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/source_of_funds_attributes.rb +38 -0
- data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +1 -1
- data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/id_attributes.rb +28 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/tier_id_attributes.rb +28 -0
- data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/customer_information_attributes.rb +62 -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/request.rb +7 -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 +9 -9
- data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +11 -14
- data/lib/genesis_ruby/api/requests/base/non_financial/kyc/base.rb +33 -0
- data/lib/genesis_ruby/api/requests/base/reference.rb +3 -3
- data/lib/genesis_ruby/api/requests/financial/Preauthorizations/incremental_authorize.rb +24 -0
- data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +5 -1
- data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +5 -1
- data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +8 -9
- data/lib/genesis_ruby/api/requests/financial/cards/credit.rb +39 -0
- data/lib/genesis_ruby/api/requests/financial/cards/payout.rb +72 -0
- data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +3 -1
- data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +3 -1
- 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/crypto/bit_pay/payout.rb +52 -0
- data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/refund.rb +36 -0
- data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/sale.rb +55 -0
- data/lib/genesis_ruby/api/requests/financial/gift_cards/fashioncheque.rb +47 -0
- data/lib/genesis_ruby/api/requests/financial/gift_cards/intersolve.rb +46 -0
- data/lib/genesis_ruby/api/requests/financial/gift_cards/tcs.rb +47 -0
- data/lib/genesis_ruby/api/requests/financial/mobile/african_mobile_sale.rb +81 -0
- 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/mobile/russian_mobile_sale.rb +55 -0
- 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/vouchers/neosurf.rb +61 -0
- 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/chargeback/date_range.rb +82 -0
- data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/transaction.rb +52 -0
- data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/date_range.rb +108 -0
- data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/transaction.rb +52 -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/fx/get_rate.rb +55 -0
- data/lib/genesis_ruby/api/requests/non_financial/fx/get_rates.rb +53 -0
- data/lib/genesis_ruby/api/requests/non_financial/fx/get_tier.rb +53 -0
- data/lib/genesis_ruby/api/requests/non_financial/fx/get_tiers.rb +35 -0
- data/lib/genesis_ruby/api/requests/non_financial/fx/search_rate.rb +61 -0
- data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/create.rb +99 -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 +46 -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/api/requests/wpf/create.rb +3 -1
- data/lib/genesis_ruby/configuration.rb +4 -0
- data/lib/genesis_ruby/dependencies.rb +2 -0
- data/lib/genesis_ruby/utils/country.rb +272 -0
- data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +1 -1
- data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +1 -4
- data/lib/genesis_ruby/version.rb +1 -1
- metadata +87 -2
@@ -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
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Requests
|
4
|
+
module Financial
|
5
|
+
module Vouchers
|
6
|
+
# Neosurf is a prepaid card (voucher) that is used for online shopping
|
7
|
+
class Neosurf < Base::Financial
|
8
|
+
|
9
|
+
include Api::Mixins::Requests::AddressInfoAttributes
|
10
|
+
include Api::Mixins::Requests::Financial::AsyncAttributes
|
11
|
+
|
12
|
+
attr_reader :voucher_number
|
13
|
+
|
14
|
+
# Voucher number. Alphanumeric maximum 10 characters
|
15
|
+
def voucher_number=(value)
|
16
|
+
limited_string attribute: __method__,
|
17
|
+
value: value.to_s.empty? ? nil : value.to_s,
|
18
|
+
min: 1,
|
19
|
+
max: 10
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
# Neosurf transaction type
|
25
|
+
def transaction_type
|
26
|
+
Api::Constants::Transactions::NEOSURF
|
27
|
+
end
|
28
|
+
|
29
|
+
# Neosurf Field Validations
|
30
|
+
def init_field_validations
|
31
|
+
super
|
32
|
+
|
33
|
+
required_fields.push *%i[transaction_id amount currency billing_country]
|
34
|
+
field_values.merge! currency: %w( AUD BGN BRL CAD CHF CNY CZK DKK EUR GBP HKD HUF IDR
|
35
|
+
ILS INR JPY KRW MXN MYR NOK NZD PHP PLN RON RUB SEK
|
36
|
+
SGD THB TRY USD XOF ZAR ),
|
37
|
+
billing_country: %w( AT DZ AU BI BF BJ BE CV CY CA CF TD CO CG CM CD DK GQ
|
38
|
+
FR GM DE GA GN GH GW HK IE IT CI KE LU MW MZ MA MR ML
|
39
|
+
NE NG NL NZ NO PL PT RW RU RO SE ES SL SN ST CH RS TR
|
40
|
+
TG TN GB TZ UG ZW ZM )
|
41
|
+
end
|
42
|
+
|
43
|
+
# Neosurf request structure
|
44
|
+
def payment_transaction_structure
|
45
|
+
{
|
46
|
+
voucher_number: voucher_number,
|
47
|
+
customer_email: customer_email,
|
48
|
+
customer_phone: customer_phone,
|
49
|
+
return_success_url: return_success_url,
|
50
|
+
return_failure_url: return_failure_url,
|
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
|
@@ -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
|
@@ -14,7 +14,6 @@ module GenesisRuby
|
|
14
14
|
include Api::Mixins::Requests::Financial::Business::BusinessAttributes
|
15
15
|
include Api::Mixins::Requests::DocumentAttributes
|
16
16
|
include Api::Mixins::Requests::Financial::NotificationAttributes
|
17
|
-
include Api::Mixins::Requests::Financial::PaymentAttributes
|
18
17
|
include Api::Mixins::Requests::Financial::NotificationAttributes
|
19
18
|
include Api::Mixins::Requests::Financial::PendingPaymentAttributes
|
20
19
|
|
@@ -24,12 +23,13 @@ module GenesisRuby
|
|
24
23
|
|
25
24
|
# Initialize PayPal request field validations
|
26
25
|
def init_field_validations
|
26
|
+
super
|
27
|
+
|
27
28
|
required_fields
|
28
29
|
.push *%i[transaction_id payment_type amount currency return_success_url return_failure_url]
|
29
30
|
|
30
|
-
field_values.merge!
|
31
|
-
|
32
|
-
PaymentTypes.all
|
31
|
+
field_values.merge! payment_type:
|
32
|
+
Api::Constants::Transactions::Parameters::Wallets::PayPal::PaymentTypes.all
|
33
33
|
end
|
34
34
|
|
35
35
|
# PayPal transaction type
|
@@ -39,22 +39,20 @@ module GenesisRuby
|
|
39
39
|
|
40
40
|
# PayPal request attributes structure
|
41
41
|
def payment_transaction_structure # rubocop:disable Metrics/MethodLength
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
)
|
42
|
+
{
|
43
|
+
notification_url: notification_url,
|
44
|
+
return_success_url: return_success_url,
|
45
|
+
return_failure_url: return_failure_url,
|
46
|
+
return_pending_url: return_pending_url,
|
47
|
+
customer_email: customer_email,
|
48
|
+
customer_phone: customer_phone,
|
49
|
+
payment_type: payment_type,
|
50
|
+
birth_date: birth_date,
|
51
|
+
document_id: document_id,
|
52
|
+
billing_address: billing_address_parameters_structure,
|
53
|
+
shipping_address: shipping_address_parameters_structure,
|
54
|
+
business_attributes: business_attributes_structure
|
55
|
+
}
|
58
56
|
end
|
59
57
|
|
60
58
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Requests
|
4
|
+
module NonFinancial
|
5
|
+
module Consumers
|
6
|
+
# Creates a consumer based on email address
|
7
|
+
class Create < Base::Consumer
|
8
|
+
|
9
|
+
include Api::Mixins::Requests::CustomerAddress::BillingInfoAttributes
|
10
|
+
include Api::Mixins::Requests::CustomerAddress::ShippingInfoAttributes
|
11
|
+
|
12
|
+
attr_accessor :email
|
13
|
+
|
14
|
+
# Create Consumer constructor
|
15
|
+
def initialize(configuration, _builder_interface = nil)
|
16
|
+
super configuration
|
17
|
+
|
18
|
+
self.request_path = 'create_consumer'
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
|
23
|
+
# Create Consumer field validations
|
24
|
+
def init_field_validations
|
25
|
+
super
|
26
|
+
|
27
|
+
required_fields.push *%i[email]
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create Consumer request structure
|
31
|
+
def request_structure
|
32
|
+
{
|
33
|
+
email: email,
|
34
|
+
billing_address: billing_address_parameters_structure,
|
35
|
+
shipping_address: shipping_address_parameters_structure
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module GenesisRuby
|
2
|
+
module Api
|
3
|
+
module Requests
|
4
|
+
module NonFinancial
|
5
|
+
module Consumers
|
6
|
+
# Disable consumer from usage until further action.
|
7
|
+
class Disable < Base::Consumer
|
8
|
+
|
9
|
+
attr_accessor :email, :consumer_id
|
10
|
+
|
11
|
+
# Disable Consumer constructor
|
12
|
+
def initialize(configuration, _builder_interface = nil)
|
13
|
+
super configuration
|
14
|
+
|
15
|
+
self.request_path = 'disable_consumer'
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
# Disable consumer field validations
|
21
|
+
def init_field_validations
|
22
|
+
super
|
23
|
+
|
24
|
+
required_fields.push *%i[email consumer_id]
|
25
|
+
end
|
26
|
+
|
27
|
+
# Disable Consumer request structure
|
28
|
+
def request_structure
|
29
|
+
{
|
30
|
+
email: email,
|
31
|
+
consumer_id: consumer_id
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|