Class PaySimple::Subscription
In: lib/paysimple.rb
Parent: Object

Methods

charge   create   delete   find   query   update  

Public Class methods

# Process one-time sale against existing subscription begin

  customer_number = 12345
  response = PaySimple::Subscription.charge(customer_number, :Amount => 34.56)

  if response['Response'] == "Approved"
    puts "One-time charge successful."
  else
    puts "An error occurred: #{response['Error']}"
  end

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

# Bill Jennifer $12.00 monthly begin

  customer_number = PaySimple::Subscription.create(
    :CustomerID => 12345,
    :BillingAddress => {
      :FirstName => "Jennifer",
      :LastName => "Smith"
    },
    :CreditCardData => {
      :CardNumber => '4444555566667779',
      :CardExpiration => '0908'
    },
    :Schedule => :monthly,
    :Next => "2008-09-05",
    :Amount => 12.00
  )

  puts "Subscription created with Customer Number: #{customer_number}"

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

# Delete subscription begin

  customer_number = 12345
  response = PaySimple::Subscription.delete(customer_number)

  puts "Subscription removed from active use."

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

# Find an existing subscription begin

  customer_number = 12345
  customer = PaySimple::Subscription.find(customer_number)

  puts "Found subscription for #{ [customer["BillingAddress"]["FirstName"], customer["BillingAddress"]["LastName"]].join(" ")}"

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

# Search for transactions begin

  response = PaySimple::Subscription.query(
    [
      { :Field => 'amount', :Type => 'gt', :Value => '5.0' }
    ]
  )

  response.transactions.each do |transaction|
    puts "CustomerID = #{transaction['CustomerID']}, Amount = #{transaction['Details']['Amount']}"
  end

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

# Update subscription to use new credit card begin

  customer_number = 12345
  response = PaySimple::Subscription.update(
    customer_number,
    :CreditCardData => {
      :CardNumber => '4444555566667779',
      :CardExpiration => '0908'
    }
  )

  puts "Subscription updated"

rescue Exception => e

  puts "An error occurred: #{e.message}"

end

[Validate]