Scenario 2: CFScript

From Intrannuity

Jump to: navigation, search

Download Source File

<cfscript>
	// Create Session component
	session = CreateObject( 'component', 'Session' );
	// Login
	session.login(2000, "password", "http://server.ibillingclient.org/ibilling/xmlhttps");
	// Create customer account
	customerAccount  = session.createCustomerAccount();
	// code is optinal; if you specify the value, make sure the code is unique
	customerAccount.setCode("cfs.ca-2");
	customerAccount.setMerchantAccountCode(2001);
	customerAccount.setFirstName("John");
	customerAccount.setLastName("Smith");
	customerAccount.setType(session.CustomerAccountType().Male());
	customerAccount.setHomePhone("2129856472");
	customerAccount.setEmail("test@yahoo.com");
	customerAccount.setStreet1("233 12th Street");
	customerAccount.setCity("Columbus");
	customerAccount.setState("NY");
	customerAccount.setZipCode("31909");
	// Create payment option
	paymentOption  = customerAccount.createPaymentOption();
	// code is optinal; if you specify the value, make sure the code is unique
	paymentOption.setCode("cfs.po-2");
	paymentOption.setHolderName("John Smith");
	paymentOption.setNumber("1000121279381");
	// routing number
	paymentOption.setAccessory("610000227");
	paymentOption.setType(session.PaymentOptionType().Checking());
	paymentOption.setStreet1("233 12th Street");
	paymentOption.setCity("Columbus");
	paymentOption.setState("CA");
	paymentOption.setZipCode("31909");
	// Create payment plan
	paymentPlan  = customerAccount.createPaymentPlan();
	// code is optinal; if you specify the value, make sure the code is unique
	paymentPlan.setCode("cfs.pp-2");
	// all amounts are in cents
	paymentPlan.setAmount(1000);
	// Item Codes must be setup in portal prior to being used
	paymentPlan.setItemCode("Membership");
	paymentPlan.setType(session.PaymentPlanType().Perpetual());
	// Billing Cycle codes must be setup in portal prior to being used
	paymentPlan.setBillingCycleCode("W01");
	// Specify desired billing date; if nothing specified, next billing date of the selected cycle assumed
	// paymentPlan.setFirstBillingDate(<Date>);
	paymentPlan.setPaymentOption(paymentOption);
	// Create invoice for downpayment
	revenueTransaction  = customerAccount.createRevenueTransaction();
	// code is optinal; if you specify the value, make sure the code is unique
	revenueTransaction.setCode("cfs.rt-2");
	// ll amounts are in cents
	revenueTransaction.setAmount(5000);
	// Item Codes must be setup in portal prior to being used
	revenueTransaction.setItemCode("Membership");
	// Type of transaction
	revenueTransaction.setAccountActivityType(session.AccountActivityType().Invoice());
	// Create payment for downpayment
	transaction  = customerAccount.createAssetTransaction();
	// code is optinal; if you specify the value, make sure the code is unique
	transaction.setCode("cfs.at-2");
	// all amounts are in cents
	transaction.setAmount(5000);
	transaction.setTransactionType(session.AssetTransactionType().Visa());
	// Credit card number to charge
	transaction.setAccountNumber("4111111111111111");
	// Credit card expiration date
	transaction.setAccessory("1209");
	// Type of transaction
	transaction.setAccountActivityType(session.AccountActivityType().Payment());
	// Add processing specific info (for better qualification rates
	captureInfo  = transaction.getCaptureInfo();
	captureInfo.setHolderName("John Smith");
	captureInfo.setCity("Columbus");
	captureInfo.setState("CA");
	captureInfo.setStreet("233 12th Street");
	captureInfo.setZipCode("31909");
	captureInfo.setPhone("2129856472");
	captureInfo.setEmail("test@yahoo.com");
	captureInfo.setCvv2("999");
	// Mark object for persistence
	session.save(customerAccount);
	// Synchronize changes with the server
	try{
		session.synchronize();
	}
	catch(Exception ex){
		// Be sure to properly handle exception, this is just a sample solution
		WriteOutput(ex.message);
		return ;
	}
	// Get info from customer account
	WriteOutput(customerAccount.getCode());
	WriteOutput(customerAccount.getFirstName());
	WriteOutput(customerAccount.getLastName());
	WriteOutput(customerAccount.getCreateDate());
	// Get info from payment option
	WriteOutput(paymentOption.getCode());
	WriteOutput(paymentOption.getAccessory());
	WriteOutput(paymentOption.getNumber());
	WriteOutput(paymentOption.getCreateDate());
	// Get info from payment plan
	WriteOutput(paymentPlan.getCode());
	WriteOutput(paymentPlan.getFirstBillingDate());
	WriteOutput(paymentPlan.getBillingCycleCode());
	WriteOutput(paymentPlan.getCreateDate());
	// Get info from revenue transaction
	WriteOutput(revenueTransaction.getCode());
	WriteOutput(revenueTransaction.getAmount());
	WriteOutput(revenueTransaction.getAccountActivityType());
	WriteOutput(revenueTransaction.getCreateDate());
	// Get info from asset transaction
	WriteOutput(transaction.getCode());
	WriteOutput(transaction.getAccessory());
	WriteOutput(transaction.getAccountNumber());
	WriteOutput(transaction.getCreateDate());
	// Get info from capture info
	WriteOutput(captureInfo.getReturnType());
	WriteOutput(captureInfo.getApprovalCode());
	WriteOutput(captureInfo.getReferenceNumber());
	// logout
	session.logout();
 
 
</cfscript>

Download Source File

Personal tools