sk_pay/src/main/java/com/jmfy/controller/SDKController.java

220 lines
10 KiB
Java
Raw Normal View History

2024-07-15 11:45:38 +08:00
package com.jmfy.controller;
import com.alibaba.fastjson.JSONObject;
import com.jmfy.dao.UserVerfyDao;
import com.jmfy.sdk.SdkVerfy;
import com.jmfy.util.Constant;
import com.jmfy.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@RestController
public class SDKController {
private static final Logger LOGGER = LoggerFactory.getLogger(SDKController.class);
@Resource
private UserVerfyDao userVerfyDao;
/**
* sdk
*
* @param userId
* @param channel
* @param sdksign
* @param sdktoken
* @param response
*/
@RequestMapping(value = "/sdk/verify", method = {RequestMethod.GET, RequestMethod.POST})
public void verify(String userId, String channel, String sdksign, String sdktoken, HttpServletResponse response) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("uid", userId);
params.put("channel", channel);
params.put("sign", sdksign);
params.put("token", sdktoken);
JSONObject returnResult = new JSONObject();
LOGGER.info("verify参数userId={},channel={},sdksign={},sdktoken={}",userId,channel,sdksign,sdktoken);
if (channel == null) {
returnResult.put("errcode", -2);
response.setContentType("application/json");
response.getOutputStream().write(returnResult.toJSONString().getBytes());
return;
}
int channelType = 0; //区分渠道
String uid = "-1";
switch (channel) {
case "test":
uid = SdkVerfy.testVerfy();
break;
case "quick":
uid = SdkVerfy.quickVerfy(userId, sdktoken);
break;
case "xiaomi":
uid = SdkVerfy.xiaomiVerfy(userId, sdktoken);
break;
case "weiwei":
uid = SdkVerfy.weiweiVerfy(userId, sdktoken);
break;
case "Android_9377":
uid = SdkVerfy.weiwei4366Verfy(userId, sdktoken);
break;
case "Android_ChiTu": //赤兔
uid = SdkVerfy.chiTuVerfy(userId,sdksign, sdktoken);
break;
case "Android_ilod": //韩国正式
case "Android_ilod_OneStore": //韩国正式 OneStore渠道
case "Android_ilod_OneStoreCB": //韩国正式 CB不开支付
case "iOS_ilod": //韩国正式 iOS渠道
channelType = 1;
uid = SdkVerfy.ilodVerfy(userId,sdksign, sdktoken);
break;
case "baidu": //百度正式之前
uid = SdkVerfy.baiduVerfy(userId, sdktoken, sdksign);
break;
case "Android_BaiDu": //百度正式 现在
case "iOS_BaiDu":
uid = SdkVerfy.baiduVerfy(userId, sdktoken, sdksign);
break;
case "iOS_BaiDu_Test": //百度测试 现在
uid = SdkVerfy.baiduTestVerfy(userId, sdktoken, sdksign);
break;
case "6kwOther":
uid = SdkVerfy.sixkwVerfy(userId, sdktoken, Constant.SIXKW_APPID, Constant.SIXKW_VERIFY_URL, Constant.SIXKW_SECRET);
break;
case "6kw":
uid = SdkVerfy.sixkwVerfy(userId, sdktoken, Constant.SIXKW_MAIN_APPID, Constant.SIXKW_VERIFY_URL, Constant.SIXKW_MAIN_LOGIN_SECRET);
break;
case "Android_QuickGame": //国内--时空战场 Android
case "Android_QuickGame_douyin":
2024-07-24 11:56:59 +08:00
uid = SdkVerfy.quickGameVerfy(userId, sdksign, sdktoken);
break;
2024-07-15 11:45:38 +08:00
case "iOS_QuickGame": //国内--时空战场 IOS
uid = SdkVerfy.quickGameVerfy_IOS(userId,sdksign, sdktoken);
break;
case "Android_99": //国内--九九互动渠道Android_99
case "Android_99_Child": //国内--九九互动渠道Android_99_Child
case "Android_99_Child2": //国内--九九互动渠道Android_99_Child2
case "Android_99_Child3": //国内--九九互动渠道Android_99_Child3
case "Android_99_Child4": //国内--九九互动渠道Android_99_Child4
uid = SdkVerfy.jjChannelVerfy(userId,sdksign,sdktoken); //sdksign 客户端 这个值传的是 appid值因为appid值是变动的所以需要客户端传
break;
case "Android_ChangWei": //长尾渠道 安卓
case "iOS_ChangWei": //长尾渠道 IOS
uid = SdkVerfy.changWeiGameVerify(userId,sdksign,sdktoken);
break;
case "Android_XiaoQi"://xiao7渠道
uid = SdkVerfy.xiaoQiVerify(sdktoken, returnResult);
break;
case "Android_AiKen"://艾肯渠道安卓
uid = SdkVerfy.aikenVerify(sdktoken);
break;
case "iOS_AiKen"://艾肯渠道ios
uid = SdkVerfy.aikenVerify(sdktoken);
break;
case "Android_AiKen_Child1"://艾肯渠道
uid = SdkVerfy.aikenVerify(sdktoken);
break;
case "Android_Tap"://千千官方
uid = SdkVerfy.qianqianVerify(userId, sdktoken);
break;
case "Android_Tap_Quick"://千千quick
uid = SdkVerfy.quickVerify(userId, sdktoken);
break;
case "Android_Ky_Quick"://0.1折
uid = SdkVerfy.quickVerify2(userId, sdktoken);
break;
case "iOS_Ky_Quick"://0.1折
uid = SdkVerfy.quickVerify2(userId, sdktoken);
break;
2024-10-15 15:13:05 +08:00
case "Android_BT_QiPa"://bt渠道
uid = SdkVerfy.superVerify(userId, sdktoken);
break;
case "iOS_BT_QiPa"://bt渠道
uid = SdkVerfy.superVerify(userId, sdktoken);
break;
case "Android_BT_QiPa2"://bt渠道
uid = SdkVerfy.superVerify(userId, sdktoken);
break;
case "iOS_BT_QiPa2"://bt渠道
uid = SdkVerfy.superVerify(userId, sdktoken);
break;
2024-12-24 10:08:05 +08:00
case "QKZB01"://quick直播1
2024-11-15 16:50:45 +08:00
uid = SdkVerfy.quickGameVerfy(userId, sdksign, sdktoken);
break;
2024-12-24 10:08:05 +08:00
case "QKZB02"://quick直播2
uid = SdkVerfy.quickGameVerfy2(userId, sdksign, sdktoken);
break;
2024-07-15 11:45:38 +08:00
default:
uid = "-1";
}
if(channelType ==1){ //韩服
LOGGER.info("verify02参数 channel={}, uid={}", channel,uid);
if(uid.equals("0") || uid.equals("-1") || uid.equals("-2") || uid.equals("-3") || uid == null){
String errMessage = "登录验证失败";
switch (uid){
case "0":
errMessage = "请求参数有误"; //body中有数据遗漏时。请求HTTP时请确认projectId、memberId、token是否已全部输入
break;
case "-1":
errMessage = "登录token验证失败"; //Token验证失败。Token被伪造时
break;
case "-2":
errMessage = "MemberId验证失败"; //MemberId验证失败.Token的用户ID信息与body的用户ID不一致时
break;
case "-3":
errMessage = "Token到期"; //Token到期. SDK login api成功的时间与请求相应Authentication check的时间相差60分钟以上时
break;
default:
errMessage = "登录验证失败";
}
returnResult.put("errcode", -1);
returnResult.put("errMessage", errMessage);
response.setContentType("application/json");
response.getOutputStream().write(returnResult.toJSONString().getBytes());
return;
}
}else { //非韩服
if (uid.equals("-1") ||uid == null ) {
returnResult.put("errcode", -1);
response.setContentType("application/json");
response.getOutputStream().write(returnResult.toJSONString().getBytes());
return;
}
}
LOGGER.info("verify03参数 channel={}uid={}",channel, uid);
String name = uid;
String openId = userVerfyDao.verfyUser(name);
//登录流程
returnResult.put("openId", openId);
returnResult.put("guid", uid);
String token = UUID.randomUUID().toString();
returnResult.put("token", token);
RedisUtil.getInstence().putObject("JL_LOGIN_TOKEN", openId, token, -1);
LOGGER.info("verify04参数 channel={}, openId={} token={}uid={}", channel, returnResult.get("openId"), returnResult.get("token"),uid);
response.setContentType("application/json");
response.getOutputStream().write(returnResult.toJSONString().getBytes());
return;
} catch (Exception e) {
LOGGER.error("sdk verify error ",e);
}
}
public static void main(String[] args) {
byte[] bytes = UUID.randomUUID().toString().getBytes();
System.out.println(bytes.length);
}
}