记得上下班打卡 | 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;
import com.alibaba.fastjson.JSON;
import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.Data;
import java.io.Serializable;
......@@ -37,7 +37,7 @@ public class DragonPayBaseReqDto implements Serializable, Cloneable{
@Override
public String toString(){
return JSON.toJSONString(this);
return JsonUtils.toJson(this);
}
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;
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.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 支付商户通知消费
*/
@Slf4j
@Component
public class RedisMchNotifyFailReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
public class RedisMchNotifyFailReceiver extends AbstractRedisReceiver {
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("接受到来自redis pay notify 的消息");
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
protected String getRedisStreamKey() {
return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_ERROR_KEY.getCode();
}
private void 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) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
@Override
protected String getRedisStreamGroup() {
return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_ERROR_GROUP.getCode();
}
}
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.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 支付商户通知消费
*/
@Slf4j
@Component
public class RedisMchNotifyReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
public class RedisMchNotifyReceiver extends AbstractRedisReceiver {
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("接受到来自redis pay notify 的消息");
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
protected String getRedisStreamKey() {
return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_KEY.getCode();
}
private void 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) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
@Override
protected String getRedisStreamGroup() {
return DragonConstant.MysqlRedisQueueEnum.PAY_MCH_NOTIFY_GROUP.getCode();
}
}
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.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 支付商户通知消费
*/
@Slf4j
@Component
public class RedisPayNotifyReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
public class RedisPayNotifyReceiver extends AbstractRedisReceiver {
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("接受到来自redis pay notify 的消息");
System.out.println("message id " + message.getId());
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
consumerSqlDaoHandler(message.getValue().get("message"));
protected String getRedisStreamKey() {
return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_NOTIFY_KEY.getCode();
}
private void 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) {
//应答
}
} catch (Exception e) {
e.printStackTrace();
}
@Override
protected String getRedisStreamGroup() {
return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_NOTIFY_GROUP.getCode();
}
}
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 org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@Slf4j
@Component
public class RedisPayReceiver implements StreamListener<String, MapRecord<String, String, String>> {
@Resource
IBaseDao baseDao;
@Autowired
StringRedisTemplate stringRedisTemplate;
public class RedisPayReceiver extends AbstractRedisReceiver {
@Override
public void onMessage(MapRecord<String, String, String> message) {
log.info("接受到来自redis PAY 的消息");
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) {
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();
}
return false;
protected String getRedisStreamKey() {
return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_KEY.getCode();
}
/**
* 给 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;
}
@Override
protected String getRedisStreamGroup() {
return DragonConstant.MysqlRedisQueueEnum.DRAGON_PAY_GROUP.getCode();
}
}
......@@ -14,7 +14,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.LinkedList;
@Slf4j
@Component
......@@ -32,6 +31,16 @@ public class RedisRefundReceiver implements StreamListener<String, MapRecord<Str
System.out.println("stream " + message.getStream());
System.out.println("body " + message.getValue());
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) {
......
......@@ -143,7 +143,7 @@ public class AlipayBiz{
* @return
*/
public static Map<String, Object> tradeQuery(String outTradeNo) {
log.info("======>支付宝交易查询");
log.info("AlipayBiz.tradeQuery-->> 支付宝交易查询");
AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient();
SortedMap<String, Object> bizContentMap = new TreeMap<>();
......
......@@ -37,8 +37,8 @@ public class WepayBiz{
* @return
*/
public Map<String, Object> tradeQuery(String outTradeNo, String appid) {
log.info("WepayBiz.tradeQuery-->> request outTradeNo:{} appid:{} ",outTradeNo,appid);
Map<String, Object> respMap = new HashMap<>();
log.info("======>支付宝交易查询");
SortedMap<String, Object> paramMap = new TreeMap<>();
paramMap.put("appid", appid);
paramMap.put("mch_id", merchantId);
......@@ -57,7 +57,7 @@ public class WepayBiz{
//接受到返回信息
String xmlStr = EntityUtils.toString(response.getEntity(), "UTF-8");
EntityUtils.consume(entity);
log.info("dragonPay:wepay:wap response xmlStr: {} ",xmlStr);
log.info("WepayBiz.tradeQuery-->> response xmlStr: {} ",xmlStr);
respMap = XmlUtil.xmlToMap(xmlStr);
}catch (Exception e){
log.error(e.getMessage());
......
......@@ -63,7 +63,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
//构造请求参数
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);
parameters.put("sign", sign);
......@@ -117,12 +117,13 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
* @return
*/
protected DragonPayBaseRespDto buildCommonRespDto(DragonPayBaseReqDto dragonPayBaseReqDto,WepayPayRespDto respWepayDto){
String nonceStr = PayWepayUtils.getInstance().getNonceStr();
DragonPayBaseRespDto respDto = new DragonPayBaseRespDto();
respDto.setCode(dragonPayBaseReqDto.getCode());
respDto.setOrderCode(dragonPayBaseReqDto.getOrderCode());
DragonPayBaseRespDto.PayData payData = new DragonPayBaseRespDto.PayData();
payData.setAppId(respWepayDto.getAppid());
payData.setNonceStr(respWepayDto.getNonceStr());
payData.setNonceStr(nonceStr);
payData.setPackages("prepay_id="+respWepayDto.getPrepayId());
payData.setSignType("MD5");
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
......@@ -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);
parameters.put("time_expire", timeExpire);
parameters.put("notify_url", this.getNotifyUrl());
parameters.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return parameters;
};
......@@ -159,7 +159,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
* @param requestMap
* @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;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
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.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -29,7 +30,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy {
private String notifyUrl;
@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("appid", PayWepayUtils.getInstance().getAPP_ID());
return requestMap;
......@@ -43,7 +44,7 @@ public class WepayStrategyAppImpl extends AbstractWepayStrategy {
paramMap.put("appid", respDto.getAppid());
paramMap.put("partnerid", respDto.getMchId());
paramMap.put("prepayid", respDto.getPrepayId());
paramMap.put("package", "Sign=WXPay");
paramMap.put("package", payBaseRespDto.getPayData().getPackages());
paramMap.put("noncestr", respDto.getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp());
String sign = PayWepayUtils.getInstance().createSign(paramMap);
......
......@@ -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.strategy.annotation.StrategyWepayHandler;
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.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -29,9 +30,10 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{
private String notifyUrl;
@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("appid", PayWepayUtils.getInstance().getAPPLET_APP_ID());
requestMap.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return requestMap;
}
......@@ -39,12 +41,12 @@ public class WepayStrategyAppletImpl extends AbstractWepayStrategy{
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) {
//设置签名
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("noncestr", respDto.getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("nonceStr", payBaseRespDto.getPayData().getNonceStr());
paramMap.put("timeStamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("signType", payBaseRespDto.getPayData().getSignType());
String sign = PayWepayUtils.getInstance().createSign(paramMap);
payBaseRespDto.getPayData().setSignType("MD5");
payBaseRespDto.getPayData().setPaySign(sign);
return payBaseRespDto;
}
......
......@@ -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.strategy.annotation.StrategyWepayHandler;
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.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -29,9 +30,10 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{
private String notifyUrl;
@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("appid", PayWepayUtils.getInstance().getJS_APP_ID());
requestMap.put("openid", dragonPayBaseReqDto.getOpenId()); //只有trade_type="JSAPI"时必须传
return requestMap;
}
......@@ -39,12 +41,12 @@ public class WepayStrategyJsImpl extends AbstractWepayStrategy{
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) {
//设置签名
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("noncestr", respDto.getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("nonceStr", payBaseRespDto.getPayData().getNonceStr());
paramMap.put("timeStamp", payBaseRespDto.getPayData().getTimeStamp());
paramMap.put("signType", payBaseRespDto.getPayData().getSignType());
String sign = PayWepayUtils.getInstance().createSign(paramMap);
payBaseRespDto.getPayData().setSignType("MD5");
payBaseRespDto.getPayData().setPaySign(sign);
return payBaseRespDto;
}
......
......@@ -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.strategy.annotation.StrategyWepayHandler;
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.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -28,7 +29,7 @@ public class WepayStrategyWapImpl extends AbstractWepayStrategy{
private String notifyUrl;
@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("appid", PayWepayUtils.getInstance().getWAP_APP_ID());
return requestMap;
......
......@@ -89,7 +89,13 @@ public class PayController {
dragonPayBaseReqDto.setOpenId(openId);
dragonPayBaseReqDto.setType(type);
dragonPayBaseReqDto.setPrice(price);
if(StringUtil.isNotNull(name)&&name.length()>=32){
name = name.substring(0,32);
}
dragonPayBaseReqDto.setName(name);
if(StringUtil.isNotNull(detail)&&detail.length()>=64){
detail = detail.substring(0,64);
}
dragonPayBaseReqDto.setDetail(detail);
dragonPayBaseReqDto.setOrderCode(orderCode);
dragonPayBaseReqDto.setClientIp(clientIp);
......
......@@ -469,7 +469,8 @@ public class DataImpl {
while (allCount.next()) {
allCountResult = allCount.getInt("allCount");
}
allCount.close();
pstmt.close();
do {
ArrayList<KylinOrderTickets> orderList = 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