package com.secondworld.universalsdk; 
 | 
  
 | 
import android.app.Activity; 
 | 
import android.text.TextUtils; 
 | 
  
 | 
import com.kwai.monitor.log.TurboAgent; 
 | 
import com.quicksdk.QuickSDK; 
 | 
import com.quicksdk.User; 
 | 
import com.quicksdk.entity.UserInfo; 
 | 
import com.quicksdk.notifier.ExitNotifier; 
 | 
import com.quicksdk.notifier.InitNotifier; 
 | 
import com.quicksdk.notifier.LoginNotifier; 
 | 
import com.quicksdk.notifier.LogoutNotifier; 
 | 
import com.quicksdk.notifier.PayNotifier; 
 | 
import com.quicksdk.notifier.SwitchAccountNotifier; 
 | 
  
 | 
import org.json.JSONException; 
 | 
import org.json.JSONObject; 
 | 
  
 | 
import java.io.UnsupportedEncodingException; 
 | 
import java.net.URLDecoder; 
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
  
 | 
import com.kwai.monitor.log.TurboAgent; 
 | 
/** 
 | 
 * Created by Administrator on 2020/8/25 0025. 
 | 
 */ 
 | 
  
 | 
public class QuickPlatformUtil 
 | 
{ 
 | 
  
 | 
    private static QuickPlatformUtil m_Instance; 
 | 
    private static final String TAG = "QKPlatformUtil"; 
 | 
  
 | 
    public static QuickPlatformUtil getInstance() 
 | 
    { 
 | 
        if (m_Instance == null) 
 | 
        { 
 | 
            m_Instance = new QuickPlatformUtil(); 
 | 
        } 
 | 
        return m_Instance; 
 | 
    } 
 | 
  
 | 
    private Map<String, Object> m_Message = new HashMap<>(); 
 | 
    public boolean payProcessing = false; 
 | 
  
 | 
    private UserInfo USER; 
 | 
  
 | 
    public Boolean isInited = false; 
 | 
  
 | 
    public void onCreate(final Activity activity){ 
 | 
  
 | 
        QuickSDK.getInstance().setInitNotifier(new InitNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess() 
 | 
            { 
 | 
                m_Message.clear(); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformInitOk); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                isInited = true; 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onFailed(String s, String s1) 
 | 
            { 
 | 
                m_Message.clear(); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformInitFail); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
            } 
 | 
        }); 
 | 
  
 | 
        QuickSDK.getInstance().setLoginNotifier(new LoginNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess(UserInfo userInfo) { 
 | 
                //登录成功,获取到用户信息userInfo 
 | 
                //通过userInfo中的UID、token做服务器登录认证 
 | 
                m_Message.clear(); 
 | 
                USER = userInfo; 
 | 
  
 | 
                //根据回调获取用户信息 
 | 
                String token = USER.getToken(); 
 | 
                //通知到unity中的账号已经加上渠道ID,保证appid和spid唯一对应 
 | 
                String channel = com.quicksdk.Extend.getInstance().getExtrasConfig("channel"); 
 | 
                if (channel == null || channel.isEmpty()) 
 | 
                    channel = com.quicksdk.Extend.getInstance().getChannelType() + ""; 
 | 
                String userId = USER.getUID() + "@" + channel; 
 | 
                String userName = USER.getUserName(); 
 | 
                try 
 | 
                { 
 | 
                    JSONObject _info = new JSONObject(); 
 | 
                    _info.put("account", userId); 
 | 
                    _info.put("token", token); 
 | 
                    _info.put("userName", USER.getUID()); 
 | 
                    m_Message.put("code", CodeA2U.FreePlatformLoginOk); 
 | 
                    m_Message.put("info", _info); 
 | 
                    UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                } catch (JSONException e) 
 | 
                { 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
            } 
 | 
            @Override 
 | 
            public void onCancel() { 
 | 
                //登录取消 
 | 
                m_Message.clear(); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformLoginFail); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
            } 
 | 
            @Override 
 | 
            public void onFailed(final String message, String trace) { 
 | 
                //登录失败 
 | 
                m_Message.clear(); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformLoginFail); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
            } 
 | 
        }); 
 | 
  
 | 
        QuickSDK.getInstance().setLogoutNotifier(new LogoutNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess() { 
 | 
                //注销成功 
 | 
                m_Message.clear(); 
 | 
                //需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 
 | 
                m_Message.put("code", CodeA2U.FreePlatformLogoutOk); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
            } 
 | 
            @Override 
 | 
            public void onFailed(String message, String trace) { 
 | 
                //注销失败,不做处理 
 | 
            } 
 | 
        }); 
 | 
  
 | 
        QuickSDK.getInstance().setSwitchAccountNotifier(new SwitchAccountNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess(UserInfo userInfo) { 
 | 
                //切换账号成功的回调,返回新账号的userInfo 
 | 
                m_Message.clear(); 
 | 
                USER = userInfo; 
 | 
  
 | 
                //根据回调获取用户信息 
 | 
                String token = USER.getToken(); 
 | 
                //通知到unity中的账号已经加上渠道ID,保证appid和spid唯一对应 
 | 
                String userId = USER.getUID() + "@" + com.quicksdk.Extend.getInstance().getChannelType(); 
 | 
                String userName = USER.getUserName(); 
 | 
                try 
 | 
                { 
 | 
                    JSONObject _info = new JSONObject(); 
 | 
                    _info.put("userName", USER.getUID()); 
 | 
                    _info.put("token", token); 
 | 
                    _info.put("account", userId); 
 | 
                    m_Message.put("code", CodeA2U.FreePlatformSwitchAccountOk); 
 | 
                    m_Message.put("info", _info); 
 | 
                    UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                } catch (JSONException e) 
 | 
                { 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onCancel() { 
 | 
                //切换账号取消 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onFailed(String message, String trace) { 
 | 
                //切换账号失败 
 | 
            } 
 | 
        }); 
 | 
  
 | 
        QuickSDK.getInstance().setPayNotifier(new PayNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess(String sdkOrderID, String cpOrderID, String extrasParams) { 
 | 
                //支付成功 
 | 
                // sdkOrderID:quick订单号 cpOrderID:游戏订单号 
 | 
                String jsonParams=""; 
 | 
                try { 
 | 
                    jsonParams=URLDecoder.decode(extrasParams, "UTF-8"); 
 | 
                } catch ( UnsupportedEncodingException e) { 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
                LogUtil.i(TAG, "Pay Success Info sdkOrderID: " + sdkOrderID + " cpOrderID: " + cpOrderID + " jsonParams: " + jsonParams); 
 | 
                m_Message.clear(); 
 | 
                //根据回调获取支付订单信息 
 | 
                m_Message.put("code", CodeA2U.FreePlatformPayOk); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                payProcessing = false; 
 | 
  
 | 
                JSONObject _json = null; 
 | 
                try { 
 | 
                    _json = new JSONObject(jsonParams); 
 | 
                } catch (JSONException e) { 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
                try { 
 | 
                    PayExTurbo(activity,_json.getDouble("mount")); 
 | 
                } catch (JSONException e) { 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
            } 
 | 
            @Override 
 | 
            public void onCancel(String cpOrderID) { 
 | 
                //支付取消 
 | 
                m_Message.clear(); 
 | 
                //根据回调获取支付订单信息 
 | 
                LogUtil.i(TAG, "Pay Fail Info cpOrderID: " + cpOrderID); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformPayCancel); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                payProcessing = false; 
 | 
  
 | 
            } 
 | 
            @Override 
 | 
            public void onFailed(String cpOrderID, String message, String trace) { 
 | 
                //支付失败 
 | 
                m_Message.clear(); 
 | 
                //根据回调获取支付订单信息 
 | 
                LogUtil.i(TAG, "Pay Fail Info cpOrderID: " + cpOrderID); 
 | 
                m_Message.put("code", CodeA2U.FreePlatformPayFail); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                payProcessing = false; 
 | 
            } 
 | 
        }); 
 | 
  
 | 
  
 | 
        QuickSDK.getInstance().setExitNotifier(new ExitNotifier() { 
 | 
            @Override 
 | 
            public void onSuccess() { 
 | 
                //退出成功,游戏在此做自身的退出逻辑处理 
 | 
                m_Message.clear(); 
 | 
                m_Message.put("code", CodeA2U.ExitGame); 
 | 
                UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                payProcessing = false; 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onFailed(String message, String trace) { 
 | 
                //退出失败,不做处理 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    //付费 
 | 
    public static void PayExTurbo(final Activity activity, final double money) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                TurboAgent.onPay(money); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
    public static double convertToDouble(String number, double defaultValue) { 
 | 
        if (TextUtils.isEmpty(number)) { 
 | 
            return defaultValue; 
 | 
        } 
 | 
        try { 
 | 
            return Double.parseDouble(number); 
 | 
        } catch (Exception e) { 
 | 
            return defaultValue; 
 | 
        } 
 | 
  
 | 
    } 
 | 
    public void login(final Activity activity) 
 | 
    { 
 | 
        User.getInstance().login(activity); 
 | 
    } 
 | 
  
 | 
    public void logout(final Activity activity) 
 | 
    { 
 | 
        User.getInstance().logout(activity); 
 | 
    } 
 | 
} 
 |