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