generated from root/miduo_server
新增DNA支付渠道
parent
603da708fb
commit
ae8d370198
|
@ -2562,4 +2562,290 @@ public class PayController {
|
|||
return json.toString();
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/pay/dnaAdNotify", method = {RequestMethod.POST,RequestMethod.GET})
|
||||
public String dnaAdNotify(String app_id,
|
||||
String ch_id,
|
||||
String ch_order_id,
|
||||
String order_id,
|
||||
String cp_order_id,
|
||||
String mem_id,
|
||||
String order_status,
|
||||
String pay_time,
|
||||
String finish_time,
|
||||
String product_id,
|
||||
String product_name,
|
||||
String product_price,
|
||||
String server_id,
|
||||
String role_id,
|
||||
String ext, String sign) {
|
||||
String result = "FAILURE";
|
||||
if(app_id == null){
|
||||
LOGGER.error("DnaAdCallback request app_id is null");
|
||||
return result;
|
||||
}
|
||||
if(!app_id.equals(Constant.DNA_AD_APPID)){
|
||||
LOGGER.error("DnaAdCallback request app_id is not exist channel app_id : " + app_id + "---local app_id : " + Constant.DNA_AD_APPID);
|
||||
return result;
|
||||
}
|
||||
if(ch_id == null){
|
||||
LOGGER.error("DnaAdCallback request ch_id is null");
|
||||
return result;
|
||||
}
|
||||
if(ch_order_id == null){
|
||||
LOGGER.error("DnaAdCallback request ch_order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(order_id == null){
|
||||
LOGGER.error("DnaAdCallback request order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(cp_order_id == null){
|
||||
LOGGER.error("DnaAdCallback request cp_order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(mem_id == null){
|
||||
LOGGER.error("DnaAdCallback request mem_id is null");
|
||||
return result;
|
||||
}
|
||||
if(order_status == null){
|
||||
LOGGER.error("DnaAdCallback request order_status is null");
|
||||
return result;
|
||||
}
|
||||
int orderStatus = Integer.parseInt(order_status);
|
||||
if(pay_time == null){
|
||||
LOGGER.error("DnaAdCallback request pay_time is null");
|
||||
return result;
|
||||
}
|
||||
int payTime = Integer.parseInt(pay_time);
|
||||
if(finish_time == null){
|
||||
LOGGER.error("DnaAdCallback request finish_time is null");
|
||||
return result;
|
||||
}
|
||||
int finishTime = Integer.parseInt(finish_time);
|
||||
if(product_id == null){
|
||||
LOGGER.error("DnaAdCallback request product_id is null");
|
||||
return result;
|
||||
}
|
||||
if(product_name == null){
|
||||
LOGGER.error("DnaAdCallback request product_name is null");
|
||||
return result;
|
||||
}
|
||||
if(product_price == null){
|
||||
LOGGER.error("DnaAdCallback request product_price is null");
|
||||
return result;
|
||||
}
|
||||
float money = Float.parseFloat(product_price);
|
||||
if(server_id == null){
|
||||
LOGGER.error("DnaAdCallback request server_id is null");
|
||||
return result;
|
||||
}
|
||||
if(role_id == null){
|
||||
LOGGER.error("DnaAdCallback request role_id is null");
|
||||
return result;
|
||||
}
|
||||
if(ext == null){
|
||||
LOGGER.error("DnaAdCallback request ext is null");
|
||||
return result;
|
||||
}
|
||||
if(sign == null){
|
||||
LOGGER.error("Dna01Callback request sign is null");
|
||||
return result;
|
||||
}
|
||||
StringBuffer signStr = new StringBuffer("app_id=" + app_id);
|
||||
signStr.append("&ch_id=" + ch_id);
|
||||
signStr.append("&ch_order_id=" + ch_order_id);
|
||||
signStr.append("&cp_order_id=" + cp_order_id);
|
||||
signStr.append("&ext=" + ext);
|
||||
signStr.append("&finish_time=" + finishTime);
|
||||
signStr.append("&mem_id=" + mem_id);
|
||||
signStr.append("&order_id=" + order_id);
|
||||
signStr.append("&order_status=" + orderStatus);
|
||||
signStr.append("&pay_time=" + payTime);
|
||||
signStr.append("&product_id=" + product_id);
|
||||
signStr.append("&product_name=" + URLEncoder.encode(product_name));
|
||||
signStr.append("&product_price=" + product_price);
|
||||
signStr.append("&role_id=" + role_id);
|
||||
signStr.append("&server_id=" + server_id);
|
||||
signStr.append("&app_key=" + Constant.DNA_AD_APP_KEY);
|
||||
String md5Str = MD5Util.encrypByMd5(signStr.toString());
|
||||
if(!md5Str.equals(sign)){
|
||||
LOGGER.error("DnaAdCallback sign error md5Sign:" + md5Str + " -- md5Str:" + signStr.toString() + " -- sign:" + sign);
|
||||
return result;
|
||||
}
|
||||
//充值成功
|
||||
if(orderStatus == 2){
|
||||
// 统一发货接口
|
||||
int payres = 0;
|
||||
Float amount = money * 100;
|
||||
try{
|
||||
payres = payHandler.processOrderNew(cp_order_id, order_id,amount.intValue());
|
||||
}catch(Exception e) {
|
||||
LOGGER.error("DnaAdCallback error, {} 发货失败", e);
|
||||
}
|
||||
// 成功
|
||||
if (payres == 1) {
|
||||
return "SUCCESS";
|
||||
} else if (payres == -1) {
|
||||
LOGGER.error("DnaAdCallback:gameNoticeInterface, {} 订单不存在,", order_id);
|
||||
return result;
|
||||
} else if (payres == -2) {
|
||||
LOGGER.error("DnaAdCallback:gameNoticeInterface, {} 订单参数错误,", order_id);
|
||||
return result;
|
||||
} else if (payres == -3) {
|
||||
LOGGER.error("DnaAdCallback:gameNoticeInterface, {} 服务器配置错误,", order_id);
|
||||
return result;
|
||||
} else if (payres == -4) {
|
||||
LOGGER.error("DnaAdCallback:gameNoticeInterface, {} 充值失败,", order_id);
|
||||
return result;
|
||||
} else {
|
||||
LOGGER.error("DnaAdCallback:gameNoticeInterface, {} 返回错误,payres = {}", order_id,payres);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/pay/dnaIosNotify", method = {RequestMethod.POST,RequestMethod.GET})
|
||||
public String dnaIosNotify(String app_id,
|
||||
String ch_id,
|
||||
String ch_order_id,
|
||||
String order_id,
|
||||
String cp_order_id,
|
||||
String mem_id,
|
||||
String order_status,
|
||||
String pay_time,
|
||||
String finish_time,
|
||||
String product_id,
|
||||
String product_name,
|
||||
String product_price,
|
||||
String server_id,
|
||||
String role_id,
|
||||
String ext, String sign) {
|
||||
String result = "FAILURE";
|
||||
if(app_id == null){
|
||||
LOGGER.error("DnaIosCallback request app_id is null");
|
||||
return result;
|
||||
}
|
||||
if(!app_id.equals(Constant.DNA_IOS_APPID)){
|
||||
LOGGER.error("DnaIosCallback request app_id is not exist channel app_id : " + app_id + "---local app_id : " + Constant.DNA_AD_APPID);
|
||||
return result;
|
||||
}
|
||||
if(ch_id == null){
|
||||
LOGGER.error("DnaIosCallback request ch_id is null");
|
||||
return result;
|
||||
}
|
||||
if(ch_order_id == null){
|
||||
LOGGER.error("DnaIosCallback request ch_order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(order_id == null){
|
||||
LOGGER.error("DnaIosCallback request order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(cp_order_id == null){
|
||||
LOGGER.error("DnaIosCallback request cp_order_id is null");
|
||||
return result;
|
||||
}
|
||||
if(mem_id == null){
|
||||
LOGGER.error("DnaIosCallback request mem_id is null");
|
||||
return result;
|
||||
}
|
||||
if(order_status == null){
|
||||
LOGGER.error("DnaIosCallback request order_status is null");
|
||||
return result;
|
||||
}
|
||||
int orderStatus = Integer.parseInt(order_status);
|
||||
if(pay_time == null){
|
||||
LOGGER.error("DnaIosCallback request pay_time is null");
|
||||
return result;
|
||||
}
|
||||
int payTime = Integer.parseInt(pay_time);
|
||||
if(finish_time == null){
|
||||
LOGGER.error("DnaIosCallback request finish_time is null");
|
||||
return result;
|
||||
}
|
||||
int finishTime = Integer.parseInt(finish_time);
|
||||
if(product_id == null){
|
||||
LOGGER.error("DnaIosCallback request product_id is null");
|
||||
return result;
|
||||
}
|
||||
if(product_name == null){
|
||||
LOGGER.error("DnaIosCallback request product_name is null");
|
||||
return result;
|
||||
}
|
||||
if(product_price == null){
|
||||
LOGGER.error("DnaIosCallback request product_price is null");
|
||||
return result;
|
||||
}
|
||||
float money = Float.parseFloat(product_price);
|
||||
if(server_id == null){
|
||||
LOGGER.error("DnaIosCallback request server_id is null");
|
||||
return result;
|
||||
}
|
||||
if(role_id == null){
|
||||
LOGGER.error("DnaIosCallback request role_id is null");
|
||||
return result;
|
||||
}
|
||||
if(ext == null){
|
||||
LOGGER.error("DnaAdCallback request ext is null");
|
||||
return result;
|
||||
}
|
||||
if(sign == null){
|
||||
LOGGER.error("DnaIosCallback request sign is null");
|
||||
return result;
|
||||
}
|
||||
StringBuffer signStr = new StringBuffer("app_id=" + app_id);
|
||||
signStr.append("&ch_id=" + ch_id);
|
||||
signStr.append("&ch_order_id=" + ch_order_id);
|
||||
signStr.append("&cp_order_id=" + cp_order_id);
|
||||
signStr.append("&ext=" + ext);
|
||||
signStr.append("&finish_time=" + finishTime);
|
||||
signStr.append("&mem_id=" + mem_id);
|
||||
signStr.append("&order_id=" + order_id);
|
||||
signStr.append("&order_status=" + orderStatus);
|
||||
signStr.append("&pay_time=" + payTime);
|
||||
signStr.append("&product_id=" + product_id);
|
||||
signStr.append("&product_name=" + URLEncoder.encode(product_name));
|
||||
signStr.append("&product_price=" + product_price);
|
||||
signStr.append("&role_id=" + role_id);
|
||||
signStr.append("&server_id=" + server_id);
|
||||
signStr.append("&app_key=" + Constant.DNA_IOS_APP_KEY);
|
||||
String md5Str = MD5Util.encrypByMd5(signStr.toString());
|
||||
if(!md5Str.equals(sign)){
|
||||
LOGGER.error("DnaIosCallback sign error md5Sign:" + md5Str + " -- md5Str:" + signStr.toString() + " -- sign:" + sign);
|
||||
return result;
|
||||
}
|
||||
//充值成功
|
||||
if(orderStatus == 2){
|
||||
// 统一发货接口
|
||||
int payres = 0;
|
||||
Float amount = money * 100;
|
||||
try{
|
||||
payres = payHandler.processOrderNew(cp_order_id, order_id,amount.intValue());
|
||||
}catch(Exception e) {
|
||||
LOGGER.error("DnaIosCallback error, {} 发货失败", e);
|
||||
}
|
||||
// 成功
|
||||
if (payres == 1) {
|
||||
return "SUCCESS";
|
||||
} else if (payres == -1) {
|
||||
LOGGER.error("DnaIosCallback:gameNoticeInterface, {} 订单不存在,", order_id);
|
||||
return result;
|
||||
} else if (payres == -2) {
|
||||
LOGGER.error("DnaIosCallback:gameNoticeInterface, {} 订单参数错误,", order_id);
|
||||
return result;
|
||||
} else if (payres == -3) {
|
||||
LOGGER.error("DnaIosCallback:gameNoticeInterface, {} 服务器配置错误,", order_id);
|
||||
return result;
|
||||
} else if (payres == -4) {
|
||||
LOGGER.error("DnaIosCallback:gameNoticeInterface, {} 充值失败,", order_id);
|
||||
return result;
|
||||
} else {
|
||||
LOGGER.error("DnaIosCallback:gameNoticeInterface, {} 返回错误,payres = {}", order_id,payres);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -161,6 +161,12 @@ public class SDKController {
|
|||
case "F5_GW"://F5渠道
|
||||
uid = SdkVerfy.f5GwVerify(userId, sdktoken);
|
||||
break;
|
||||
case "DNA_AD"://dna安卓渠道
|
||||
uid = SdkVerfy.dnaVerify(userId, sdktoken,1);
|
||||
break;
|
||||
case "DNA_IOS"://dnaios渠道
|
||||
uid = SdkVerfy.dnaVerify(userId, sdktoken,2);
|
||||
break;
|
||||
default:
|
||||
uid = "-1";
|
||||
}
|
||||
|
|
|
@ -670,6 +670,49 @@ public class SdkVerfy {
|
|||
return "-1";
|
||||
}
|
||||
|
||||
/**
|
||||
* DNA渠道登录验证
|
||||
* @param userId
|
||||
* @param sdktoken
|
||||
* @return
|
||||
*/
|
||||
public static String dnaVerify(String userId, String sdktoken,int type) {
|
||||
try {
|
||||
String url = "https://unapi.gmdna.com/cp/user/check";
|
||||
Map<String,String> params = new HashMap<>();
|
||||
String appId = "";
|
||||
String appKey = "";
|
||||
if(type == 1){
|
||||
appId = Constant.DNA_AD_APPID;
|
||||
appKey = Constant.DNA_AD_APP_KEY;
|
||||
}else{
|
||||
appId = Constant.DNA_IOS_APPID;
|
||||
appKey = Constant.DNA_IOS_APP_KEY;
|
||||
}
|
||||
params.put("user_token",sdktoken);
|
||||
params.put("mem_id",userId);
|
||||
params.put("app_id",appId);
|
||||
String str = "app_id="+appId + "&mem_id="+userId +"&user_token=" + sdktoken + "&app_key=" + appKey;
|
||||
String sign = MD5Util.encrypByMd5(str);
|
||||
params.put("sign",sign);
|
||||
String resurl = HttpUtil.postForm(url, params);
|
||||
LOGGER.info("dna请求结果:{}",resurl);
|
||||
if (resurl != null) {
|
||||
JSONObject jsonObject = JSONObject.fromObject(resurl);
|
||||
String status = jsonObject.getString("status");
|
||||
if("1".equals(status)){
|
||||
return userId;
|
||||
}
|
||||
String msg = jsonObject.getString("msg");
|
||||
LOGGER.info("dna登陆失败信息:{}",msg);
|
||||
return "-1";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "-1";
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
params.put("token", "1_o1ioab9ktedQF3Lj5SkinbGOt9GexZX1");
|
||||
|
|
|
@ -158,4 +158,10 @@ public class Constant {
|
|||
public static final String F5_GW_SECURE_KEY = "sgDNFbfuVz2BmJvtIfikl5oAupmbxwym";
|
||||
public static final String F5_GW_PAY_KEY = "rHBzPzP3xGb2UvufRPIDiR6jJXKxgVDU";
|
||||
public static final String F5_GW_VERIFY_URL = "https://api.wingsdk.com/cpapi/v2/user/authorize.do";
|
||||
|
||||
//DNA渠道
|
||||
public static final String DNA_AD_APPID = "54";
|
||||
public static final String DNA_AD_APP_KEY = "d3efca4c80cbbf4d56bf63ffad99a590";
|
||||
public static final String DNA_IOS_APPID = "55";
|
||||
public static final String DNA_IOS_APP_KEY = "d1931d53a8d86925d798479bae03a557";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue