package com.secondworld.univeralsdk; import android.app.Activity; import android.content.res.Configuration; import com.xiaoniu.enter.XNSDK; import com.xiaoniu.enter.bean.InitParam; import com.xiaoniu.enter.bean.PayParams; import com.xiaoniu.enter.bean.PayResult; import com.xiaoniu.enter.im.IXNSDKInitListener; import com.xiaoniu.enter.im.IXNSDKPayListener; import com.xiaoniu.enter.im.IXNSDKUserListener; import com.xiaoniu.enter.provider.DataProbeProvider; import org.json.JSONException; import org.json.JSONObject; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; /** * Created by Administrator on 2018/9/3 0003. */ public class XNPlatformUtil { private static final String TAG = "XNPlatformUtil"; private boolean m_Init = false; private static XNPlatformUtil s_Instance; public static XNPlatformUtil getInstance() { if (s_Instance == null) { s_Instance = new XNPlatformUtil(); } return s_Instance; } public boolean payProcessing = false; private Map m_Message = new HashMap<>(); public void init(final Activity activity) { if (m_Init) { return; } XNSDK.getInstance().setIXNSDKInitListener(new IXNSDKInitListener() { @Override public void onInitSuccess() { m_Init = true; m_Message.put("code", CodeA2U.FreePlatformInitOk); UniversalUtil.sendMessageToUnity(m_Message); } @Override public void onInitFail(String msg) { //初始化失败 msg 错误信息 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformInitFail); UniversalUtil.sendMessageToUnity(m_Message); } }); XNSDK.getInstance().setSDKUserListener(new IXNSDKUserListener() { @Override public void onLoginFail(String code, String msg) { LogUtil.e(TAG, "登录失败" + code + " " + msg); m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformLoginFail); UniversalUtil.sendMessageToUnity(m_Message); } @Override public void onLoginSuccess(String uuid, String sessionId) { //登录成功 uuid:用户id,msg:校验id try { m_Message.clear(); JSONObject _info = new JSONObject(); _info.put("account", uuid); _info.put("token", sessionId); _info.put("account_id", uuid); m_Message.put("code", CodeA2U.FreePlatformLoginOk); m_Message.put("info", _info); UniversalUtil.sendMessageToUnity(m_Message); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onLogout() { //退出登录( 如果需要唤起登陆调用此方法) 也就是注销登录的回调 只会弹登录框不会自动登录 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformLogoutOk); UniversalUtil.sendMessageToUnity(m_Message); XNSDK.getInstance().login(false); } }); XNSDK.getInstance().setSDKPayListener(new IXNSDKPayListener() { @Override public void onPaySuccess(PayResult payResult) { //支付成功 payResult.getOrderId();//订单id payResult.getProdCode();//商品编码 payResult.getProdName();//商品名称 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformPayOk); UniversalUtil.sendMessageToUnity(m_Message); payProcessing = false; } @Override public void onPayFail(String code, String msg) { //code:支付失败错误码,msg:支付失败错误信息 m_Message.clear(); m_Message.put("code", CodeA2U.FreePlatformPayFail); UniversalUtil.sendMessageToUnity(m_Message); payProcessing = false; } }); InitParam initParam = new InitParam( "34aee53ae588421a91f7eb297689b1f0",//应用ID "少年修仙",//游戏名称 "0ca9e17f7a6d45e58aa7d2755d0f16c2",//应用KEY "1.3.3",//游戏版本 "f93e467aa05acc0266ab844cce9321b0",//热云key Configuration.ORIENTATION_LANDSCAPE,//游戏activity方向 157294);//头条sdK需要的sdk com.xiaoniu.enter.XNSDK.getInstance().init(activity, initParam, true); } public void login(Activity activity) { com.xiaoniu.enter.XNSDK.getInstance().login(true); } public void logout(final Activity activity) { com.xiaoniu.enter.XNSDK.getInstance().logout(); } public void pay(final Activity activity, String orderID, float amount, String title, String productID, String extraData, String roleLevel, String roleId, String roleName, String serverName, String cpSign) { PayParams payParams = new PayParams();// [必传] payParams.setProdName(title);//商品名称 [必传] payParams.setProdCode(productID);//商品编码 [必传] payParams.setProdNum(1);//商品数量 [必传] payParams.setProdPrice(String.valueOf(amount));//商品单价 元 [必传] payParams.setPayFee(String.valueOf(amount));//订单总金额 元 [必传] payParams.setPayNotifyUrl("http://...");//支付回调URL [必传] payParams.setCpOrderId(orderID);//游戏开发商订单ID [必传] payParams.setRoleLevel(roleLevel);//用户的游戏等级 [必传] payParams.setRoleId(roleId);//用户游戏角色ID [必传] payParams.setRoleName(roleName);//用户游戏角色名称 [必传] payParams.setServerName(serverName);//区服 [必传] payParams.setTimeStamp(new Date().getTime() + "");//调用接口时的时间戳 13位毫秒数 [必传] payParams.setExtraData(extraData);//透传参数 [非必传] XNSDK.getInstance().pay(activity, payParams, cpSign); } public void enterWorld(final Activity activity, String roleID, String roleName, String serverName, String roleLevel) { DataProbeProvider.getInstance().startGame(activity, roleID, roleName, serverName, roleLevel); } public void createRole(final Activity activity, String roleID, String roleName, String serverName, String roleLevel) { DataProbeProvider.getInstance().createRole(activity, roleID, roleName, serverName, roleLevel); } public void levelUp(final Activity activity, String roleID, String roleName, String serverName, String roleLevel) { DataProbeProvider.getInstance().userUpLevel(activity, roleID, roleName, serverName, roleLevel); } public void SendRegisterEvent() { } }