add money helper
parent
185da85155
commit
c2a0343854
|
@ -359,6 +359,11 @@ namespace OpenSim.Modules.Currency
|
||||||
HttpServer.AddXmlRPCHandler("SendMoney", SendMoneyHandler); // added
|
HttpServer.AddXmlRPCHandler("SendMoney", SendMoneyHandler); // added
|
||||||
HttpServer.AddXmlRPCHandler("MoveMoney", MoveMoneyHandler); // added
|
HttpServer.AddXmlRPCHandler("MoveMoney", MoveMoneyHandler); // added
|
||||||
|
|
||||||
|
HttpServer.AddXmlRPCHandler("getCurrencyQuote", quote_func);
|
||||||
|
HttpServer.AddXmlRPCHandler("buyCurrency", buy_func);
|
||||||
|
HttpServer.AddXmlRPCHandler("preflightBuyLandPrep", preflightBuyLandPrep_func);
|
||||||
|
HttpServer.AddXmlRPCHandler("buyLandPrep", landBuy_func);
|
||||||
|
|
||||||
MainServer.Instance.AddXmlRPCHandler("OnMoneyTransfered", OnMoneyTransferedHandler);
|
MainServer.Instance.AddXmlRPCHandler("OnMoneyTransfered", OnMoneyTransferedHandler);
|
||||||
MainServer.Instance.AddXmlRPCHandler("UpdateBalance", BalanceUpdateHandler);
|
MainServer.Instance.AddXmlRPCHandler("UpdateBalance", BalanceUpdateHandler);
|
||||||
MainServer.Instance.AddXmlRPCHandler("UserAlert", UserAlertHandler);
|
MainServer.Instance.AddXmlRPCHandler("UserAlert", UserAlertHandler);
|
||||||
|
@ -1895,6 +1900,132 @@ namespace OpenSim.Modules.Currency
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region moneyhelper
|
||||||
|
private XmlRpcResponse quote_func(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
|
{
|
||||||
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
|
string agentIdStr = requestData["agentId"] as string;
|
||||||
|
UUID agentId = UUID.Parse(agentIdStr);
|
||||||
|
UUID sessionId = UUID.Parse(requestData["secureSessionId"] as string);
|
||||||
|
int amount = (int)requestData["currencyBuy"];
|
||||||
|
|
||||||
|
XmlRpcResponse returnval = new XmlRpcResponse();
|
||||||
|
Hashtable quoteResponse = new Hashtable();
|
||||||
|
Hashtable currencyResponse = new Hashtable();
|
||||||
|
|
||||||
|
currencyResponse.Add("estimatedCost", amount / 2);
|
||||||
|
currencyResponse.Add("currencyBuy", amount);
|
||||||
|
|
||||||
|
quoteResponse.Add("success", true);
|
||||||
|
quoteResponse.Add("currency", currencyResponse);
|
||||||
|
|
||||||
|
// TODO - generate a unique confirmation token
|
||||||
|
quoteResponse.Add("confirm", "asdfad9fj39ma9fj");
|
||||||
|
|
||||||
|
returnval.Value = quoteResponse;
|
||||||
|
return returnval;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlRpcResponse buy_func(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
|
{
|
||||||
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
UUID agentId = UUID.Parse(requestData["agentId"] as string);
|
||||||
|
string confirm = requestData["confirm"] as string;
|
||||||
|
int currencyBuy = (int)requestData["currencyBuy"];
|
||||||
|
int estimatedCost = (int)requestData["estimatedCost"];
|
||||||
|
string secureSessionId = requestData["secureSessionId"] as string;
|
||||||
|
|
||||||
|
// Fill parameters for money transfer XML-RPC.
|
||||||
|
Hashtable paramTable = new Hashtable();
|
||||||
|
paramTable["agentId"] = agentId.ToString();
|
||||||
|
paramTable["amount"] = currencyBuy;
|
||||||
|
|
||||||
|
XmlRpcResponse returnval = new XmlRpcResponse();
|
||||||
|
Hashtable returnresp = new Hashtable();
|
||||||
|
|
||||||
|
// Generate the request for transfer.
|
||||||
|
Hashtable resultTable = genericCurrencyXMLRPCRequest(paramTable, "GetFreeMoney");
|
||||||
|
|
||||||
|
if (resultTable != null && resultTable.Contains("success"))
|
||||||
|
{
|
||||||
|
if ((bool)resultTable["success"] == true)
|
||||||
|
{
|
||||||
|
returnresp.Add("success", true);
|
||||||
|
returnresp.Add("errorMessage", "");
|
||||||
|
returnresp.Add("errorUrl", "http://invaliddomaininvalid.com/");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnresp.Add("success", false);
|
||||||
|
returnresp.Add("errorMessage", m_config.Configs["Economy"].GetString("Message_FreePayoutDenied", "Sorry. You cant get money from the system right now!"));
|
||||||
|
returnresp.Add("errorUrl", m_config.Configs["Economy"].GetString("ErrorURL", "http://127.0.0.1"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnresp.Add("success", false);
|
||||||
|
returnresp.Add("errorMessage", "FATAL ERROR. An unexpected fault is happend. Please try again or contact the region owner.");
|
||||||
|
returnresp.Add("errorUrl", m_config.Configs["Economy"].GetString("ErrorURL", "http://127.0.0.1"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
returnval.Value = returnresp;
|
||||||
|
return returnval;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlRpcResponse preflightBuyLandPrep_func(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
|
{
|
||||||
|
XmlRpcResponse ret = new XmlRpcResponse();
|
||||||
|
Hashtable retparam = new Hashtable();
|
||||||
|
Hashtable membershiplevels = new Hashtable();
|
||||||
|
ArrayList levels = new ArrayList();
|
||||||
|
Hashtable level = new Hashtable();
|
||||||
|
level.Add("id", "00000000-0000-0000-0000-000000000000");
|
||||||
|
level.Add("description", "some level");
|
||||||
|
levels.Add(level);
|
||||||
|
//membershiplevels.Add("levels",levels);
|
||||||
|
|
||||||
|
Hashtable landuse = new Hashtable();
|
||||||
|
landuse.Add("upgrade", false);
|
||||||
|
landuse.Add("action", "http://invaliddomaininvalid.com/");
|
||||||
|
|
||||||
|
Hashtable currency = new Hashtable();
|
||||||
|
currency.Add("estimatedCost", 0);
|
||||||
|
|
||||||
|
Hashtable membership = new Hashtable();
|
||||||
|
membershiplevels.Add("upgrade", false);
|
||||||
|
membershiplevels.Add("action", "http://invaliddomaininvalid.com/");
|
||||||
|
membershiplevels.Add("levels", membershiplevels);
|
||||||
|
|
||||||
|
retparam.Add("success", true);
|
||||||
|
retparam.Add("currency", currency);
|
||||||
|
retparam.Add("membership", membership);
|
||||||
|
retparam.Add("landuse", landuse);
|
||||||
|
retparam.Add("confirm", "asdfajsdkfjasdkfjalsdfjasdf");
|
||||||
|
|
||||||
|
ret.Value = retparam;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlRpcResponse landBuy_func(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
|
{
|
||||||
|
XmlRpcResponse ret = new XmlRpcResponse();
|
||||||
|
Hashtable retparam = new Hashtable();
|
||||||
|
// Hashtable requestData = (Hashtable) request.Params[0];
|
||||||
|
|
||||||
|
// UUID agentId = UUID.Zero;
|
||||||
|
// int amount = 0;
|
||||||
|
|
||||||
|
retparam.Add("success", true);
|
||||||
|
ret.Value = retparam;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue