}
    // Arg order is brittle, assumes constant return ordering from eBay
    public function GetMemberMessages($Timestamp, $Ack, $CorrelationID, $Version, $Build, $NotificationEventName, $RecipientUserID, $MemberMessage, $PaginationResult, $HasMoreItems)
    {
        // Extract some data to prove this is working
        $UserID = $MemberMessage->MemberMessageExchange->Item->Seller->UserID;
        $this->carp($UserID);
        return $UserID;
    }
    public function GetItem($Timestamp, $Ack, $CorrelationID, $Version, $Build, $NotificationEventName, $RecipientUserID, $Item)
    {
        $ItemID = $Item->ItemID;
        return "OutBid: {$ItemID}";
    }
}
$config = parse_ini_file('ebay.ini', true);
$site = 'sandbox';
$dev = $config[$site]['devId'];
$app = $config[$site]['appId'];
$cert = $config[$site]['cert'];
// Create and configure session
$session = new eBaySession($dev, $app, $cert);
error_log(serialize(apache_request_headers()));
//error_log("trying to listen");
$stdin = $GLOBALS['HTTP_RAW_POST_DATA'];
//file_put_contents('GetItemRequest.xml', $stdin);
error_log($stdin);
$server = new SOAPServer(null, array('uri' => 'urn:ebay:apis:eBLBaseComponents'));
$server->setClass('eBayPlatformNotificationListener', $session, true);
$server->handle();