Class: Spree::PaymentResponse
- Inherits:
-
Object
- Object
- Spree::PaymentResponse
- Defined in:
- app/models/spree/payment_response.rb
Overview
Lightweight value object representing a payment gateway response.
This is Spree’s native replacement for ActiveMerchant::Billing::Response. It carries the same interface so existing payment method implementations (Bogus, Check, StoreCredit, and third-party gateways) can return it without any callers needing to change.
Instance Attribute Summary collapse
-
#authorization ⇒ String?
readonly
Gateway authorization / transaction reference.
-
#avs_result ⇒ Hash
readonly
AVS (Address Verification System) result with “code” key.
-
#cvv_result ⇒ Hash
readonly
CVV result with “code” and “message” keys.
-
#message ⇒ String
readonly
Human-readable result message.
-
#params ⇒ HashWithIndifferentAccess
readonly
Raw gateway params.
-
#test ⇒ Boolean
readonly
Whether the response came from a test/sandbox environment.
Instance Method Summary collapse
-
#initialize(success, message, params = {}, options = {}) ⇒ PaymentResponse
constructor
A new instance of PaymentResponse.
-
#success? ⇒ Boolean
Whether the gateway action succeeded.
-
#test? ⇒ Boolean
Whether the response came from a test/sandbox environment.
Constructor Details
#initialize(success, message, params = {}, options = {}) ⇒ PaymentResponse
Returns a new instance of PaymentResponse.
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/models/spree/payment_response.rb', line 46 def initialize(success, , params = {}, = {}) @success = success @message = @params = params.with_indifferent_access @test = [:test] || false @authorization = [:authorization] @avs_result = [:avs_result] ? { 'code' => [:avs_result][:code] } : { 'code' => nil } @cvv_result = if [:cvv_result] { 'code' => [:cvv_result][:code], 'message' => [:cvv_result][:message] } else { 'code' => nil, 'message' => nil } end end |
Instance Attribute Details
#authorization ⇒ String? (readonly)
Returns gateway authorization / transaction reference.
30 31 32 |
# File 'app/models/spree/payment_response.rb', line 30 def @authorization end |
#avs_result ⇒ Hash (readonly)
Returns AVS (Address Verification System) result with “code” key.
33 34 35 |
# File 'app/models/spree/payment_response.rb', line 33 def avs_result @avs_result end |
#cvv_result ⇒ Hash (readonly)
Returns CVV result with “code” and “message” keys.
36 37 38 |
# File 'app/models/spree/payment_response.rb', line 36 def cvv_result @cvv_result end |
#message ⇒ String (readonly)
Returns human-readable result message.
24 25 26 |
# File 'app/models/spree/payment_response.rb', line 24 def @message end |
#params ⇒ HashWithIndifferentAccess (readonly)
Returns raw gateway params.
21 22 23 |
# File 'app/models/spree/payment_response.rb', line 21 def params @params end |
#test ⇒ Boolean (readonly)
Returns whether the response came from a test/sandbox environment.
27 28 29 |
# File 'app/models/spree/payment_response.rb', line 27 def test @test end |
Instance Method Details
#success? ⇒ Boolean
Returns whether the gateway action succeeded.
61 62 63 |
# File 'app/models/spree/payment_response.rb', line 61 def success? @success end |
#test? ⇒ Boolean
Returns whether the response came from a test/sandbox environment.
66 67 68 |
# File 'app/models/spree/payment_response.rb', line 66 def test? @test end |