Files
tysdk-intergration/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java
2024-08-06 16:09:36 +08:00

304 lines
13 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.unity3d.player;
import android.app.Activity;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
//import com.barton.log.GASDKFactory;
//import com.barton.log.builder.GAConfiguration;
//import com.barton.log.builder.ParamsBuilder;
//import com.barton.log.ebarton.BaseUrl;
//import com.barton.log.ebarton.EventType;
//import com.barton.log.logapi.IGASDK;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tuyoo.gamesdk.api.SDKAPI;
import com.tuyoo.gamesdk.api.SDKCallBack;
import com.tuyoo.gamesdk.api.SDKWrapper;
import com.tuyoo.gamesdk.api.TuYooClientID;
import com.tuyoo.gamesdk.event.EventBus;
import com.tuyoo.gamesdk.event.EventConsts;
import com.tuyoo.gamesdk.event.data.PayEventData;
import com.tuyoo.gamesdk.event.data.WeixinShareData;
import com.tuyoo.gamesdk.model.InitParam;
import com.tuyoo.gamesdk.pay.model.PayType;
import com.tuyoo.gamesdk.util.SDKLog;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class SDKManager {
private final static Handler handler = new Handler(Looper.getMainLooper());
// private static IGASDK gasdk;
private static final String TAG = com.unity3d.player.SDKManager.class.getSimpleName();
private static String curType = TuYooClientID.tyGuest;
public static void InitSDK(Activity activity)
{
Log.e(TAG,"SDKManager:::InitSDK");
Log.e(TAG,"SDK_APPID:::" + ConfigManager.SDK_APPID);
Log.e(TAG,"SDK_CLIENTID:::" + ConfigManager.SDK_CLIENTID);
Log.e(TAG,"SDK_LOGIN_SERVER_URL:::" + ConfigManager.SDK_LOGIN_SERVER_URL);
activity.runOnUiThread(() -> {
SDKAPI.getIns().lightModeEnable();
try {
SDKAPI.getIns().init(new InitParam.Builder()
.withActivity(activity)
.withAppId(ConfigManager.SDK_APPID)
.withClientId(ConfigManager.SDK_CLIENTID)
.withServerUrl(ConfigManager.SDK_LOGIN_SERVER_URL)
.build());
TYUnityActivity.setSdkInited();
SDKAPI.getIns().onActivityStart(activity);
SDKAPI.getIns().onActivityResume(activity);
} catch (Exception e) {
System.out.println("initSDK Exception " + e);
}
});
}
public static void parseLoginInfo(int i, String s) {
Log.e(TAG,"parseLoginInfo!!" );
try {
JSONObject result = new JSONObject();
result.put("code", i);
if (i == 0) {
JSONObject serverResponse = new JSONObject(s);
JSONObject userInfo = serverResponse.getJSONObject("result");
JSONObject userInfoReorganization = new JSONObject();
userInfoReorganization.put("userId", userInfo.optString("userId"));
userInfoReorganization.put("authorCode", userInfo.optString("authorCode"));
userInfoReorganization.put("token", userInfo.optString("token"));
userInfoReorganization.put("jwttoken", userInfo.optString("jwttoken"));
JSONObject userInfoResult = new JSONObject();
userInfoResult.put("result", userInfoReorganization);
result.put("respObj", userInfoResult);
Log.e(TAG,"userId:::::" + userInfo.optString("userId"));
Log.e(TAG,"token:::::" + userInfo.optString("token"));
} else {
Log.e(TAG,"errStr:::::" +s);
result.put("errStr", s);
Log.e(TAG,"errStrInfo:::::" +result.toString());
}
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LOGIN_CALLBACK_FUNCTION_NAME, result.toString());
} catch (Exception e) {
Log.e(TAG,"SDKManager-parseLoginInfo-Exception" + e);
SDKLog.e("SDKManager-parseLoginInfo-Exception" + e);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LOGIN_CALLBACK_FUNCTION_NAME, "{\"code\":1}}");
}
}
//登录回调-统一的回调方法(保持回调仅有一个,否则可能会出现多次回调的情况)
static SDKCallBack.Login mLogin = new SDKCallBack.Login() {
@Override
public void callback(int i, String s) {
SDKLog.i("SDKCallBack.Login callback: " + i + " \n" + s);
parseLoginInfo(i, s);
}
};
static SDKCallBack.Pay mPay = new SDKCallBack.Pay() {
@Override
public void callback(int i, String s) {
Log.e(TAG,"SDKCallBack.Pay callback: " + i + " \n" + s);
SDKLog.i("SDKCallBack.Pay callback: " + i + " \n" + s);
try {
JSONObject result = new JSONObject();
result.put("code", i);
result.put("respObj", s);
result.put("errStr", s);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_CALLBACK_FUNCTION_NAME, result.toString());
} catch (Exception e) {
Log.e(TAG,"SDKManager-SDKCallBack.Pay-Exception" + e);
SDKLog.e("SDKManager-SDKCallBack.Pay-Exception" + e);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_CALLBACK_FUNCTION_NAME, "{\"code\":1}}");
}
}
};
public static void UnityResetServerUrl(String url) {
SDKLog.i("UnityResetServerUrl : " + url);
SDKAPI.getIns().updateServer(url);
}
public static void UnityLoginByTokenFun(String token) {
SDKLog.i("UnityLoginByTokenFun : " + token);
handler.post(new Runnable() {
@Override
public void run() {
SDKAPI.getIns().loginByToken(token, mLogin);
}
});
}
public static void UnityGetIdentityFun(String type) {
curType = type;
Log.e(TAG,"UnityGetIdentityFun : " + type);
SDKLog.i("UnityGetIdentityFun : " + type);
handler.post(new Runnable() {
@Override
public void run() {
SDKAPI.getIns().loginByType(type, mLogin);
}
});
}
public static void UnityLoginOut() {
// Log.e(TAG,"UnityLoginOut!!!");
SDKLog.i("UnityLoginOut : ");
handler.post(() -> SDKAPI.getIns().logout(curType));
}
public static void UnityKnow(String userId, String productId, String productPrice, String productName, String productCount, String prodorderId, String appInfo) {
SDKLog.i("UnityKnow : " + productId);
HashMap<String, String> extraInfo = new HashMap<String, String>();
extraInfo.put("appInfo", appInfo);
SDKAPI.getIns().pay(productId, productName, productCount, Integer.parseInt(ConfigManager.SDK_GAMEID), mPay, prodorderId, extraInfo);
}
public static void UnityGetKnowTypeList(String productId)
{
Log.e(TAG,"UnityGetKnowTypeList:" + productId );
final PayEventData.PayReq mPayReq = new PayEventData.PayReq();
mPayReq.prodId = productId;
SDKAPI.getIns().charge(mPayReq , new SDKCallBack.Base1() {
@Override
public void callback(int code, String msg) {
SDKLog.e("====> code= " + code + " msg= " + msg);
try {
JSONObject result = new JSONObject();
result.put("code", code);
if(code == 0){
result.put("respObj", msg);
}else {
result.put("errStr", msg);
}
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-UnityGetKnowTypeList-Exception" + e);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, "{\"code\":1}}");
}
}
});
}
public static void UnityKnowNew(String productId, String productPrice, String productName, String productCount, String prodorderId, String appInfo, String ptype)
{
Log.e(TAG,"开始支付-----"+ "productId:" + productId+" "+ "productPrice:" + productPrice+" "+ "productName:" + productName +" "+ "prodorderId:" + prodorderId +" "+ "appInfo:" + appInfo +" "+ "ptype:" + ptype);
PayEventData.PayData payData = new PayEventData.PayData();
final PayEventData.PayReq mPayReq = new PayEventData.PayReq();
mPayReq.prodId = productId;
mPayReq.prodPrice = productPrice;
mPayReq.prodName = productName;
mPayReq.prodCount = productCount;
// 此字段与服务端回调接口内的appInfo不对应与orderId相对应
mPayReq.appInfo = prodorderId;
HashMap<String, String> map = new HashMap<String, String>();
// 此字段appInfo可用于传递透传信息此信息与服务端回调接口内的appInfo相对应
map.put("appInfo", appInfo);
mPayReq.extra = map;
payData.payReq = mPayReq;
PayType payType = new PayType();
payType.paytype = ptype;
SDKAPI.getIns().payNew(payData, payType, mPay);
}
public static void thirdExtend()
{
Log.e(TAG,"====>java thirdExtend");
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("action","ACTION_GET_SKU_DETAILS_LIST");
} catch (JSONException e) {
throw new RuntimeException(e);
}
SDKAPI.getIns().thirdExtend(jsonObject.toString(), new SDKCallBack.Extend() {
@Override public void callback(int code, String msg) {
Log.e(TAG,"====>thirdExtend code= " + code + " msg= " + msg );
try {
//获取成功msg即为对应的json字符串
JSONObject result = new JSONObject();
result.put("code", code);
if(code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS){
result.put("respObj", msg);
}else {
Log.e(TAG,"获取商品列表失败啦:" + msg);
result.put("thirdExtend_errStr", msg);
}
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-UnityGetKnowTypeList-Exception" + e);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, "{\"code\":1}}");
}
}
});
}
// private static IGASDK GetGameGa(){
// if(gasdk == null){
// GAConfiguration.Builder builder = new GAConfiguration.Builder()
// .withBaseUrl(BaseUrl.INTERNAL)
// .withContext(SDKWrapper.getInstance().getContext())
// .withClientId(ConfigManager.SDK_CLIENTID)
// .withGameId(ConfigManager.SDK_GAMEID)
// .withProjectId(ConfigManager.SDK_PROJECTID);
// gasdk = GASDKFactory.createGASDK(builder.build());
// }
// return gasdk;
// }
public static void SetGaUserInfo(String userId)
{
// Log.e(TAG,"SetGaUserInfo : " + userId);
// SDKLog.i("SetGaUserInfo : " + userId);
// GetGameGa().setUserId(userId);
}
public static void SetGaCommonInfo(String SetGaCommonInfo)
{
// Log.e(TAG,"SetGaCommonInfo : " + SetGaCommonInfo);
// SDKLog.i("SetGaCommonInfo : " + SetGaCommonInfo);
// Gson gson = new Gson();
// Map<String, Object> map = gson.fromJson(SetGaCommonInfo, new TypeToken<Map<String, Object>>(){}.getType());
// for (String key : map.keySet()) {
// System.out.println("Key = " + key + ", Value = " + map.get(key));
// if(!TextUtils.isEmpty(key) && map.get(key) != null){
// GetGameGa().addCommonParameter(key, map.get(key).toString());
// }
// }
}
public static void GAReportParams(int type, String eventstr, String paramstr)
{
// Log.e(TAG,"GAReportParams : " + type + " \n" + eventstr + " \n" + paramstr);
//
// SDKLog.i("GAReportParams : " + type + " \n" + eventstr + " \n" + paramstr);
// ParamsBuilder paramsBuilder = ParamsBuilder.newInstance();
// Gson gson = new Gson();
// Map<String, Object> map = gson.fromJson(paramstr, new TypeToken<Map<String, Object>>(){}.getType());
// for (String key : map.keySet()) {
// System.out.println("Key = " + key + ", Value = " + map.get(key));
// if(!TextUtils.isEmpty(key) && map.get(key) != null){
// paramsBuilder.append(key, map.get(key).toString());
// }
// }
// GetGameGa().track(EventType.TRACK, eventstr, paramsBuilder);
}
}