| 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<String, Object> 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() | 
|     { | 
|     } | 
| } |