package com.secondworld.univeralsdk; import android.app.Activity; import com.linglei.sdk.openapi.LLSDK; import com.linglei.sdklib.open.ILLSDKCallback; import com.linglei.sdklib.open.ILLSDKInitCallback; import com.linglei.sdklib.open.reqinfo.OrderReq; import com.linglei.sdklib.open.reqinfo.RoleInfoReq; import com.linglei.sdklib.open.respinfo.UserResp; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; /** * Created by Administrator on 2018/9/3 0003. */ public class JSPlatformUtil { private static final String TAG = "JSPlatformUtil"; private boolean m_Init = false; private static JSPlatformUtil s_Instance; public static JSPlatformUtil getInstance() { if (s_Instance == null) { s_Instance = new JSPlatformUtil(); } return s_Instance; } public boolean payProcessing = false; private Map m_Message = new HashMap<>(); public void init(final Activity activity) { if (m_Init) { return; } LLSDK.getInstance().initSDK(activity, new ILLSDKInitCallback() { @Override public void onInitResponse(int i, String s) { m_Message.clear(); if (i == 1) { m_Init = true; m_Message.put("code", CodeA2U.FreePlatformInitOk); UniversalUtil.sendMessageToUnity(m_Message); } else { m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformInitFail); UniversalUtil.sendMessageToUnity(m_Message); } } }); LLSDK.getInstance().setLLSDKCallback(sdkCallback); } public void login(Activity activity) { LLSDK.getInstance().login(activity); } public void logout(final Activity activity) { LLSDK.getInstance().switchAccount(); } public void pay(final Activity activity, String orderID, int amount, String title, String extraData) { OrderReq orderReq = new OrderReq(orderID, amount, title, extraData); LLSDK.getInstance().pay(activity, orderReq); } public void enterWorld(final Activity activity, String roleID, String serverID, String roleName, String roleLevel, String roleVipLevel, String gold) { // 登录成功后请设置角色信息 // 参数依次为 游戏币当前余额、角色的等级、用户vip等级、角色唯一标识、角色名、所在区服 RoleInfoReq roleInfoReq = new RoleInfoReq(Integer.parseInt(gold), Integer.parseInt(roleLevel), Integer.parseInt(roleVipLevel), roleID, roleName, serverID); LLSDK.getInstance().setRoleData(roleInfoReq); } private ILLSDKCallback sdkCallback = new ILLSDKCallback() { @Override public void onLoginSuccess(UserResp userResp) { LogUtil.e(TAG, "登录成功"); // 成功回调UserResp类 // UserResp字段: // uid 用户唯一标识 // token cp服务器校验值 // uid和token信息也可以在登录成功后调用LLSDK.getInstance().getAuth()来获取(务必做非空判断) try { m_Message.clear(); JSONObject _info = new JSONObject(); _info.put("account", userResp.getUid()); _info.put("token", userResp.getToken()); _info.put("account_id", userResp.getUid()); m_Message.put("code", CodeA2U.FreePlatformLoginOk); m_Message.put("info", _info); UniversalUtil.sendMessageToUnity(m_Message); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onLoginFailure(int errorCode, String errorMsg) { LogUtil.e(TAG, "登录失败" + errorCode + " " + errorMsg); m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformLoginFail); UniversalUtil.sendMessageToUnity(m_Message); } @Override public void onLogout() { // 表示用户已登出, 切换账号接口会走这个回调,游戏收到此消息通常情况下,需要主动调用登录接口 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformLogoutOk); UniversalUtil.sendMessageToUnity(m_Message); } @Override public void onPayResponse() { // 此方法回调只能说明支付操作完毕,具体是否支付成功以接入方服务端为准 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformPayOk); UniversalUtil.sendMessageToUnity(m_Message); payProcessing = false; } @Override public void onPayFailure(int errorCode, String errorMsg) { m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformPayFail); UniversalUtil.sendMessageToUnity(m_Message); payProcessing = false; } }; public void SendRegisterEvent() { } }