<?php

// Include required library files.
require_once '../includes/config.php';
require_once '../includes/paypal.class.php';
// Create PayPal object.
$PayPalConfig = array('Sandbox' => $sandbox, 'APIUsername' => $api_username, 'APIPassword' => $api_password, 'APISignature' => $api_signature);
$PayPal = new PayPal($PayPalConfig);
// Prepare request arrays
$CRPPFields = array('token' => '');
$ProfileDetails = array('subscribername' => '', 'profilestartdate' => '', 'profilereference' => '');
$ScheduleDetails = array('desc' => '', 'maxfailedpayments' => '', 'autobilloutamt' => '');
$BillingPeriod = array('trialbillingperiod' => '', 'trialbillingfrequency' => '', 'trialtotalbillingcycles' => '', 'trialamt' => '', 'billingperiod' => '', 'billingfrequency' => '', 'totalbillingcycles' => '', 'amt' => '', 'currencycode' => '', 'shippingamt' => '', 'taxamt' => '');
$ActivationDetails = array('initamt' => '', 'failedinitamtaction' => '');
$CCDetails = array('creditcardtype' => '', 'acct' => '', 'expdate' => '', 'cvv2' => '', 'startdate' => '', 'issuenumber' => '');
$PayerInfo = array('email' => '', 'payerid' => '', 'payerstatus' => '', 'business' => '');
$PayerName = array('salutation' => '', 'firstname' => '', 'middlename' => '', 'lastname' => '', 'suffix' => '');
$BillingAddress = array('street' => '', 'street2' => '', 'city' => '', 'state' => '', 'countrycode' => '', 'zip' => '', 'phonenum' => '');
$ShippingAddress = array('shiptoname' => '', 'shiptostreet' => '', 'shiptostreet2' => '', 'shiptocity' => '', 'shiptostate' => '', 'shiptozip' => '', 'shiptocountry' => '', 'shiptophonenum' => '');
// For order items you populate a nested array with multiple $Item arrays.  Normally you'll be looping through cart items to populate the $Item
// array and then push it into the $OrderItems array at the end of each loop for an entire collection of all items in $OrderItems.
$OrderItems = array();
$Item = array('l_itemcategory' => '', 'l_name' => '', 'l_desc' => '', 'l_amt' => '', 'l_number' => '', 'l_qty' => '', 'l_taxamt' => '');
array_push($OrderItems, $Item);
$PayPalRequestData = array('CRPPFields' => $CRPPFields, 'ProfileDetails' => $ProfileDetails, 'ScheduleDetails' => $ScheduleDetails, 'BillingPeriod' => $BillingPeriod, 'ActivationDetails' => $ActivationDetails, 'CCDetails' => $CCDetails, 'PayerInfo' => $PayerInfo, 'PayerName' => $PayerName, 'BillingAddress' => $BillingAddress, 'ShippingAddress' => $ShippingAddress, 'OrderItems' => $OrderItems);
// Pass data into class for processing with PayPal and load the response array into $PayPalResult
$PayPalResult = $PayPal->CreateRecurringPaymentsProfile($PayPalRequestData);
// Write the contents of the response array to the screen for demo purposes.
echo '<pre />';
print_r($PayPalResult);