记得上下班打卡 | git大法好,push需谨慎

Commit 948429c7 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 0ce021e5 ae4a9b70
package com.liquidnet.service.dragon.dto; package com.liquidnet.service.dragon.dto;
import com.alibaba.fastjson.JSON; import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -37,7 +37,7 @@ public class DragonPayBaseReqDto implements Serializable, Cloneable{ ...@@ -37,7 +37,7 @@ public class DragonPayBaseReqDto implements Serializable, Cloneable{
@Override @Override
public String toString(){ public String toString(){
return JSON.toJSONString(this); return JsonUtils.toJson(this);
} }
private static final DragonPayBaseReqDto obj = new DragonPayBaseReqDto(); private static final DragonPayBaseReqDto obj = new DragonPayBaseReqDto();
......
package com.liquidnet.service.consumer.dragon.service.receiver;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.dragon.service.IBaseDao;
import com.liquidnet.service.dragon.constant.DragonConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import java.util.HashMap;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: AbstractRedisReceiver
* @Package com.liquidnet.service.consumer.dragon.service.receiver
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/22 20:28
*/
@Slf4j
public abstract class AbstractRedisReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Autowired
private IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("接受到来自redis PAY key:{} 的消息",getRedisStreamKey());
log.info("message id " + message.getId());
log.info("stream " + message.getStream());
log.info("body " + message.getValue());
boolean result = this.consumerSqlDaoHandler(message.getValue().get("message"));
// 消费成功确认,消息删除和消息确认是一个事务
if(result){
log.error("consumer success delete message messageId:{} ",message.getId());
try {
// stringRedisTemplate.multi();
stringRedisTemplate.opsForStream().delete(this.getRedisStreamKey(), message.getId());
// stringRedisTemplate.opsForStream().acknowledge(getRedisStreamGroup(), message);
// stringRedisTemplate.exec();
} catch (Exception e) {
e.printStackTrace();
log.error("delete redis queue message error messageId:{} errMsg:{}",message.getId(),e.getMessage());
}
}
}
private boolean consumerSqlDaoHandler(String msg) {
try {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class);
log.debug("CONSUMER SQL ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
log.debug("CONSUMER SQL ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
log.debug("CONSUMER SQL result of execution:{}", rstBatchSqls);
if (rstBatchSqls) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
log.error("CONSUMER SQL Exception error:{}", e);
}
return false;
}
/**
* 给 REDIS 队列发送消息 数据库相关
*
* @param msg 接收到的内容
* @return
*/
private boolean sendMySqlRedis(String msg) {
try {
HashMap<String, String> map = new HashMap<>();
map.put("message", msg);
MapRecord<String, String, String> record = StreamRecords.mapBacked(map).withStreamKey(DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_KEY.getCode());
stringRedisTemplate.opsForStream().add(record);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
protected abstract String getRedisStreamKey();
protected abstract String getRedisStreamGroup();
}
package com.liquidnet.service.consumer.dragon.service.receiver; package com.liquidnet.service.consumer.dragon.service.receiver;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.dragon.service.IBaseDao;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* 支付商户通知消费 * 支付商户通知消费
*/ */
@Slf4j @Slf4j
@Component @Component
public class RedisMchNotifyFailReceiver implements StreamListener<String, MapRecord<String, String, String>> { public class RedisMchNotifyFailReceiver extends AbstractRedisReceiver {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override @Override
public void onMessage(MapRecord<String, String, String> message) { protected String getRedisStreamKey() {
log.info("接受到来自redis pay notify 的消息"); return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_ERROR_KEY.getCode();
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
} }
private void consumerSqlDaoHandler(String msg) { @Override
try { protected String getRedisStreamGroup() {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class); return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_ERROR_GROUP.getCode();
log.debug("CONSUMER SQL ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
log.debug("CONSUMER SQL ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
log.debug("CONSUMER SQL result of execution:{}", rstBatchSqls);
if (rstBatchSqls) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
} }
} }
package com.liquidnet.service.consumer.dragon.service.receiver; package com.liquidnet.service.consumer.dragon.service.receiver;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.dragon.service.IBaseDao;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* 支付商户通知消费 * 支付商户通知消费
*/ */
@Slf4j @Slf4j
@Component @Component
public class RedisMchNotifyReceiver implements StreamListener<String, MapRecord<String, String, String>> { public class RedisMchNotifyReceiver extends AbstractRedisReceiver {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override @Override
public void onMessage(MapRecord<String, String, String> message) { protected String getRedisStreamKey() {
log.info("接受到来自redis pay notify 的消息"); return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_KEY.getCode();
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
} }
private void consumerSqlDaoHandler(String msg) { @Override
try { protected String getRedisStreamGroup() {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class); return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_GROUP.getCode();
log.debug("CONSUMER SQL ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
log.debug("CONSUMER SQL ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
log.debug("CONSUMER SQL result of execution:{}", rstBatchSqls);
if (rstBatchSqls) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
} }
} }
package com.liquidnet.service.consumer.dragon.service.receiver; package com.liquidnet.service.consumer.dragon.service.receiver;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.dragon.service.IBaseDao;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* 支付商户通知消费 * 支付商户通知消费
*/ */
@Slf4j @Slf4j
@Component @Component
public class RedisPayNotifyReceiver implements StreamListener<String, MapRecord<String, String, String>> { public class RedisPayNotifyReceiver extends AbstractRedisReceiver {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override @Override
public void onMessage(MapRecord<String, String, String> message) { protected String getRedisStreamKey() {
log.info("接受到来自redis pay notify 的消息"); return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_NOTIFY_KEY.getCode();
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
} }
private void consumerSqlDaoHandler(String msg) { @Override
try { protected String getRedisStreamGroup() {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class); return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_NOTIFY_GROUP.getCode();
log.debug("CONSUMER SQL ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
log.debug("CONSUMER SQL ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
log.debug("CONSUMER SQL result of execution:{}", rstBatchSqls);
if (rstBatchSqls) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
} }
} }
package com.liquidnet.service.consumer.dragon.service.receiver; package com.liquidnet.service.consumer.dragon.service.receiver;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.consumer.dragon.service.IBaseDao;
import com.liquidnet.service.dragon.constant.DragonConstant; import com.liquidnet.service.dragon.constant.DragonConstant;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@Slf4j @Slf4j
@Component @Component
public class RedisPayReceiver implements StreamListener<String, MapRecord<String, String, String>> { public class RedisPayReceiver extends AbstractRedisReceiver {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Override @Override
public void onMessage(MapRecord<String, String, String> message) { protected String getRedisStreamKey() {
log.info("接受到来自redis PAY 的消息"); return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_KEY.getCode();
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
boolean result = consumerSqlDaoHandler(message.getValue().get("message"));
// 消费成功确认,消息删除和消息确认是一个事务
if(result){
stringRedisTemplate.multi();
stringRedisTemplate.opsForStream().delete(DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_KEY.getCode(), message.getId());
// stringRedisTemplate.opsForStream().acknowledge(DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_GROUP.getCode(), message);
stringRedisTemplate.exec();
}
} }
private boolean consumerSqlDaoHandler(String msg) { @Override
try { protected String getRedisStreamGroup() {
SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(msg, SqlMapping.SqlMessage.class); return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_GROUP.getCode();
log.debug("CONSUMER SQL ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
log.debug("CONSUMER SQL ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
log.debug("CONSUMER SQL result of execution:{}", rstBatchSqls);
if (rstBatchSqls) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 给 REDIS 队列发送消息 数据库相关
*
* @param msg 接收到的内容
* @return
*/
private boolean sendMySqlRedis(String msg) {
try {
HashMap<String, String> map = new HashMap<>();
map.put("message", msg);
MapRecord<String, String, String> record = StreamRecords.mapBacked(map).withStreamKey(DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_KEY.getCode());
stringRedisTemplate.opsForStream().add(record);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} }
} }
...@@ -14,7 +14,6 @@ import org.springframework.stereotype.Component; ...@@ -14,7 +14,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList;
@Slf4j @Slf4j
@Component @Component
...@@ -32,6 +31,16 @@ public class RedisRefundReceiver implements StreamListener<String, MapRecord<Str ...@@ -32,6 +31,16 @@ public class RedisRefundReceiver implements StreamListener<String, MapRecord<Str
System.out.println("stream " + message.getStream()); System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue()); System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message")); consumerSqlDaoHandler(message.getValue().get("message"));
log.error("consumer success delete message messageId:{} ",message.getId());
try {
// stringRedisTemplate.multi();
stringRedisTemplate.opsForStream().delete(DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode(), message.getId());
// stringRedisTemplate.opsForStream().acknowledge(getRedisStreamGroup(), message);
// stringRedisTemplate.exec();
} catch (Exception e) {
log.error("delete redis queue message Exception error: {} ",e);
log.error("delete redis queue message error messageId:{} errMsg:{}",message.getId(),e.getMessage());
}
} }
private void consumerSqlDaoHandler(String msg) { private void consumerSqlDaoHandler(String msg) {
......
...@@ -143,7 +143,7 @@ public class AlipayBiz{ ...@@ -143,7 +143,7 @@ public class AlipayBiz{
* @return * @return
*/ */
public static Map<String, Object> tradeQuery(String outTradeNo) { public static Map<String, Object> tradeQuery(String outTradeNo) {
log.info("======>支付宝交易查询"); log.info("AlipayBiz.tradeQuery-->> 支付宝交易查询");
AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient(); AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient();
SortedMap<String, Object> bizContentMap = new TreeMap<>(); SortedMap<String, Object> bizContentMap = new TreeMap<>();
......
...@@ -37,8 +37,8 @@ public class WepayBiz{ ...@@ -37,8 +37,8 @@ public class WepayBiz{
* @return * @return
*/ */
public Map<String, Object> tradeQuery(String outTradeNo, String appid) { public Map<String, Object> tradeQuery(String outTradeNo, String appid) {
log.info("WepayBiz.tradeQuery-->> request outTradeNo:{} appid:{} ",outTradeNo,appid);
Map<String, Object> respMap = new HashMap<>(); Map<String, Object> respMap = new HashMap<>();
log.info("======>支付宝交易查询");
SortedMap<String, Object> paramMap = new TreeMap<>(); SortedMap<String, Object> paramMap = new TreeMap<>();
paramMap.put("appid", appid); paramMap.put("appid", appid);
paramMap.put("mch_id", merchantId); paramMap.put("mch_id", merchantId);
...@@ -57,7 +57,7 @@ public class WepayBiz{ ...@@ -57,7 +57,7 @@ public class WepayBiz{
//接受到返回信息 //接受到返回信息
String xmlStr = EntityUtils.toString(response.getEntity(), "UTF-8"); String xmlStr = EntityUtils.toString(response.getEntity(), "UTF-8");
EntityUtils.consume(entity); EntityUtils.consume(entity);
log.info("dragonPay:wepay:wap response xmlStr: {} ",xmlStr); log.info("WepayBiz.tradeQuery-->> response xmlStr: {} ",xmlStr);
respMap = XmlUtil.xmlToMap(xmlStr); respMap = XmlUtil.xmlToMap(xmlStr);
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage()); log.error(e.getMessage());
......
...@@ -63,7 +63,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy { ...@@ -63,7 +63,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
//构造请求参数 //构造请求参数
SortedMap<String, Object> commonParams = this.buildRequestParamMap(dragonPayBaseReqDto); SortedMap<String, Object> commonParams = this.buildRequestParamMap(dragonPayBaseReqDto);
//追加请求参数 //追加请求参数
SortedMap<String, Object> parameters = appendRequestParam(commonParams); SortedMap<String, Object> parameters = this.appendRequestParam(commonParams,dragonPayBaseReqDto);
//生成签名 //生成签名
String sign = PayWepayUtils.getInstance().createSign(parameters); String sign = PayWepayUtils.getInstance().createSign(parameters);
parameters.put("sign", sign); parameters.put("sign", sign);
...@@ -117,12 +117,13 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy { ...@@ -117,12 +117,13 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
* @return * @return
*/ */
protected DragonPayBaseRespDto buildCommonRespDto(DragonPayBaseReqDto dragonPayBaseReqDto,WepayPayRespDto respWepayDto){ protected DragonPayBaseRespDto buildCommonRespDto(DragonPayBaseReqDto dragonPayBaseReqDto,WepayPayRespDto respWepayDto){
String nonceStr = PayWepayUtils.getInstance().getNonceStr();
DragonPayBaseRespDto respDto = new DragonPayBaseRespDto(); DragonPayBaseRespDto respDto = new DragonPayBaseRespDto();
respDto.setCode(dragonPayBaseReqDto.getCode()); respDto.setCode(dragonPayBaseReqDto.getCode());
respDto.setOrderCode(dragonPayBaseReqDto.getOrderCode()); respDto.setOrderCode(dragonPayBaseReqDto.getOrderCode());
DragonPayBaseRespDto.PayData payData = new DragonPayBaseRespDto.PayData(); DragonPayBaseRespDto.PayData payData = new DragonPayBaseRespDto.PayData();
payData.setAppId(respWepayDto.getAppid()); payData.setAppId(respWepayDto.getAppid());
payData.setNonceStr(respWepayDto.getNonceStr()); payData.setNonceStr(nonceStr);
payData.setPackages("prepay_id="+respWepayDto.getPrepayId()); payData.setPackages("prepay_id="+respWepayDto.getPrepayId());
payData.setSignType("MD5"); payData.setSignType("MD5");
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")); Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
...@@ -150,7 +151,6 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy { ...@@ -150,7 +151,6 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
String timeExpire = DateUtil.format(DateUtil.Formatter.yyyyMMddHHmmss.parse(dragonPayBaseReqDto.getCreateDate()).plusMinutes(Long.parseLong(dragonPayBaseReqDto.getExpireTime())),DateUtil.Formatter.yyyyMMddHHmmssTrim); String timeExpire = DateUtil.format(DateUtil.Formatter.yyyyMMddHHmmss.parse(dragonPayBaseReqDto.getCreateDate()).plusMinutes(Long.parseLong(dragonPayBaseReqDto.getExpireTime())),DateUtil.Formatter.yyyyMMddHHmmssTrim);
parameters.put("time_expire", timeExpire); parameters.put("time_expire", timeExpire);
parameters.put("notify_url", this.getNotifyUrl()); parameters.put("notify_url", this.getNotifyUrl());
parameters.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return parameters; return parameters;
}; };
...@@ -159,7 +159,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy { ...@@ -159,7 +159,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
* @param requestMap * @param requestMap
* @return * @return
*/ */
abstract SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap); abstract SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap,DragonPayBaseReqDto dragonPayBaseReqDto);
/** /**
* 构造返回参数 * 构造返回参数
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto; import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler; import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
import com.liquidnet.service.dragon.constant.DragonConstant; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto; import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.utils.PayWepayUtils; import com.liquidnet.service.dragon.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -29,7 +30,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy { ...@@ -29,7 +30,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy {
private String notifyUrl; private String notifyUrl;
@Override @Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) { SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap,DragonPayBaseReqDto dragonPayBaseReqDto) {
requestMap.put("trade_type", "APP"); requestMap.put("trade_type", "APP");
requestMap.put("appid", PayWepayUtils.getInstance().getAPP_ID()); requestMap.put("appid", PayWepayUtils.getInstance().getAPP_ID());
return requestMap; return requestMap;
...@@ -43,7 +44,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy { ...@@ -43,7 +44,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy {
paramMap.put("appid", respDto.getAppid()); paramMap.put("appid", respDto.getAppid());
paramMap.put("partnerid", respDto.getMchId()); paramMap.put("partnerid", respDto.getMchId());
paramMap.put("prepayid", respDto.getPrepayId()); paramMap.put("prepayid", respDto.getPrepayId());
paramMap.put("package", "Sign=WXPay"); paramMap.put("package", payBaseRespDto.getPayData().getPackages());
paramMap.put("noncestr", respDto.getNonceStr()); paramMap.put("noncestr", respDto.getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp()); paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp());
String sign = PayWepayUtils.getInstance().createSign(paramMap); String sign = PayWepayUtils.getInstance().createSign(paramMap);
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto; import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler; import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
import com.liquidnet.service.dragon.constant.DragonConstant; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto; import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.utils.PayWepayUtils; import com.liquidnet.service.dragon.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -29,9 +30,10 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{ ...@@ -29,9 +30,10 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{
private String notifyUrl; private String notifyUrl;
@Override @Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) { SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap, DragonPayBaseReqDto dragonPayBaseReqDto) {
requestMap.put("trade_type", "JSAPI"); requestMap.put("trade_type", "JSAPI");
requestMap.put("appid", PayWepayUtils.getInstance().getAPPLET_APP_ID()); requestMap.put("appid", PayWepayUtils.getInstance().getAPPLET_APP_ID());
requestMap.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return requestMap; return requestMap;
} }
...@@ -39,12 +41,12 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{ ...@@ -39,12 +41,12 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) { DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) {
//设置签名 //设置签名
SortedMap<String, Object> paramMap = new TreeMap<String, Object>(); SortedMap<String, Object> paramMap = new TreeMap<String, Object>();
paramMap.put("appid", respDto.getAppid()); paramMap.put("appId", respDto.getAppid());
paramMap.put("package", payBaseRespDto.getPayData().getPackages()); paramMap.put("package", payBaseRespDto.getPayData().getPackages());
paramMap.put("noncestr", respDto.getNonceStr()); paramMap.put("nonceStr", payBaseRespDto.getPayData().getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp()); paramMap.put("timeStamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("signType", payBaseRespDto.getPayData().getSignType());
String sign = PayWepayUtils.getInstance().createSign(paramMap); String sign = PayWepayUtils.getInstance().createSign(paramMap);
payBaseRespDto.getPayData().setSignType("MD5");
payBaseRespDto.getPayData().setPaySign(sign); payBaseRespDto.getPayData().setPaySign(sign);
return payBaseRespDto; return payBaseRespDto;
} }
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto; import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler; import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
import com.liquidnet.service.dragon.constant.DragonConstant; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto; import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.utils.PayWepayUtils; import com.liquidnet.service.dragon.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -29,9 +30,10 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{ ...@@ -29,9 +30,10 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{
private String notifyUrl; private String notifyUrl;
@Override @Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) { SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap, DragonPayBaseReqDto dragonPayBaseReqDto) {
requestMap.put("trade_type", "JSAPI"); requestMap.put("trade_type", "JSAPI");
requestMap.put("appid", PayWepayUtils.getInstance().getJS_APP_ID()); requestMap.put("appid", PayWepayUtils.getInstance().getJS_APP_ID());
requestMap.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return requestMap; return requestMap;
} }
...@@ -39,12 +41,12 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{ ...@@ -39,12 +41,12 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) { DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) {
//设置签名 //设置签名
SortedMap<String, Object> paramMap = new TreeMap<String, Object>(); SortedMap<String, Object> paramMap = new TreeMap<String, Object>();
paramMap.put("appid", respDto.getAppid()); paramMap.put("appId", respDto.getAppid());
paramMap.put("package", payBaseRespDto.getPayData().getPackages()); paramMap.put("package", payBaseRespDto.getPayData().getPackages());
paramMap.put("noncestr", respDto.getNonceStr()); paramMap.put("nonceStr", payBaseRespDto.getPayData().getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp()); paramMap.put("timeStamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("signType", payBaseRespDto.getPayData().getSignType());
String sign = PayWepayUtils.getInstance().createSign(paramMap); String sign = PayWepayUtils.getInstance().createSign(paramMap);
payBaseRespDto.getPayData().setSignType("MD5");
payBaseRespDto.getPayData().setPaySign(sign); payBaseRespDto.getPayData().setPaySign(sign);
return payBaseRespDto; return payBaseRespDto;
} }
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto; import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler; import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
import com.liquidnet.service.dragon.constant.DragonConstant; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto; import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.utils.PayWepayUtils; import com.liquidnet.service.dragon.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -28,7 +29,7 @@ public class WepayStrategyWapImpl extends AbstractWepayStrategy{ ...@@ -28,7 +29,7 @@ public class WepayStrategyWapImpl extends AbstractWepayStrategy{
private String notifyUrl; private String notifyUrl;
@Override @Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) { SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap, DragonPayBaseReqDto dragonPayBaseReqDto) {
requestMap.put("trade_type", "MWEB"); requestMap.put("trade_type", "MWEB");
requestMap.put("appid", PayWepayUtils.getInstance().getWAP_APP_ID()); requestMap.put("appid", PayWepayUtils.getInstance().getWAP_APP_ID());
return requestMap; return requestMap;
......
...@@ -89,7 +89,13 @@ public class PayController { ...@@ -89,7 +89,13 @@ public class PayController {
dragonPayBaseReqDto.setOpenId(openId); dragonPayBaseReqDto.setOpenId(openId);
dragonPayBaseReqDto.setType(type); dragonPayBaseReqDto.setType(type);
dragonPayBaseReqDto.setPrice(price); dragonPayBaseReqDto.setPrice(price);
if(StringUtil.isNotNull(name)&&name.length()>=32){
name = name.substring(0,32);
}
dragonPayBaseReqDto.setName(name); dragonPayBaseReqDto.setName(name);
if(StringUtil.isNotNull(detail)&&detail.length()>=64){
detail = detail.substring(0,64);
}
dragonPayBaseReqDto.setDetail(detail); dragonPayBaseReqDto.setDetail(detail);
dragonPayBaseReqDto.setOrderCode(orderCode); dragonPayBaseReqDto.setOrderCode(orderCode);
dragonPayBaseReqDto.setClientIp(clientIp); dragonPayBaseReqDto.setClientIp(clientIp);
......
...@@ -469,7 +469,8 @@ public class DataImpl { ...@@ -469,7 +469,8 @@ public class DataImpl {
while (allCount.next()) { while (allCount.next()) {
allCountResult = allCount.getInt("allCount"); allCountResult = allCount.getInt("allCount");
} }
allCount.close();
pstmt.close();
do { do {
ArrayList<KylinOrderTickets> orderList = new ArrayList(); ArrayList<KylinOrderTickets> orderList = new ArrayList();
ArrayList<KylinOrderTicketStatus> orderStatusList = new ArrayList(); ArrayList<KylinOrderTicketStatus> orderStatusList = new ArrayList();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment