188 lines
6.4 KiB
C#
188 lines
6.4 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using MiniJSON;
|
|
|
|
public class SDKCallBack : MonoBehaviour
|
|
{
|
|
public static SDKCallBack Instance { get; private set; }
|
|
|
|
public System.Action<int, string> AuthCallback { get; set; }
|
|
public System.Action ShareCallback { get; set; }
|
|
|
|
void Awake()
|
|
{
|
|
Instance = this;
|
|
}
|
|
|
|
public void OnShareAction()
|
|
{
|
|
if (ShareCallback != null) ShareCallback();
|
|
}
|
|
|
|
#region 微信登录回调
|
|
public void WXGetToken(string code)
|
|
{
|
|
WXApplyToken(code);
|
|
}
|
|
|
|
public void CheckAccessToken()
|
|
{
|
|
if (!string.IsNullOrEmpty(WXData.AccessToken) && !string.IsNullOrEmpty(WXData.OpenID))
|
|
{
|
|
WXCheckToken();
|
|
}
|
|
else
|
|
{
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
}
|
|
}
|
|
|
|
|
|
void WXApplyToken(string code)
|
|
{
|
|
string url = WXData.GetApplyTokenURL(code);
|
|
//Debugger.Log("url:" + url);
|
|
//Debug.LogError("2222222222222222222222222==================");
|
|
//Debug.LogError(url);
|
|
//GRoot.inst.ShowModalWait();
|
|
if (AuthCallback != null) AuthCallback(10, null);
|
|
|
|
|
|
BestHTTP.HTTPManager.SendRequest(url, (request, response) =>
|
|
{
|
|
//Debug.LogError("33333333333333333333333333333333333=================" + url);
|
|
if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess)
|
|
{
|
|
//Debug.LogError("4444444444444444444444444444=================" + request.Response.DataAsText);
|
|
//Debug.LogError(request.Response.DataAsText);
|
|
//Debugger.Log(request.Response.DataAsText);
|
|
Hashtable jd = (Hashtable)Json.Deserialize(request.Response.DataAsText);
|
|
WXData.RefreshToken = (string)jd["refresh_token"];
|
|
Debug.LogError("WXData.RefreshToken"+WXData.RefreshToken);
|
|
WXData.AccessToken = (string)jd["access_token"];
|
|
Debug.LogError("WXData.AccessToken"+WXData.AccessToken);
|
|
WXData.OpenID = (string)jd["openid"];
|
|
Debug.LogError("WXData.OpenID" + WXData.OpenID);
|
|
WXCheckToken();
|
|
|
|
}
|
|
else
|
|
{
|
|
//Debug.LogError("55555555555555555555555555555555=================");
|
|
var status = "Request Finished with Error! " + (request.Exception != null ? (request.Exception.Message + "\n" + request.Exception.StackTrace) : "No Exception");
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
//Debugger.LogError("微信登陆Apply:" + status);
|
|
}
|
|
}).EnableTimoutForStreaming = true;
|
|
}
|
|
|
|
void WXCheckToken()
|
|
{
|
|
string url = WXData.GetCheckTokenURL();
|
|
//Debugger.Log("url:" + url);
|
|
BestHTTP.HTTPManager.SendRequest(url, (request, response) =>
|
|
{
|
|
if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess)
|
|
{
|
|
//Debug.LogError("WXCheckToken======" + request.Response.DataAsText);
|
|
Hashtable jd = (Hashtable)Json.Deserialize(request.Response.DataAsText);
|
|
int num = (int)jd["errcode"];
|
|
//Debugger.Log("微信登陆Check:" + num);
|
|
if (num == 0)
|
|
{
|
|
WXGetUserInfo();
|
|
}
|
|
else
|
|
{
|
|
WXRefreshToken();
|
|
//Debugger.Log("微信登陆Check:更新");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
//Debugger.LogError("微信登陆Check:" + request.State);
|
|
}
|
|
}).EnableTimoutForStreaming = true;
|
|
}
|
|
|
|
void WXRefreshToken()
|
|
{
|
|
string url = WXData.GetRefreshTokenURL();
|
|
//Debugger.Log("WXRefreshToken===url:" + url);
|
|
BestHTTP.HTTPManager.SendRequest(url, (request, response) =>
|
|
{
|
|
if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess)
|
|
{
|
|
Hashtable jd = null;
|
|
int error = 0;
|
|
try
|
|
{
|
|
//Debug.LogError("WXRefreshToken===Response====>" + request.Response.DataAsText);
|
|
jd = (Hashtable)Json.Deserialize(request.Response.DataAsText);
|
|
error = (int)jd["errcode"];
|
|
}
|
|
catch (System.Exception ex)
|
|
{
|
|
error = 1;
|
|
//Debugger.LogError(ex);
|
|
}
|
|
|
|
if (error == 0)
|
|
{
|
|
WXData.RefreshToken = (string)jd["refresh_token"];
|
|
WXData.AccessToken = (string)jd["access_token"];
|
|
WXData.OpenID = (string)jd["openid"];
|
|
WXGetUserInfo();
|
|
}
|
|
else
|
|
{
|
|
//Debug.LogError("微信登录失败===============");
|
|
//Debugger.Log("微信登陆Refresh:" + error);
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
//Debugger.LogError("微信登陆Refresh:" + request.State);
|
|
}
|
|
}).EnableTimoutForStreaming = true;
|
|
|
|
}
|
|
|
|
void WXGetUserInfo()
|
|
{
|
|
string url = WXData.GetUserInfoURL();
|
|
//Debug.LogError("WXGetUserInfo===Url==>" + url);
|
|
BestHTTP.HTTPManager.SendRequest(url, (request, response) =>
|
|
{
|
|
if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess)
|
|
{
|
|
var _text = request.Response.DataAsText;
|
|
//Debug.LogError("WXGetUserInfo=====>" + _text);
|
|
if (AuthCallback != null)
|
|
{
|
|
if (string.IsNullOrEmpty(_text))
|
|
{
|
|
AuthCallback(1, _text);
|
|
}
|
|
else
|
|
{
|
|
AuthCallback(0, _text);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (AuthCallback != null) AuthCallback(1, null);
|
|
//Debugger.LogError("微信登陆失败Info:" + request.State);
|
|
}
|
|
}).EnableTimoutForStreaming = true;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
} |