| package com.secondworld.univeralsdk; | 
|   | 
| import android.app.Activity; | 
| import android.os.Bundle; | 
|   | 
| import com.sp.sdk.core.SPGameController; | 
| import com.sp.sdk.core.callback.CallbackCode; | 
| import com.sp.sdk.core.callback.SPInitCallback; | 
| import com.sp.sdk.core.callback.SPLoginCallback; | 
| import com.sp.sdk.core.callback.SPLogoutCallback; | 
| import com.sp.sdk.core.callback.SPPayCallback; | 
| import com.sp.sdk.service.GameData; | 
| import com.sp.sdk.service.LoginResponse; | 
| import com.sp.sdk.service.PayOrder; | 
|   | 
| import org.json.JSONException; | 
| import org.json.JSONObject; | 
|   | 
| import java.util.HashMap; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * Created by Administrator on 2018/9/18 0018. | 
|  */ | 
|   | 
| public class SpPlatformUtil | 
| { | 
|     private static final String TAG = "SpPlatformUtil"; | 
|   | 
|     private static SpPlatformUtil m_Instance; | 
|   | 
|     public static SpPlatformUtil getInstance() | 
|     { | 
|         if (m_Instance == null) | 
|         { | 
|             m_Instance = new SpPlatformUtil(); | 
|         } | 
|         return m_Instance; | 
|     } | 
|   | 
|     private Map<String, Object> m_Message = new HashMap<>(); | 
|     public boolean payProcessing = false; | 
|   | 
|     public void onCreate(Activity activity, Bundle savedInstanceState) | 
|     { | 
|         //初始化SDK | 
|         // 参数1:上下文对象 | 
|         // 参数2:Bundle对象 | 
|         // 参数3:SDK的横竖屏管理 (ORIENTATION_HORIZONTAL 代表横屏,ORIENTATION_VERTICAL 代表竖屏) | 
|         // 参数4:初始化回调 | 
|         SPGameController.getInstance(). | 
|                 onCreate(activity, savedInstanceState, | 
|                          SPGameController.ORIENTATION_HORIZONTAL, | 
|                          new SPInitCallback() | 
|                          { | 
|                              @Override | 
|                              public void onResult(int code, String msg) | 
|                              { | 
|                                  m_Message.clear(); | 
|                                  LogUtil.i(TAG, "SPGameController  :" + msg); | 
|                                  switch (code) | 
|                                  { | 
|                                      case CallbackCode.SUCCESS://初始化成功 | 
|                                          m_Message.put("code", CodeA2U.FreePlatformInitOk); | 
|                                          UniversalUtil.sendMessageToUnity(m_Message); | 
|                                          break; | 
|                                      case CallbackCode.FAIL://初始化失败 | 
|                                          m_Message.put("code", CodeA2U.FreePlatformInitFail); | 
|                                          UniversalUtil.sendMessageToUnity(m_Message); | 
|                                          break; | 
|                                  } | 
|                              } | 
|                          }); | 
|   | 
|         //设置登出监听 | 
|         SPGameController.getInstance().setLogoutListener(new SPLogoutCallback() | 
|         { | 
|             @Override | 
|             public void onResult(int status, String msg) | 
|             { | 
|                 m_Message.clear(); | 
|                 switch (status) | 
|                 { | 
|                     case CallbackCode.SUCCESS://注销成功 | 
|                         //需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 | 
|                         m_Message.put("code", CodeA2U.FreePlatformLogoutOk); | 
|                         UniversalUtil.sendMessageToUnity(m_Message); | 
|                         break; | 
|                     case CallbackCode.FAIL://注销失败 | 
|                         //注销失败也可以执行注销成功的操作 | 
|                         LogUtil.i(TAG,"!!!!!!! 登出失败 !!!!!!!"); | 
|                         m_Message.put("code", CodeA2U.FreePlatformLogoutOk); | 
|                         UniversalUtil.sendMessageToUnity(m_Message); | 
|                         break; | 
|                 } | 
|             } | 
|         }); | 
|   | 
|     } | 
|   | 
|     public void login(final Activity activity) | 
|     { | 
|         SPGameController.getInstance().login(new SPLoginCallback() | 
|         { | 
|             @Override | 
|             public void onResult(LoginResponse response) | 
|             { | 
|                 m_Message.clear(); | 
|                 switch (response.getStatus()) | 
|                 { | 
|                     case CallbackCode.SUCCESS://登陆成功 | 
|                         //根据回调获取用户信息 | 
|                         String userName = response.getUsername(); | 
|                         String sessionId = response.getSession_id(); | 
|                         String timestamp = response.getTimestamp() + ""; | 
|                         String token = response.getToken(); | 
|                         try | 
|                         { | 
|                             JSONObject _info = new JSONObject(); | 
|                             _info.put("account", userName); | 
|                             _info.put("token", token); | 
|                             _info.put("session_id", sessionId); | 
|                             _info.put("timeStamp", timestamp); | 
|                             m_Message.put("code", CodeA2U.FreePlatformLoginOk); | 
|                             m_Message.put("info", _info); | 
|                             UniversalUtil.sendMessageToUnity(m_Message); | 
|                         } catch (JSONException e) | 
|                         { | 
|                             e.printStackTrace(); | 
|                         } | 
|                         LogUtil.i(TAG, "登陆的账号为: " + userName); | 
|                         break; | 
|                     case CallbackCode.FAIL://登陆失败 | 
|                         m_Message.put("code", CodeA2U.FreePlatformLoginFail); | 
|                         UniversalUtil.sendMessageToUnity(m_Message); | 
|                         LogUtil.i(TAG, "登陆失败 - " + response.getMsg()); | 
|                         break; | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     public void logout() | 
|     { | 
|         SPGameController.getInstance().logout(); | 
|     } | 
|   | 
|     public void pay(final Activity activity, String productName, String productID, float price, | 
|                     String extData) | 
|     { | 
|         SPGameController.getInstance().pay(String.valueOf(price), | 
|                                            extData, | 
|                                            productID, | 
|                                            productName, | 
|                                            new SPPayCallback() | 
|                                            { | 
|                                                @Override | 
|                                                public void onResult(PayOrder payOrder) | 
|                                                { | 
|                                                    m_Message.clear(); | 
|                                                    switch (payOrder.getStatus()) | 
|                                                    { | 
|                                                        case 7://支付中 | 
|                                                            break; | 
|                                                        case 1://支付成功 | 
|                                                            //根据回调获取支付订单信息 | 
|                                                            String s = payOrder.toString(); | 
|                                                            LogUtil.i(TAG, | 
|                                                                      payOrder.getStatus() + "  " + s); | 
|                                                            m_Message.put("code", | 
|                                                                          CodeA2U.FreePlatformPayOk); | 
|                                                            UniversalUtil.sendMessageToUnity( | 
|                                                                    m_Message); | 
|                                                            payProcessing = false; | 
|                                                            break; | 
|                                                        case 404://支付失败 | 
|                                                            m_Message.put("code", | 
|                                                                          CodeA2U.FreePlatformPayFail); | 
|                                                            UniversalUtil.sendMessageToUnity( | 
|                                                                    m_Message); | 
|                                                            LogUtil.i(TAG, | 
|                                                                      "STATUS: " + payOrder.getStatus()); | 
|                                                            payProcessing = false; | 
|                                                            break; | 
|                                                    } | 
|                                                } | 
|                                            }); | 
|         payProcessing = true; | 
|     } | 
|   | 
|     public void createRole(String serverID, | 
|                            String serverName, | 
|                            String roleID, | 
|                            String roleName, | 
|                            String roleLevel, | 
|                            String FamilyName, | 
|                            String GameName, | 
|                            String Job, | 
|                            String vipLevel, | 
|                            String surplusMoney) | 
|     { | 
|         GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, | 
|                                            FamilyName, GameName, Job, vipLevel, surplusMoney); | 
|         SPGameController.getInstance().setGameData(gamedata, 1); | 
|     } | 
|   | 
|     public void enterWorld(String serverID, | 
|                            String serverName, | 
|                            String roleID, | 
|                            String roleName, | 
|                            String roleLevel, | 
|                            String FamilyName, | 
|                            String GameName, | 
|                            String Job, | 
|                            String vipLevel, | 
|                            String surplusMoney) | 
|     { | 
| //        long roleCTime | 
|         GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, | 
|                                            FamilyName, GameName, Job, vipLevel, surplusMoney); | 
|         SPGameController.getInstance().setGameData(gamedata, 2); | 
|     } | 
|   | 
|     public void levelUp(String serverID, | 
|                         String serverName, | 
|                         String roleID, | 
|                         String roleName, | 
|                         String roleLevel, | 
|                         String FamilyName, | 
|                         String GameName, | 
|                         String Job, | 
|                         String vipLevel, | 
|                         String surplusMoney) | 
|     { | 
|         GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, | 
|                                            FamilyName, GameName, Job, vipLevel, surplusMoney); | 
|         SPGameController.getInstance().setGameData(gamedata, 3); | 
|     } | 
|   | 
|     private GameData createGameData(String serverID, | 
|                                     String serverName, | 
|                                     String roleID, | 
|                                     String roleName, | 
|                                     String roleLevel, | 
|                                     String FamilyName, | 
|                                     String GameName, | 
|                                     String Job, | 
|                                     String vipLevel, | 
|                                     String surplusMoney) | 
|     { | 
|         GameData gamedata = new GameData(); | 
|         gamedata.setServerid(serverID); | 
|         gamedata.setServerName(serverName); | 
|         gamedata.setRoleId(roleID); | 
|         gamedata.setRoleName(roleName); | 
|         gamedata.setLevel(roleLevel); | 
|         gamedata.setPartyName(FamilyName); | 
|         gamedata.setGameName(GameName); | 
|         gamedata.setRoleType(Job); | 
|         gamedata.setVip(vipLevel); | 
|         gamedata.setGamemoney(surplusMoney); | 
|         return gamedata; | 
|     } | 
|   | 
|     public void SendRegisterEvent() | 
|     { | 
|     } | 
| } |