Scenario 2: PHP

From Intrannuity

Jump to: navigation, search

Download Source File

<?php
 
 
require_once "lib/iBilling.php";
 
	//Set up clients' settings
	$config = new HashMap();
	$config->put(SessionConnection::PROCESSOR_HOST, "http://server.ibillingclient.org/ibilling/xmlhttps");
	$config->put(SessionConnection::PAYMENT_OPTION_VERIFICATION_AMOUNT, 99);
	$config->put("debug", true);
	//Login
	$session = Session::login(2000, "welcome", $config);
	//Create customer account
	$customerAccount = $session->createCustomerAccount();
	//code is optinal; if you specify the value, make sure the code is unique
	$customerAccount->setCode("php.ca-2");
	$customerAccount->setMerchantAccountCode(2001);
	$customerAccount->setFirstName("John");
	$customerAccount->setLastName("Smith");
	$customerAccount->setType(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("php.po-2");
	$paymentOption->setHolderName("John Smith");
	$paymentOption->setNumber("1000121279381");
	//routing number
	$paymentOption->setAccessory("610000227");
	$paymentOption->setType(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("php.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(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(<DateTime>);
	$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("php.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(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("php.at-2");
	//all amounts are in cents
	$transaction->setAmount(5000);
	$transaction->setTransactionType(AssetTransactionType::Visa);
	//Credit card number to charge
	$transaction->setAccountNumber("4111111111111111");
	//Credit card expiration date
	$transaction->setAccessory("1209");
	//Type of transaction
	$transaction->setAccountActivityType(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
		print($ex->getMessage());
		return ;
	}
	//Get info from customer account
	print($customerAccount->getCode());
	print($customerAccount->getFirstName());
	print($customerAccount->getLastName());
	print($customerAccount->getCreateDate()->format('m/d/Y'));
	//Get info from payment option
	print($paymentOption->getCode());
	print($paymentOption->getAccessory());
	print($paymentOption->getNumber());
	print($paymentOption->getCreateDate()->format('m/d/Y'));
	//Get info from payment plan
	print($paymentPlan->getCode());
	print($paymentPlan->getFirstBillingDate()->format('m/d/Y'));
	print($paymentPlan->getBillingCycleCode());
	print($paymentPlan->getCreateDate()->format('m/d/Y'));
	//Get info from revenue transaction
	print($revenueTransaction->getCode());
	print($revenueTransaction->getAmount());
	print($revenueTransaction->getAccountActivityType());
	print($revenueTransaction->getCreateDate()->format('m/d/Y'));
	//Get info from asset transaction
	print($transaction->getCode());
	print($transaction->getAccessory());
	print($transaction->getAccountNumber());
	print($transaction->getCreateDate()->format('m/d/Y'));
	//Get info from capture info
	print($captureInfo->getReturnType());
	print($captureInfo->getApprovalCode());
	print($captureInfo->getReferenceNumber());
	//logout
	$session->logout();
 
 
 
?>
Personal tools