package com.secondworld.sdk; import android.app.Activity; import android.widget.Toast; import com.secondworld.sdk.utils.CodeA2U; import com.secondworld.sdk.utils.LogUtil; import com.soha.sdk.LoginCallback; import com.soha.sdk.LogoutCallback; import com.soha.sdk.OnPayListener; import com.soha.sdk.PaymentNewCallBack; import com.soha.sdk.SohaSDK; import com.soha.sdk.login.model.SohaLoginResult; import com.soha.sdk.payment.model.IapItem; import com.soha.sdk.payment.model.ListIap; import com.soha.sdk.utils.SohaPopup; import org.json.JSONException; import org.json.JSONObject; public class MySdkMgr extends PlatformSdkMgr { private static final String TAG = MySdkMgr.class.getSimpleName(); public static MySdkMgr I = new MySdkMgr(); private LogoutCallback logoutCallback; public void init(Activity activity) { sdkInitState = SdkInitState.LOADING; SohaSDK.getInstance().setLanguage(activity, "vi"); } public void OnCreate(Activity activity) { sdkInitState = SdkInitState.LOADING; SohaSDK.getInstance().setLanguage(activity, "vi"); logoutCallback = new LogoutCallback() { @Override public void onLogout() { login(); } }; SohaSDK.getInstance().init(activity, logoutCallback); } public void login() { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { SohaPopup.getInstance().clearAllPopup(); } }); switch (sdkInitState) { case FAILED: case UNKNOWN: { if (GTGameMain.I.activity != null) init(GTGameMain.I.activity); Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } case SUCCEED: { SohaSDK.getInstance().login(GTGameMain.I.activity, new LoginCallback() { @Override public void onSuccess(SohaLoginResult loginResult) { LogUtil.i(TAG, "登录成功"); try { args.clear(); JSONObject info = new JSONObject(); info.put("account", loginResult.getUserId()); info.put("game_id", "7"); info.put("session_id", loginResult.getAccessToken()); args.put("info", info); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args); } catch (JSONException e) { e.printStackTrace(); LogUtil.e(TAG,"解析失败 但是登录成功 " + e.toString()); } } @Override public void onError() { LogUtil.e(TAG, "登录失败"); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); } @Override public void onCancel() { LogUtil.e(TAG, "取消登录"); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); } }); break; } case LOADING: { Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } } } public void setListener() { // 初始化监听 } public void getListProduct() { SohaSDK.getInstance().getListProduct(new PaymentNewCallBack() { @Override public void onSuccess(ListIap listIap) { //拼接充值编号 | String orderString = ""; int index = 0; for (IapItem item : listIap.getData()) { if (index == 0) { orderString = item.getOrder_info(); } else { orderString = orderString + "|" + item.getOrder_info(); } index = index + 1; } args.clear(); args.put("orderInfos", orderString); UnityMsgHandler.sendMessageToUnity(CodeA2U.OrderInfoCallBack, args); } @Override public void onFailure() { LogUtil.e(TAG, "请求不到充值列表"); } }); } public void pay(String orderInfo) { SohaSDK.getInstance().payProduct(GTGameMain.I.activity, orderInfo, new OnPayListener() { @Override public void onSuccessPaymentCoin(String transID) { UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk); } @Override public void onMaintenancePayment() { UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutFail); } @Override public void onFail() { UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutFail); } }); } }