From Intrannuity
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();
?>