Class: Spree::Gateway::Bogus
Constant Summary
collapse
- TEST_VISA =
['4111111111111111', '4012888888881881', '4222222222222']
- TEST_MC =
['5500000000000004', '5555555555554444', '5105105105105100', '2223000010309703']
- TEST_AMEX =
['378282246310005', '371449635398431', '378734493671000', '340000000000009']
- TEST_DISC =
['6011000000000004', '6011111111111117', '6011000990139424']
- VALID_CCS =
['1', TEST_VISA, TEST_MC, TEST_AMEX, TEST_DISC].flatten
FROM_DOLLAR_TO_CENT_RATE
PaymentMethod::DISPLAY
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#actions ⇒ Object
-
#authorize(_money, credit_card, _options = {}) ⇒ Object
-
#cancel(_response_code, _payment = nil) ⇒ Object
-
#capture(_money, authorization, _gateway_options) ⇒ Object
-
#create_profile(payment) ⇒ Object
-
#credit(_money, _credit_card, _response_code, _options = {}) ⇒ Object
-
#payment_profiles_supported? ⇒ Boolean
-
#payment_source_class ⇒ Object
-
#provider_class ⇒ Object
-
#purchase(_money, credit_card, _options = {}) ⇒ Object
-
#test? ⇒ Boolean
-
#void(_response_code, _credit_card, _options = {}) ⇒ Object
#disable_customer_profile, #exchange_multiplier, #method_missing, #method_type, #options, #provider, #reusable_sources, #sources_by_order, #supports?
#auto_capture?, #available_for_order?, #available_for_store?, find_with_destroyed, #method_type, providers, #public_preferences, #reusable_sources, #source_required?, #store_credit?, #supports?
Methods inherited from Base
belongs_to_required_by_default, for_store, has_many_inversing, json_api_columns, json_api_permitted_attributes, json_api_type, page, spree_base_scopes, spree_base_uniqueness_scope
#clear_preferences, #default_preferences, #defined_preferences, #deprecated_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_deprecated, #preference_type, #set_preference
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Spree::Gateway
Instance Attribute Details
#test ⇒ Object
Returns the value of attribute test.
10
11
12
|
# File 'app/models/spree/gateway/bogus.rb', line 10
def test
@test
end
|
Instance Method Details
#actions ⇒ Object
78
79
80
|
# File 'app/models/spree/gateway/bogus.rb', line 78
def actions
%w(capture void credit)
end
|
#authorize(_money, credit_card, _options = {}) ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'app/models/spree/gateway/bogus.rb', line 27
def authorize(_money, credit_card, _options = {})
profile_id = credit_card.gateway_customer_profile_id
if VALID_CCS.include?(credit_card.number) || (profile_id&.starts_with?('BGS-'))
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345', avs_result: { code: 'D' })
else
ActiveMerchant::Billing::Response.new(false, 'Bogus Gateway: Forced failure', { message: 'Bogus Gateway: Forced failure' }, test: true)
end
end
|
#cancel(_response_code, _payment = nil) ⇒ Object
61
62
63
|
# File 'app/models/spree/gateway/bogus.rb', line 61
def cancel(_response_code, _payment = nil)
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345')
end
|
#capture(_money, authorization, _gateway_options) ⇒ Object
49
50
51
52
53
54
55
|
# File 'app/models/spree/gateway/bogus.rb', line 49
def capture(_money, authorization, _gateway_options)
if authorization == '12345'
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true)
else
ActiveMerchant::Billing::Response.new(false, 'Bogus Gateway: Forced failure', error: 'Bogus Gateway: Forced failure', test: true)
end
end
|
#create_profile(payment) ⇒ Object
18
19
20
21
22
23
24
25
|
# File 'app/models/spree/gateway/bogus.rb', line 18
def create_profile(payment)
return if payment.source.has_payment_profile?
if success = VALID_CCS.include?(payment.source.number)
payment.source.update(gateway_customer_profile_id: generate_profile_id(success))
end
end
|
#credit(_money, _credit_card, _response_code, _options = {}) ⇒ Object
45
46
47
|
# File 'app/models/spree/gateway/bogus.rb', line 45
def credit(_money, _credit_card, _response_code, _options = {})
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345')
end
|
#payment_profiles_supported? ⇒ Boolean
70
71
72
|
# File 'app/models/spree/gateway/bogus.rb', line 70
def payment_profiles_supported?
true
end
|
#payment_source_class ⇒ Object
74
75
76
|
# File 'app/models/spree/gateway/bogus.rb', line 74
def payment_source_class
CreditCard
end
|
#provider_class ⇒ Object
14
15
16
|
# File 'app/models/spree/gateway/bogus.rb', line 14
def provider_class
self.class
end
|
#purchase(_money, credit_card, _options = {}) ⇒ Object
36
37
38
39
40
41
42
43
|
# File 'app/models/spree/gateway/bogus.rb', line 36
def purchase(_money, credit_card, _options = {})
profile_id = credit_card.gateway_customer_profile_id
if VALID_CCS.include?(credit_card.number) || (profile_id&.starts_with?('BGS-'))
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345', avs_result: { code: 'M' })
else
ActiveMerchant::Billing::Response.new(false, 'Bogus Gateway: Forced failure', message: 'Bogus Gateway: Forced failure', test: true)
end
end
|
#test? ⇒ Boolean
65
66
67
68
|
# File 'app/models/spree/gateway/bogus.rb', line 65
def test?
true
end
|
#void(_response_code, _credit_card, _options = {}) ⇒ Object
57
58
59
|
# File 'app/models/spree/gateway/bogus.rb', line 57
def void(_response_code, _credit_card, _options = {})
ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345')
end
|