111 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?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.
 | |
| #
 | |
| 
 | |
| # updated for Robust installations: BlueWall 2011
 | |
| # further minor changes by justincc (http://justincc.org)
 | |
| 
 | |
|   # Tables
 | |
|   $presence = "Presence";
 | |
| 
 | |
|   # XMLRPC
 | |
|   $xmlrpc_server = xmlrpc_server_create();
 | |
|   xmlrpc_server_register_method($xmlrpc_server, "preflightBuyLandPrep", "buy_land_prep");
 | |
| 
 | |
|   function validate_user($agent_id, $s_session_id)
 | |
|   {
 | |
|     $stmt = $RUNTIME['PDO']->prepare("SELECT UserID FROM Presence WHERE UserID=? AND SecureSessionID = ?");
 | |
|     $stmt->execute(array($agent_id, $s_session_id));
 | |
| 
 | |
|     if($stmt->rowCount() == 0) {
 | |
|       return false;
 | |
|     }
 | |
| 
 | |
|     $res = $stmt->fetch();
 | |
|     return $res['UserID'];
 | |
|   }
 | |
| 
 | |
|   function buy_land_prep($method_name, $params, $app_data)
 | |
|   {
 | |
|     $confirmvalue = "";
 | |
|     $req = $params[0];
 | |
|     $agentid = $req['agentId'];
 | |
|     $sessionid = $req['secureSessionId'];
 | |
|     $amount = $req['currencyBuy'];
 | |
|     $billableArea = $req['billableArea'];
 | |
| 
 | |
|     $ID = validate_user($agentid, $sessionid);
 | |
| 
 | |
|     if($ID)
 | |
|     {
 | |
|       $membership_levels = array(
 | |
|         'levels' => array(
 | |
|         'id' => "00000000-0000-0000-0000-000000000000",
 | |
|         'description' => "some level"));
 | |
| 
 | |
|       $landUse = array(
 | |
|         'upgrade' => False,
 | |
|         'action'  => "".SYSURL."");
 | |
| 
 | |
|       $currency = array(
 | |
|         'estimatedCost' =>  "200.00");     // 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));
 | |
| 
 | |
|        header("Content-type: text/xml");
 | |
|        print $response_xml;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       header("Content-type: text/xml");
 | |
|       $response_xml = xmlrpc_encode(array(
 | |
|         'success' => False,
 | |
|         'errorMessage' => "\n\nUnable to Authenticate\n\nClick URL for more info.",
 | |
|         'errorURI' => "".SYSURL.""));
 | |
| 
 | |
|       print $response_xml;
 | |
|     }
 | |
| 
 | |
|     return "";
 | |
|   }
 | |
| 
 | |
|   $request_xml = file_get_contents('php://input');
 | |
|   xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');
 | |
|   xmlrpc_server_destroy($xmlrpc_server);
 | |
| 
 | |
| ?>
 |