254 lines
7.5 KiB
C#
254 lines
7.5 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
using Games.Events;
|
|||
|
using Module.Log;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
public class SdkIosTraceless : SdkIosBase
|
|||
|
{
|
|||
|
private string serverListUri {
|
|||
|
get
|
|||
|
{
|
|||
|
return "http://rk.qyyjj.99you.cn/JjyApi/server/cid/" + platformId;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private string loginUri
|
|||
|
{
|
|||
|
get { return "http://rk.qyyjj.99you.cn/JjyApi/login/cid/" + platformId; }
|
|||
|
}
|
|||
|
|
|||
|
private string paymentUri
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return "http://rk.qyyjj.99you.cn/JjyApi/createOrder/cid/" + platformId;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 兑换码超链接
|
|||
|
private const string _redemptionUri = "http://rk.qyyjj.99you.cn/Gift/receiveGiftPackage";
|
|||
|
|
|||
|
private SdkUser _user;
|
|||
|
|
|||
|
public override string sdkAccount
|
|||
|
{
|
|||
|
get { return _user == null ? string.Empty : _user.id; }
|
|||
|
}
|
|||
|
|
|||
|
public override string platformId
|
|||
|
{
|
|||
|
get { return "3-10002"; }
|
|||
|
}
|
|||
|
|
|||
|
protected override string redemptionUri
|
|||
|
{
|
|||
|
get { return _redemptionUri; }
|
|||
|
}
|
|||
|
|
|||
|
protected override string noticeUri
|
|||
|
{
|
|||
|
get { return "http://rk.qyyjj.99you.cn/JjyApi/notice/cid/" + platformId; }
|
|||
|
}
|
|||
|
|
|||
|
public override bool IsLogin()
|
|||
|
{
|
|||
|
return _user != null;
|
|||
|
}
|
|||
|
|
|||
|
public override void GetServerList()
|
|||
|
{
|
|||
|
var data = new Dictionary<string, string>();
|
|||
|
data["uid"] = _user.id;
|
|||
|
data["token"] = _user.token;
|
|||
|
Debug.Log(string.Format("uid = {0}, token = {1}", _user.id, _user.token));
|
|||
|
var jsonDownloader = new DownloadJsonFile(serverListUri, 10f, data)
|
|||
|
{
|
|||
|
onDownloadComplete = OnGetServerListComplete
|
|||
|
};
|
|||
|
jsonDownloader.Start();
|
|||
|
}
|
|||
|
|
|||
|
public override void SubmitData(RoleDataSubmit submitType)
|
|||
|
{
|
|||
|
base.SubmitData(submitType);
|
|||
|
var roleData = GetRoleInfoDict(submitType);
|
|||
|
var builder = new StringBuilder();
|
|||
|
builder.Append(roleData["ServerId"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["ServerName"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["RoleId"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["RoleName"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["Level"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["CreateTime"]);
|
|||
|
SubmitRoleNative(builder.ToString());
|
|||
|
}
|
|||
|
|
|||
|
private void OnGetServerListComplete(DownloadJsonFile action)
|
|||
|
{
|
|||
|
var result = ParseServerList(action);
|
|||
|
EventDispatcher.GetInstance().Dispatch(EventId.ServerListCallback, result);
|
|||
|
}
|
|||
|
|
|||
|
public override void LoginPhp(int serverId)
|
|||
|
{
|
|||
|
var data = new Dictionary<string, string>();
|
|||
|
data["uid"] = _user.id;
|
|||
|
data["token"] = _user.token;
|
|||
|
data["server_id"] = serverId.ToString();
|
|||
|
data["recom_server_id"] = defaultServer.ToString();
|
|||
|
Debug.Log(string.Format("Login Php: uid = {0}, token = {1}, serverId = {2}, reconmServer = {3}", _user.id,
|
|||
|
_user.token, serverId, defaultServer));
|
|||
|
var jsonDownloader = new DownloadJsonFile(loginUri, 10f, data)
|
|||
|
{
|
|||
|
onDownloadComplete = OnPhpLoginComplete
|
|||
|
};
|
|||
|
jsonDownloader.Start();
|
|||
|
}
|
|||
|
|
|||
|
private void OnPhpLoginComplete(DownloadJsonFile action)
|
|||
|
{
|
|||
|
LoginPhpWithToken(action, _user.token);
|
|||
|
}
|
|||
|
|
|||
|
public override void Payment(int goodsId)
|
|||
|
{
|
|||
|
var playerData = GameManager.gameManager.PlayerDataPool;
|
|||
|
var data = new Dictionary<string, string>();
|
|||
|
data["serverId"] = LoginData.accountData.serverId.ToString();
|
|||
|
data["userRoleId"] = playerData.MainPlayerBaseAttr.Guid.ToString();
|
|||
|
data["goodsId"] = goodsId.ToString();
|
|||
|
data["mServerId"] = SdkControl.instance.currentServerData.m_id.ToString();
|
|||
|
data["level"] = playerData.MainPlayerBaseAttr.Level.ToString();
|
|||
|
var jsonDownloader = new DownloadJsonFile(paymentUri, 10f, data)
|
|||
|
{
|
|||
|
onDownloadComplete = OnPaymentPhpComplete
|
|||
|
};
|
|||
|
jsonDownloader.Start();
|
|||
|
}
|
|||
|
|
|||
|
private void OnPaymentPhpComplete(DownloadJsonFile action)
|
|||
|
{
|
|||
|
Dictionary<string, string> payData = null;
|
|||
|
if (!string.IsNullOrEmpty(action.error))
|
|||
|
Debug.LogError(action.error);
|
|||
|
else
|
|||
|
try
|
|||
|
{
|
|||
|
var json = action.jsonData;
|
|||
|
var msg = json["msg"].ToString();
|
|||
|
if (msg != "success")
|
|||
|
{
|
|||
|
Debug.LogError(string.Format("OnPaymentPhpComplete Error: " + msg));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
payData = new Dictionary<string, string>();
|
|||
|
var data = json["data"];
|
|||
|
payData["OrderId"] = data["orderId"].ToString();
|
|||
|
// 在try catch块里面做强转
|
|||
|
var yuan = data["price"].ToString();
|
|||
|
payData["Price"] = (int.Parse(yuan) * 100).ToString();
|
|||
|
// payData["Count"] = data["product_count"].ToString();
|
|||
|
payData["Id"] = data["productId"].ToString();
|
|||
|
payData["Name"] = data["productName"].ToString();
|
|||
|
payData["Desc"] = data["productDesc"].ToString();
|
|||
|
payData["Ext"] = data["ext"].ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception e)
|
|||
|
{
|
|||
|
Debug.LogError(e);
|
|||
|
payData = null;
|
|||
|
}
|
|||
|
|
|||
|
if (payData != null)
|
|||
|
{
|
|||
|
var roleData = GetRoleInfoDict(RoleDataSubmit.Other);
|
|||
|
var builder = new StringBuilder();
|
|||
|
builder.Append(payData["OrderId"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["ServerId"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(payData["Price"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(payData["Id"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(payData["Name"]);
|
|||
|
builder.Append(',');
|
|||
|
|
|||
|
builder.Append(payData["Ext"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["RoleId"]);
|
|||
|
builder.Append(',');
|
|||
|
builder.Append(roleData["RoleName"]);
|
|||
|
PaymentNative(builder.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override bool LoginComplete(string args)
|
|||
|
{
|
|||
|
var result = IsSuccess(args);
|
|||
|
if (result)
|
|||
|
{
|
|||
|
var argList = args.Split(',');
|
|||
|
if (argList.Length > 2)
|
|||
|
{
|
|||
|
_user = new SdkUser(argList[1].Trim(), argList[2].Trim());
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
result = false;
|
|||
|
LogModule.ErrorLog("Login success but with no enough args: " + args);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Login failed: " + args);
|
|||
|
}
|
|||
|
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
public override bool LogOutComplete(string args)
|
|||
|
{
|
|||
|
Debug.Log("Logout Complete: " + args);
|
|||
|
bool result;
|
|||
|
if (_user == null)
|
|||
|
{
|
|||
|
Debug.Log("Logout before login!");
|
|||
|
result = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
result = IsSuccess(args);
|
|||
|
}
|
|||
|
|
|||
|
if (result)
|
|||
|
_user = null;
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
public override bool PaymentComplete(string data)
|
|||
|
{
|
|||
|
var result = IsSuccess(data);
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
public class SdkUser
|
|||
|
{
|
|||
|
public readonly string id;
|
|||
|
public readonly string token;
|
|||
|
|
|||
|
public SdkUser(string id, string token)
|
|||
|
{
|
|||
|
this.id = id;
|
|||
|
this.token = token;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|