package com.secondworld.sdk; import android.app.Activity; import android.content.Intent; import android.widget.Toast; import androidx.annotation.NonNull; import com.quickgame.android.sdk.QuickGameManager; import com.quickgame.android.sdk.QuickGameManager.QGPaymentCallback; import com.quickgame.android.sdk.QuickGameManager.SDKCallback; import com.quickgame.android.sdk.bean.QGOrderInfo; import com.quickgame.android.sdk.bean.QGRoleInfo; import com.quickgame.android.sdk.bean.QGUserData; import com.quickgame.android.sdk.model.QGUserHolder; import com.secondworld.sdk.utils.CodeA2U; import com.secondworld.sdk.utils.LogUtil; import org.json.JSONException; import org.json.JSONObject; public class MySdkMgr extends PlatformSdkMgr { private static final String TAG = MySdkMgr.class.getSimpleName(); public static MySdkMgr I = new MySdkMgr(); public static QuickGameManager sdkInstance; public static String uid; public static int viplevel; public void init(Activity activity) { sdkInitState = SdkInitState.LOADING; SampleSDKCallback sdkCallback = new SampleSDKCallback(); sdkInstance.init(activity, "28593039166907658241154673876478", sdkCallback); } public void OnCreate(Activity activity) { //sdk init sdkInstance = QuickGameManager.getInstance(); // init by your product code init(activity); sdkInstance.onCreate(activity); } public void onStart() { sdkInstance.onStart(GTGameMain.I.activity); } public void login() { switch (sdkInitState) { case FAILED: case UNKNOWN: { break; } case SUCCEED: { sdkInstance.login(GTGameMain.I.activity); break; } case LOADING: { Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } } } public void SetRoleDate(String roleID, String roleName, String level, String serverID, String serverName, String vipLevel) { //上报角色信息 QGRoleInfo roleInfo = new QGRoleInfo(); roleInfo.setRoleId(roleID); roleInfo.setRoleName(roleName); roleInfo.setRoleLevel(level); roleInfo.setServerId(serverID); roleInfo.setServerName(serverName); roleInfo.setVipLevel(vipLevel); sdkInstance.submitRoleInfo(roleInfo); } public void LogOutInitialize() { sdkInstance.logout(GameActivityProxy.I.activity); } public void pay(String roleID, String money, String serverID, String productID, String productName, String cpOrderID, String Extra, QGRoleInfo roleInfo) { LogUtil.i(TAG, "调起充值:roleID-" + roleID + " money-" + money + " serverID-" + serverID + " productID-" + productID + " productName-" + productName + " Extra-" + Extra); SamplePaymentCallback paymentCallback = new SamplePaymentCallback(); QGOrderInfo orderInfo = new QGOrderInfo(); orderInfo.setOrderSubject(productName); orderInfo.setProductOrderId(cpOrderID); orderInfo.setAmount(Double.parseDouble(money)); orderInfo.setSuggestCurrency("USD"); orderInfo.setGoodsId(productID); orderInfo.setExtrasParams(Extra); sdkInstance.pay(GTGameMain.I.activity, orderInfo, roleInfo, paymentCallback); } /** * sdk login callback */ private class SampleSDKCallback implements SDKCallback { @Override public void onLoginFinished(QGUserData userData, QGUserHolder loginState) { if (loginState.getStateCode() == QGUserHolder.LOGIN_SUCCESS) { //show float view sdkInstance.showFloatView(GameActivityProxy.I.activity); try { args.clear(); JSONObject info = new JSONObject(); String channelID = "9997"; uid = userData.getUid(); String account = userData.getUid() + "@" + channelID; info.put("account", account); info.put("userName", userData.getUid()); info.put("token", userData.getToken()); args.put("info", info); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args); } catch (JSONException e) { e.printStackTrace(); LogUtil.e("SdkManager 登录成功 但信息处理失败", e); } LogUtil.i(TAG, "login success,uid:" + userData.getUid() + " displayUid>:" + userData.getdisplayUid()); } else { Toast.makeText(GameAppProxy.app, "login fail", Toast.LENGTH_LONG).show(); //登录失败 LogUtil.e("SdkManager", "登录失败:"); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); } } @Override public void onInitFinished(boolean isSuccess,String msg) { if (isSuccess) { LogUtil.i(TAG, "channelId:" + sdkInstance.getChannelId() + "init success->"); sdkInitState = SdkInitState.SUCCEED; LogUtil.debug("SdkManager", "初始化成功"); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk); } else { Toast.makeText(GameAppProxy.app, "init fail "+msg, Toast.LENGTH_LONG).show(); //初始化失败 sdkInitState = SdkInitState.FAILED; LogUtil.e("SdkManager", "初始化失败 msg:" + msg); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail); } } @Override public void onLogout() { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { //注销成功 //注销成功,需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); } }); } @Override public void onGooglePlaySub(String goodsId, String sdkOrder, boolean isAutoRenewing, boolean isAcknowledged) { LogUtil.i(TAG, "goodsId=" + goodsId + "&&sdkOrder=" + sdkOrder); } } /** * pay callback */ private class SamplePaymentCallback implements QGPaymentCallback { @Override public void onPaySuccess(String orderId, String orderNo, String goodsId, String extraParams) { LogUtil.i(TAG,"pay success"); //支付成功 //sdkOrderID:quick订单号 cpOrderID:游戏订单号 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk); } @Override public void onPayFailed(String orderId, String orderNo, String errorMessage) { LogUtil.i(TAG, "pay fail:" + errorMessage); //支付失败 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail); } @Override public void onPayCancel(String orderId, String orderNo, String errorMessage) { LogUtil.i(TAG, "pay cancel"); //支付取消 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayCancel); } } public void onResume() { sdkInstance.onResume(GTGameMain.I.activity); } public void onPause() { sdkInstance.onPause(GTGameMain.I.activity); } public void onStop() { sdkInstance.onStop(GTGameMain.I.activity); } public void onDestroy() { //退出登录、退出游戏调用 sdkInstance.onDestroy(GTGameMain.I.activity); } public void onActivityResult(int requestCode, int resultCode, Intent data) { sdkInstance.onActivityResult(requestCode,resultCode,data); } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { sdkInstance.onRequestPermissionsResult(requestCode, permissions, grantResults); } }