def update(customer_number, options)
customer = find(customer_number)
options = PaySimple.symbolize_hash(options)
[
:CustomerID,
:SendReceipt,
:ReceiptNote,
:Notes,
:User,
:Source,
:Schedule,
:Next,
:NumLeft,
:Amount,
:Enabled,
:CustomData,
:Description,
:OrderID
].each do |property|
options[property] = customer[property.to_s] unless options.has_key?(property)
end
options[:BillingAddress] ||= {}
[
:FirstName,
:LastName,
:Company,
:Street,
:Street2,
:City,
:State,
:Zip,
:Country,
:Phone,
:Fax,
:Email
].each do |property|
options[:BillingAddress][property] = customer["BillingAddress"][property.to_s] unless options[:BillingAddress].has_key?(property)
end
options[:CreditCardData] ||= {}
[
:CardNumber,
:CardExpiration,
:CardCode,
:AvsStreet,
:AvsZip,
:CardPresent,
:MagStripe,
:TermType,
:MagSupport,
:XID,
:CAVV,
:ECI,
:InternalCardAuth,
:Pares
].each do |property|
options[:CreditCardData][property] = customer["CreditCardData"][property.to_s] unless options[:CreditCardData].has_key?(property)
end
options[:CheckData] ||= {}
[
:CheckNumber,
:Routing,
:Account,
:SSN,
:DriversLicense,
:DriversLicenseState
].each do |property|
options[:CheckData][property] = customer["CheckData"][property.to_s] unless options[:CheckData].has_key?(property)
end
PaySimple.send_request(:updateCustomer, customer_number, options)
end