class OffsitePayments::Integrations::Paypal::Helper
Constants
- CANADIAN_PROVINCES
Public Class Methods
new(order, account, options = {})
click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/paypal.rb, line 50 def initialize(order, account, options = {}) super add_field('cmd', '_ext-enter') add_field('redirect_cmd', '_xclick') add_field('quantity', 1) add_field('item_name', 'Store purchase') add_field('no_shipping', '1') add_field('no_note', '1') add_field('charset', 'utf-8') add_field('address_override', '0') add_field('bn', application_id.to_s.slice(0,32)) unless application_id.blank? end
Public Instance Methods
shipping_address(params = {})
click to toggle source
# File lib/offsite_payments/integrations/paypal.rb, line 89 def shipping_address(params = {}) # Get the country code in the correct format # Use what we were given if we can't find anything country_code = lookup_country_code(params.delete(:country)) add_field(mappings[:shipping_address][:country], country_code) if params.has_key?(:phone) phone = params.delete(:phone).to_s # Wipe all non digits phone.gsub!(/\D+/, '') if ['US', 'CA'].include?(country_code) && phone =~ /(\d{3})(\d{3})(\d{4})$/ add_field('night_phone_a', $1) add_field('night_phone_b', $2) add_field('night_phone_c', $3) else add_field('night_phone_b', phone) end end province_code = params.delete(:state) case country_code when 'CA' add_field(mappings[:shipping_address][:state], CANADIAN_PROVINCES[province_code.upcase]) unless province_code.nil? when 'US' add_field(mappings[:shipping_address][:state], province_code) else add_field(mappings[:shipping_address][:state], province_code.blank? ? 'N/A' : province_code) end # Everything else params.each do |k, v| field = mappings[:shipping_address][k] add_field(field, v) unless field.nil? end end