require "lib/iBilling" #Set up clients' settings config = Map.new config.put(SessionConnection::PROCESSOR_HOST, "http://server.ibillingclient.org/ibilling/xmlhttps") config.put("debug", true) #Login session = Session::login(2000, "welcome", config) #Find customer account customerAccount = session.loadCustomerAccount("rb.ca-2") #Create invoice1 invoice1 = customerAccount.createRevenueTransaction() #code is optinal; if you specify the value, make sure the code is unique invoice1.code = "rb.rt-9-1" #all amounts are in cents invoice1.amount = 2000 #Item Codes must be setup in portal prior to being used invoice1.itemCode = "T-Shirt" #Type of transaction invoice1.accountActivityType = AccountActivityType::Invoice #Create payment1 payment1 = customerAccount.createAssetTransaction() #code is optinal; if you specify the value, make sure the code is unique payment1.code = "rb.at-9-1" #all amounts are in cents payment1.amount = 2000 payment1.transactionType = AssetTransactionType::Visa payment1.accountActivityType = AccountActivityType::Payment #Credit card number to charge payment1.accountNumber = "4111111111111111" #Credit card expiration date payment1.accessory = "1209" #Add processing specific info (for better qualification rates) captureInfo1 = payment1.captureInfo captureInfo1.holderName = "John Smith" captureInfo1.city = "Columbus" captureInfo1.state = "CA" captureInfo1.street = "233 12th Street" captureInfo1.zipCode = "31909" captureInfo1.phone = "2129856472" captureInfo1.email = "test@yahoo.com" captureInfo1.cvv2 = "999" #Create invoice2 invoice2 = customerAccount.createRevenueTransaction() #code is optinal; if you specify the value, make sure the code is unique invoice2.code = "rb.rt-9-2" #all amounts are in cents invoice2.amount = 1500 #Item Codes must be setup in portal prior to being used invoice2.itemCode = "T-Shirt" #Type of transaction invoice2.accountActivityType = AccountActivityType::Invoice #Create payment2 payment2 = customerAccount.createAssetTransaction() #code is optinal; if you specify the value, make sure the code is unique payment2.code = "rb.at-9-2" #/all amounts are in cents payment2.amount = 1500 payment2.transactionType = AssetTransactionType::Visa payment2.accountActivityType = AccountActivityType::Payment #Credit card number to charge payment2.accountNumber = "4111111111111111" #Credit card expiration date payment2.accessory = "1209" #Add processing specific info (for better qualification rates) captureInfo2 = payment2.captureInfo captureInfo2.holderName = "John Smith" captureInfo2.city = "Columbus" captureInfo2.state = "CA" captureInfo2.street = "233 12th Street" captureInfo2.zipCode = "31909" captureInfo2.phone = "2129856472" captureInfo2.email = "test@yahoo.com" captureInfo2.cvv2 = "999" #Mark object for persistence session.save(customerAccount) #Synchronize changes with the server begin session.synchronize() rescue Exception => ex #Be sure to properly handle exception, this is just a sample solution puts(ex.message) return end #Logout session.logout()