fix(sdk): 修复登录数据处理和账户绑定功能
- 修改Android端登录数据结构,统一使用loginData字段 - 添加JSON异常处理机制,避免解析错误导致崩溃 - 修复Unity端登录数据解析路径,从respObj.result改为loginData - 在账户绑定成功后更新账户信息,添加渠道标识 - 优化链接账户回调处理,支持登录数据的完整传递 - 修复代码格式和字符串拼接问题
This commit is contained in:
@@ -44,6 +44,8 @@ import org.json.JSONObject;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import kotlinx.serialization.json.Json;
|
||||||
|
|
||||||
public class SDKManager {
|
public class SDKManager {
|
||||||
|
|
||||||
private final static Handler handler = new Handler(Looper.getMainLooper());
|
private final static Handler handler = new Handler(Looper.getMainLooper());
|
||||||
@@ -78,9 +80,7 @@ public class SDKManager {
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
JSONObject serverResponse = new JSONObject(s);
|
JSONObject serverResponse = new JSONObject(s);
|
||||||
JSONObject userInfo = serverResponse.getJSONObject("result");
|
JSONObject userInfo = serverResponse.getJSONObject("result");
|
||||||
JSONObject userInfoResult = new JSONObject();
|
result.put("loginData", userInfo );
|
||||||
userInfoResult.put("result", userInfo);
|
|
||||||
result.put("respObj", userInfoResult);
|
|
||||||
} else {
|
} else {
|
||||||
result.put("errStr", s);
|
result.put("errStr", s);
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ public class SDKManager {
|
|||||||
|
|
||||||
private static SnsInfo tmpSnsInfo;
|
private static SnsInfo tmpSnsInfo;
|
||||||
public static void LinkAccount(String type, String userId)
|
public static void LinkAccount(String type, String userId)
|
||||||
{
|
{
|
||||||
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
|
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
|
||||||
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null)
|
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null)
|
||||||
{
|
{
|
||||||
@@ -171,10 +171,22 @@ public class SDKManager {
|
|||||||
SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
|
SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
|
||||||
if(bindcode == SDKCallBack.CODE_SUCCESS)
|
if(bindcode == SDKCallBack.CODE_SUCCESS)
|
||||||
{
|
{
|
||||||
String msg = "{\"code\":0, \"userId\": 0}";
|
try {
|
||||||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
JSONObject result = new JSONObject();
|
||||||
|
result.put("code", bindcode);
|
||||||
|
result.put("userId", userId);
|
||||||
|
|
||||||
|
JSONObject serverResponse = new JSONObject(bindmsg);
|
||||||
|
JSONObject userInfo = serverResponse.getJSONObject("result");
|
||||||
|
result.put("loginData", userInfo);
|
||||||
|
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, result.toString());
|
||||||
|
|
||||||
|
} catch (JSONException e) {
|
||||||
|
String msg = "{\"code\":1, \"userId\": 0}";
|
||||||
|
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(bindcode == 1)
|
else if(bindcode == SDKCallBack.CODE_FAILED)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -128,10 +128,10 @@ namespace tysdk
|
|||||||
|
|
||||||
/*================================================
|
/*================================================
|
||||||
|
|
||||||
_ _
|
_ _
|
||||||
/ \ ___ ___ ___ _ _ _ __ | |_
|
/ \ ___ ___ ___ _ _ _ __ | |_
|
||||||
/ _ \ / __/ __/ _ \| | | | '_ \| __|
|
/ _ \ / __/ __/ _ \| | | | '_ \| __|
|
||||||
/ ___ \ (_| (_| (_) | |_| | | | | |_
|
/ ___ \ (_| (_| (_) | |_| | | | | |_
|
||||||
/_/ \_\___\___\___/ \__,_|_| |_|\__|
|
/_/ \_\___\___\___/ \__,_|_| |_|\__|
|
||||||
|
|
||||||
=================================================*/
|
=================================================*/
|
||||||
@@ -259,7 +259,7 @@ namespace tysdk
|
|||||||
|
|
||||||
if (code == 0)
|
if (code == 0)
|
||||||
{
|
{
|
||||||
var loginData = data["respObj"]["result"];
|
var loginData = data["loginData"];
|
||||||
|
|
||||||
var userId = (int)loginData["userId"];
|
var userId = (int)loginData["userId"];
|
||||||
var token = (string)loginData["token"];
|
var token = (string)loginData["token"];
|
||||||
@@ -326,6 +326,7 @@ namespace tysdk
|
|||||||
|
|
||||||
if (_accountInfo != null)
|
if (_accountInfo != null)
|
||||||
{
|
{
|
||||||
|
_accountInfo.channel = accoutType;
|
||||||
_accountInfo.AddLinkedAccount(accoutType);
|
_accountInfo.AddLinkedAccount(accoutType);
|
||||||
_accountInfo.Save();
|
_accountInfo.Save();
|
||||||
}
|
}
|
||||||
@@ -353,6 +354,27 @@ namespace tysdk
|
|||||||
result.bindInfo = JsonConvert.DeserializeObject<Dictionary<string, string>>(data.GetValue(@"bindInfo").ToString());
|
result.bindInfo = JsonConvert.DeserializeObject<Dictionary<string, string>>(data.GetValue(@"bindInfo").ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (result.code == 0 && data.ContainsKey("loginData"))
|
||||||
|
{
|
||||||
|
var loginData = data["loginData"];
|
||||||
|
|
||||||
|
var userId = (int)loginData["userId"];
|
||||||
|
var token = (string)loginData["token"];
|
||||||
|
var jwtToken = (string)loginData["jwttoken"];
|
||||||
|
|
||||||
|
var savedInfo = AccountInfo.GetSavedAccoutInfo();
|
||||||
|
if (savedInfo == null || savedInfo.userId != userId)
|
||||||
|
{
|
||||||
|
_accountInfo = new AccountInfo()
|
||||||
|
{
|
||||||
|
userId = (int)loginData["userId"],
|
||||||
|
userName = (string)loginData["userName"],
|
||||||
|
avatar = (string)loginData["purl"],
|
||||||
|
token = (string)loginData["token"],
|
||||||
|
jwtToken = (string)loginData["jwttoken"],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
TYSDKCallbackManager.Instance.TryTriggerCallback(result);
|
TYSDKCallbackManager.Instance.TryTriggerCallback(result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -392,8 +414,8 @@ namespace tysdk
|
|||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"[TYSdkFacade] CheckLinkResult error: {e}");
|
Debug.LogWarning($"[TYSdkFacade] CheckLinkResult error: {e}");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,7 +481,7 @@ namespace tysdk
|
|||||||
|
|
||||||
string listStr = string.Join("&", list.ToArray());
|
string listStr = string.Join("&", list.ToArray());
|
||||||
string sign = listStr +
|
string sign = listStr +
|
||||||
"csh-api-6dfa879490a249be9fbc92e97e4d898d-api-csh";
|
"csh-api-6dfa879490a249be9fbc92e97e4d898d-api-csh";
|
||||||
//对sign进行MD5加密
|
//对sign进行MD5加密
|
||||||
string signMd5 = CalculateMD5Hash(sign);
|
string signMd5 = CalculateMD5Hash(sign);
|
||||||
string url = $"{tycs}?{listStr}&sign={signMd5}&isAbroad=1&lan=en";
|
string url = $"{tycs}?{listStr}&sign={signMd5}&isAbroad=1&lan=en";
|
||||||
@@ -490,4 +512,4 @@ namespace tysdk
|
|||||||
return sBuilder.ToString();
|
return sBuilder.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user