public void addChannel(UChannel channel) {
    if (channels.containsKey(channel.getChannelID())) {
      Log.e("The channelID is already is exists. add channel faild." + channel.getChannelID());
      return;
    }

    channels.put(channel.getChannelID(), channel);
  }
  // 添加或者修改渠道
  public void saveChannel(UChannel channel) {
    if (channels.containsKey(channel.getChannelID())) {
      channels.remove(channel.getChannelID());
    }

    Log.d("the channel is " + channel);
    UChannel c = getChannelByID(channel.getId());
    if (c != null) {
      channels.remove(c.getChannelID());
    }

    channels.put(channel.getChannelID(), channel);
  }
 public void loadChannelData(List<UChannel> channelLst) {
   channels = new HashMap<Integer, UChannel>();
   for (UChannel channel : channelLst) {
     channels.put(channel.getChannelID(), channel);
   }
   Log.i("Load channels:" + channels.size());
 }
示例#4
0
  @Action("getToken")
  public void getLoginToken() {

    Log.d("getToken...");

    try {

      final UGame game = gameManager.queryGame(this.appID);
      if (game == null) {
        renderState(StateCode.CODE_GAME_NONE, null);
        return;
      }

      final UChannel channel = channelManager.queryChannel(this.channelID);
      if (channel == null) {

        renderState(StateCode.CODE_CHANNEL_NONE, null);
        return;
      }

      if (channel.getAppID() != this.appID) {
        renderState(StateCode.CODE_CHANNEL_NOT_MATCH, null);
        return;
      }

      UChannelMaster master = channel.getMaster();
      if (master == null) {
        renderState(StateCode.CODE_CHANNEL_NONE, null);
        return;
      }

      StringBuilder sb = new StringBuilder();
      sb.append("appID=")
          .append(this.appID)
          .append("channelID=")
          .append(this.channelID)
          .append("extension=")
          .append(this.extension)
          .append(game.getAppkey());

      if (!userManager.isSignOK(sb.toString(), sign)) {
        Log.e("the sign is invalid. sign:" + sign);
        renderState(StateCode.CODE_SIGN_ERROR, null);
        return;
      }

      ISDKScript verifier = SDKCacheManager.getInstance().getSDKScript(channel);

      if (verifier == null) {
        Log.e("the ISDKScript is not found . channelID:" + channelID);
        renderState(StateCode.CODE_VERIFY_FAILED, null);
        return;
      }

      Log.d("The auth url is " + channel.getChannelAuthUrl());
      Log.d("channel is " + channel.getChannelID() + ";extension is " + extension);

      verifier.verify(
          channel,
          extension,
          new ISDKVerifyListener() {
            @Override
            public void onSuccess(SDKVerifyResult sdkResult) {

              try {
                Log.d("user verify success. result:" + sdkResult.getUserID());
                if (sdkResult.isSuccess() && !StringUtils.isEmpty(sdkResult.getUserID())) {

                  UUser user =
                      userManager.getUserByCpID(
                          channel.getAppID(), channel.getChannelID(), sdkResult.getUserID());

                  if (user == null) {
                    user = userManager.generateUser(channel, sdkResult);
                  } else {
                    user.setChannelUserName(
                        sdkResult.getUserName() == null ? "" : sdkResult.getUserName());
                    user.setChannelUserNick(
                        sdkResult.getNickName() == null ? "" : sdkResult.getNickName());
                    user.setLastLoginTime(new Date().getTime() + "");
                  }

                  user.setToken(UGenerator.generateToken(user, game.getAppSecret()));

                  userManager.saveUser(user);

                  JSONObject data = new JSONObject();
                  data.put("userID", user.getId());
                  data.put("sdkUserID", user.getChannelUserID());
                  data.put("username", user.getName());
                  data.put("sdkUserName", user.getChannelUserName());
                  data.put("token", user.getToken());
                  data.put("extension", sdkResult.getExtension());
                  data.put("timestamp", user.getLastLoginTime());
                  renderState(StateCode.CODE_SUCCESS, data);

                } else {
                  renderState(StateCode.CODE_AUTH_FAILED, null);
                }

              } catch (Exception e) {
                renderState(StateCode.CODE_AUTH_FAILED, null);
                e.printStackTrace();
              }
            }

            @Override
            public void onFailed(String errorMsg) {
              Log.e("The user verify failed. errorMsg:" + errorMsg);
              renderState(StateCode.CODE_AUTH_FAILED, null);
            }
          });

    } catch (Exception e) {
      Log.e(e.getMessage());
      renderState(StateCode.CODE_AUTH_FAILED, null);
    }
  }