add money helper

master
Christopher Latza 2020-06-24 17:38:08 +02:00
parent 185da85155
commit c2a0343854
1 changed files with 132 additions and 1 deletions

View File

@ -359,6 +359,11 @@ namespace OpenSim.Modules.Currency
HttpServer.AddXmlRPCHandler("SendMoney", SendMoneyHandler); // 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("UpdateBalance", BalanceUpdateHandler);
MainServer.Instance.AddXmlRPCHandler("UserAlert", UserAlertHandler);
@ -1895,6 +1900,132 @@ namespace OpenSim.Modules.Currency
}
#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
}
}