Sha256: fa39643184abb29ed1b4d8a54ab71f2826c050047df6860aeb32561fd01a0a9d

Contents?: true

Size: 1.9 KB

Versions: 81

Compression:

Stored size: 1.9 KB

Contents

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    class OrbitalSoftDescriptors
      include Validateable
      
      PHONE_FORMAT_1 = /\A\d{3}-\d{3}-\d{4}\z/
      PHONE_FORMAT_2 = /\A\d{3}-\w{7}\z/
      
      # ==== Tampa PNS Soft Descriptors
      # The support for Soft Descriptors via the PNS Host is only for customers processing through Chase 
      # Paymentech Canada. 

      # Unlike Salem, the only value that gets passed on the cardholder statement is the Merchant Name field.  
      # And for these customers, it is a maximum of 25 bytes of data. 
      # 
      # All other Soft Descriptor fields can optionally be sent, but will not be submitted to the settlement host 
      # and will not display on the cardholder statement.
      
      attr_accessor :merchant_name, :product_description, :merchant_city, :merchant_phone, :merchant_url, :merchant_email
      
      def initialize(options = {})
        self.merchant_name = options[:merchant_name]
        self.merchant_city = options[:merchant_city]
        self.merchant_phone = options[:merchant_phone]
        self.merchant_url = options[:merchant_url]
        self.merchant_email = options[:merchant_email]
      end
      
      def validate
        errors.add(:merchant_name, "is required") if self.merchant_name.blank?
        errors.add(:merchant_name, "is required to be 25 bytes or less") if self.merchant_name.bytesize > 25
        
        unless self.merchant_phone.blank? || self.merchant_phone.match(PHONE_FORMAT_1) || self.merchant_phone.match(PHONE_FORMAT_2)
          errors.add(:merchant_phone, "is required to follow \"NNN-NNN-NNNN\" or \"NNN-AAAAAAA\" format")
        end
        
        [:merchant_email, :merchant_url].each do |attr|
          unless self.send(attr).blank?
            errors.add(attr, "is required to be 13 bytes or less") if self.send(attr).bytesize > 13
          end
        end
      end
      
    end
  end
end

Version data entries

81 entries across 81 versions & 11 rubygems

Version Path
tanga_activemerchant-1.38.0.5 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.38.0.4 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.38.0.3 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.38.0.2 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.38.0.1 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.38.0 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
tanga_activemerchant-1.37.0 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.43.3 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.43.1 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.43.0 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.9 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.8 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.7 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.6 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.5 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.4 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.3 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.2 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.1 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb
activemerchant-1.42.0 lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb