$FundingTypes = array('ECHECK', 'BALANCE', 'CREDITCARD'); // Funding constrainigs require advanced permissions levels. $Receivers = array(); $Receiver = array('Amount' => '', 'Email' => '', 'InvoiceID' => '', 'PaymentType' => '', 'PaymentSubType' => '', 'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => ''), 'Primary' => ''); array_push($Receivers, $Receiver); $SenderIdentifierFields = array('UseCredentials' => ''); $AccountIdentifierFields = array('Email' => '', 'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => '')); // SetPaymentOptions $SPOFields = array('PayKey' => '', 'ShippingAddressID' => ''); $DisplayOptions = array('EmailHeaderImageURL' => '', 'EmailMarketingImageURL' => '', 'HeaderImageURL' => '', 'BusinessName' => ''); $InstitutionCustomer = array('CountryCode' => '', 'DisplayName' => '', 'InstitutionCustomerEmail' => '', 'FirstName' => '', 'LastName' => '', 'InstitutionCustomerID' => '', 'InstitutionID' => ''); $SenderOptions = array('RequireShippingAddressSelection' => ''); // Begin loop to populate receiver options. $ReceiverOptions = array(); $ReceiverOption = array('Description' => '', 'CustomID' => ''); $InvoiceData = array('TotalTax' => '', 'TotalShipping' => ''); $InvoiceItems = array(); $InvoiceItem = array('Name' => '', 'Identifier' => '', 'Price' => '', 'ItemPrice' => '', 'ItemCount' => ''); array_push($InvoiceItems, $InvoiceItem); $ReceiverIdentifier = array('Email' => '', 'PhoneCountryCode' => '', 'PhoneNumber' => '', 'PhoneExtension' => ''); $ReceiverOption['InvoiceData'] = $InvoiceData; $ReceiverOption['InvoiceItems'] = $InvoiceItems; $ReceiverOption['ReceiverIdentifier'] = $ReceiverIdentifier; array_push($ReceiverOptions, $ReceiverOption); // End receiver options loop $PayPalRequestData = array('PayRequestFields' => $PayRequestFields, 'ClientDetailsFields' => $ClientDetailsFields, 'FundingTypes' => $FundingTypes, 'Receivers' => $Receivers, 'SenderIdentifierFields' => $SenderIdentifierFields, 'AccountIdentifierFields' => $AccountIdentifierFields, 'SPOFields' => $SPOFields, 'DisplayOptions' => $DisplayOptions, 'InstitutionCustomer' => $InstitutionCustomer, 'SenderOptions' => $SenderOptions, 'ReceiverOptions' => $ReceiverOptions); // Pass data into class for processing with PayPal and load the response array into $PayPalResult $PayPalResult = $PayPal->PayWithOptions($PayPalRequestData); // Write the contents of the response array to the screen for demo purposes. echo '<pre />'; print_r($PayPalResult);