Class: MerbMerchant::Billing::AVSResult
- Inherits:
-
Object
- Object
- MerbMerchant::Billing::AVSResult
- Defined in:
- lib/merb_merchant/billing/avs_result.rb
Overview
Implements the Address Verification System www.wellsfargo.com/downloads/pdf/biz/merchant/visa_avs.pdf en.wikipedia.org/wiki/Address_Verification_System apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_IG/html/app_avs_cvn_codes.htm#app_AVS_CVN_codes_7891_48375 imgserver.skipjack.com/imgServer/5293710/AVS%20and%20CVV2.pdf www.emsecommerce.net/avs_cvv2_response_codes.htm
Constant Summary collapse
- MESSAGES =
{ 'A' => 'Street address matches, but 5-digit and 9-digit postal code do not match.', 'B' => 'Street address matches, but postal code not verified.', 'C' => 'Street address and postal code do not match.', 'D' => 'Street address and postal code match.', 'E' => 'AVS data is invalid or AVS is not allowed for this card type.', 'F' => 'Card member’s name does not match, but billing postal code matches.', 'G' => 'Non-U.S. issuing bank does not support AVS.', 'H' => 'Card member’s name does not match. Street address and postal code match.', 'I' => 'Address not verified.', 'J' => 'Card member’s name, billing address, and postal code match. Shipping information verified and chargeback protection guaranteed through the Fraud Protection Program.', 'K' => 'Card member’s name matches but billing address and billing postal code do not match.', 'L' => 'Card member’s name and billing postal code match, but billing address does not match.', 'M' => 'Street address and postal code match.', 'N' => 'Street address and postal code do not match.', 'O' => 'Card member’s name and billing address match, but billing postal code does not match.', 'P' => 'Postal code matches, but street address not verified.', 'Q' => 'Card member’s name, billing address, and postal code match. Shipping information verified but chargeback protection not guaranteed.', 'R' => 'System unavailable.', 'S' => 'U.S.-issuing bank does not support AVS.', 'T' => 'Card member’s name does not match, but street address matches.', 'U' => 'Address information unavailable.', 'V' => 'Card member’s name, billing address, and billing postal code match.', 'W' => 'Street address does not match, but 9-digit postal code matches.', 'X' => 'Street address and 9-digit postal code match.', 'Y' => 'Street address and 5-digit postal code match.', 'Z' => 'Street address does not match, but 5-digit postal code matches.' }
- POSTAL_MATCH_CODE =
Map vendor’s AVS result code to a postal match code
{ 'Y' => %w( D H F H J L M P Q V W X Y Z ), 'N' => %w( A C K N O ), 'X' => %w( G S ), nil => %w( B E I R T U ) }.inject({}) do |map, (type, codes)| codes.each { |code| map[code] = type } map end
- STREET_MATCH_CODE =
Map vendor’s AVS result code to a street match code
{ 'Y' => %w( A B D H J M O Q T V X Y ), 'N' => %w( C K L N P W Z ), 'X' => %w( G S ), nil => %w( E F I R U ) }.inject({}) do |map, (type, codes)| codes.each { |code| map[code] = type } map end
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#postal_match ⇒ Object
readonly
Returns the value of attribute postal_match.
-
#street_match ⇒ Object
readonly
Returns the value of attribute street_match.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(attrs) ⇒ AVSResult
constructor
A new instance of AVSResult.
- #to_hash ⇒ Object
Constructor Details
#initialize(attrs) ⇒ AVSResult
Returns a new instance of AVSResult.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 67 def initialize(attrs) attrs ||= {} @code = attrs[:code].upcase unless attrs[:code].blank? @message = self.class.[code] if attrs[:street_match].blank? @street_match = STREET_MATCH_CODE[code] else @street_match = attrs[:street_match].upcase end if attrs[:postal_match].blank? @postal_match = POSTAL_MATCH_CODE[code] else @postal_match = attrs[:postal_match].upcase end end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
61 62 63 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 61 def code @code end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
61 62 63 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 61 def @message end |
#postal_match ⇒ Object (readonly)
Returns the value of attribute postal_match.
61 62 63 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 61 def postal_match @postal_match end |
#street_match ⇒ Object (readonly)
Returns the value of attribute street_match.
61 62 63 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 61 def street_match @street_match end |
Class Method Details
.messages ⇒ Object
63 64 65 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 63 def self. MESSAGES end |
Instance Method Details
#to_hash ⇒ Object
86 87 88 89 90 91 92 |
# File 'lib/merb_merchant/billing/avs_result.rb', line 86 def to_hash { 'code' => code, 'message' => , 'street_match' => street_match, 'postal_match' => postal_match } end |