clockwerk-www – Rev
?pathlinks?
<?php
#
# Copyright (c)Melanie Thielker and Teravus Ovares (http://opensimulator.org/)
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the OpenSim Project nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
//////////////////////////////////////////////////////////////////////////////
//
// Modified by Fumi.Iseki for CMS/LMS '09 5/31
//
require_once('../include/env_interface.php');
require_once('./helpers.php');
###################### No user serviceable parts below #####################
#
# The XMLRPC server object
#
$xmlrpc_server = xmlrpc_server_create();
#
# Land purchase sections
#
# Functions are called by the viewer directly.
#
#
# Land buying functions
#
xmlrpc_server_register_method($xmlrpc_server, "preflightBuyLandPrep", "buy_land_prep");
function buy_land_prep($method_name, $params, $app_data)
{
$req = $params[0];
$agentid = $req['agentId'];
$sessionid = $req['secureSessionId'];
$amount = $req['currencyBuy'];
$billableArea = $req['billableArea'];
$ipAddress = $_SERVER['REMOTE_ADDR'];
$ret = opensim_check_secure_session($agentid, null, $sessionid);
if($ret) {
$confirmvalue = get_confirm_value($ipAddress);
$membership_levels = array('levels' => array('id' => "00000000-0000-0000-0000-000000000000", 'description' => "some level"));
$landUse = array('upgrade' => False, 'action' => "".SYSURL."");
$currency = array('estimatedCost' => convert_to_real($amount));
$membership = array('upgrade' => False, 'action' => "".SYSURL."", 'levels' => $membership_levels);
$response_xml = xmlrpc_encode(array('success' => True,
'currency' => $currency,
'membership'=> $membership,
'landUse' => $landUse,
'currency' => $currency,
'confirm' => $confirmvalue));
}
else {
$response_xml = xmlrpc_encode(array( 'success' => False,
'errorMessage' => "Unable to Authenticate\n\nClick URL for more info.",
'errorURI' => "".SYSURL.""));
}
header("Content-type: text/xml");
echo $response_xml;
return "";
}
#
# Perform the buy
#
xmlrpc_server_register_method($xmlrpc_server, "buyLandPrep", "buy_land");
function buy_land($method_name, $params, $app_data)
{
$req = $params[0];
$agentid = $req['agentId'];
$sessionid = $req['secureSessionId'];
$amount = $req['currencyBuy'];
$cost = $req['estimatedCost'];
$billableArea = $req['billableArea'];
$confim = $req['confirm'];
$ipAddress = $_SERVER['REMOTE_ADDR'];
//
if ($confim!=get_confirm_value($ipAddress)) {
$response_xml = xmlrpc_encode(array('success' => False,
'errorMessage'=> "\n\nMissmatch Confirm Value!!",
'errorURI' => "".SYSURL.""));
header("Content-type: text/xml");
echo $response_xml;
return "";
}
$ret = opensim_check_secure_session($agentid, null, $sessionid);
if ($ret) {
if($amount>=0) {
if(!process_transaction($agentid, $real, $ipAddress)) {
$response_xml = xmlrpc_encode(array(
'success' => False,
'errorMessage' => "\n\nThe gateway has declined your transaction. Please update your payment method AND try again later.",
'errorURI' => "".SYSURL.""));
}
move_money($agentid, null, $amount, 5002, 0, "Land Purchase", 0, 0, $ipAddress);
update_simulator_balance($agentid, -1, $sessionid);
$response_xml = xmlrpc_encode(array('success' => True));
}
else {
$response_xml = xmlrpc_encode(array('success' => False,
'errorMessage'=> "\n\nYou do not have sufficient funds for this purchase",
'errorURI' => "".SYSURL.""));
}
}
else {
$response_xml = xmlrpc_encode(array('success' => False,
'errorMessage' => "\n\nUnable to Authenticate\n\nClick URL for more info.",
'errorURI' => "".SYSURL.""));
}
header("Content-type: text/xml");
echo $response_xml;
return "";
}
#
# Process XMLRPC request
#
$request_xml = $HTTP_RAW_POST_DATA;
//error_log("landtool.php: ".$request_xml);
xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');
xmlrpc_server_destroy($xmlrpc_server);
?>