新增拉卡拉退款接口
This commit is contained in:
parent
704ab93093
commit
02b3038538
|
|
@ -22,6 +22,7 @@ import cn.pluss.platform.merchantMenberRecharge.MerchantMenberRechargeService;
|
||||||
import cn.pluss.platform.merchantOrder.MerchantOrderService;
|
import cn.pluss.platform.merchantOrder.MerchantOrderService;
|
||||||
import cn.pluss.platform.notice.NoticeService;
|
import cn.pluss.platform.notice.NoticeService;
|
||||||
import cn.pluss.platform.pay.PayService;
|
import cn.pluss.platform.pay.PayService;
|
||||||
|
import cn.pluss.platform.pos.BasePosReq;
|
||||||
import cn.pluss.platform.pos.PosTradeQueryReq;
|
import cn.pluss.platform.pos.PosTradeQueryReq;
|
||||||
import cn.pluss.platform.pos.ReturnFundsReq;
|
import cn.pluss.platform.pos.ReturnFundsReq;
|
||||||
import cn.pluss.platform.ryx.pay.RyxPayService;
|
import cn.pluss.platform.ryx.pay.RyxPayService;
|
||||||
|
|
@ -473,14 +474,16 @@ public class MerchantOrderController {
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(value = "orderList")
|
@PostMapping(value = "orderList")
|
||||||
public Result<Object> posTradeQuery(HttpServletRequest request, @RequestBody PosTradeQueryReq req){
|
public Result<Object> posTradeQuery(HttpServletRequest request, @RequestBody BasePosReq req){
|
||||||
|
|
||||||
verify(req.getTimestamp(),req.getRequestId(),req.getAppId(),req.getToken());
|
verify(req.getTimestamp(),req.getRequestId(),req.getAppId(),req.getToken());
|
||||||
DeviceStock deviceStock = deviceStockService.checkBind(req.getSn());
|
|
||||||
|
PosTradeQueryReq tradeQueryReq=JSONObject.parseObject(req.getReqData(),PosTradeQueryReq.class);
|
||||||
|
DeviceStock deviceStock = deviceStockService.checkBind(tradeQueryReq.getSn());
|
||||||
MsgException.checkNull(deviceStock,"不存在的设备信息");
|
MsgException.checkNull(deviceStock,"不存在的设备信息");
|
||||||
MerchantBaseInfo merchantBaseInfoById = merchantBaseInfoService.getMerchantBaseInfoById(Integer.valueOf(deviceStock.getActMercId()));
|
MerchantBaseInfo merchantBaseInfoById = merchantBaseInfoService.getMerchantBaseInfoById(Integer.valueOf(deviceStock.getActMercId()));
|
||||||
MsgException.checkNull(merchantBaseInfoById, "该设备对应的商户信息不存在");
|
MsgException.checkNull(merchantBaseInfoById, "该设备对应的商户信息不存在");
|
||||||
return merchantOrderService.posTradeQuery(req.getRequestId(),merchantBaseInfoById.getMerchantCode(),req.getDate(),req.getType(),req.getPage(),req.getSize());
|
return merchantOrderService.posTradeQuery(req.getRequestId(),merchantBaseInfoById.getMerchantCode(),tradeQueryReq.getDate(),tradeQueryReq.getType(),tradeQueryReq.getPage(),tradeQueryReq.getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,11 @@ public class BasePosReq implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 具体参数
|
||||||
|
*/
|
||||||
|
private String reqData;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* timestamp时间戳(pos机)
|
* timestamp时间戳(pos机)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,10 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class PosTradeQueryReq extends BasePosReq{
|
public class PosTradeQueryReq implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单号
|
* 订单号
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,70 @@ public class LkLPayServiceImpl implements PayService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> refundPay(MerchantOrder order, String mchNo) {
|
public Map<String, Object> refundPay(MerchantOrder order, String mchNo) {
|
||||||
return null;
|
|
||||||
|
QueryWrapper<MerchantBaseInfo> baseQueyWrapper = new QueryWrapper<>();
|
||||||
|
baseQueyWrapper.eq("merchantCode", mchNo);
|
||||||
|
MerchantBaseInfo baseInfo = merchantBaseInfoMapper.selectOne(baseQueyWrapper);
|
||||||
|
MsgException.checkNull(baseInfo, "商户基本信息错误");
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<MerchantBackLkl> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("merchant_code", mchNo);
|
||||||
|
queryWrapper.eq("channel", "5");
|
||||||
|
queryWrapper.eq("user_no", LaKalaInterfaceImpl.userNo);
|
||||||
|
|
||||||
|
MerchantBackLkl merchantBackLkl = merchantBackLklMapper.selectOne(queryWrapper);
|
||||||
|
MsgException.checkNull(merchantBackLkl, "进件信息不存在");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String req_time = DateUtils.getSdfTimes();
|
||||||
|
Long order_amt = changeY2F(order.getConsumeFee());
|
||||||
|
|
||||||
|
|
||||||
|
String refundNo = "LKLR" + StringUtil.getBillno();
|
||||||
|
|
||||||
|
String body="{\n" +
|
||||||
|
" \"req_time\":\""+req_time+"\",\n" +
|
||||||
|
" \"version\":\"3.0\",\n" +
|
||||||
|
" \"out_org_code\":\""+lakalaConfig.getAppid()+"\",\n" +
|
||||||
|
" \"req_data\":{\n" +
|
||||||
|
" \"merchant_no\":\""+merchantBackLkl.getExternalCustomerNo()+"\",\n" +
|
||||||
|
" \"term_no\":\""+merchantBackLkl.getTermNos()+"\",\n" +
|
||||||
|
" \"out_trade_no\":\""+refundNo+"\",\n" +
|
||||||
|
" \"refund_amount\":\""+order_amt+"\",\n" +
|
||||||
|
" \"refund_reason\":\"退款\",\n" +
|
||||||
|
" \"origin_out_trade_no\":\""+order.getOrderNumber()+"\",\n" +
|
||||||
|
" \"location_info\":{\n" +
|
||||||
|
" \"request_ip\":\""+order.getIp()+"\",\n" +
|
||||||
|
" \"location\":\"+37.123456789,-121.123456789\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}\n" +
|
||||||
|
"\n";
|
||||||
|
|
||||||
|
Map<String, Object> result = new HashMap<>(4);
|
||||||
|
result.put("refundNo", refundNo);
|
||||||
|
result.put("status", "3");
|
||||||
|
result.put("code", ResultCode.FAIL.code());
|
||||||
|
|
||||||
|
String response = lklPayService.req(body, "api/v3/labs/relation/refund");
|
||||||
|
if(ObjectUtil.isNotEmpty(response)){
|
||||||
|
JSONObject object=JSONObject.parseObject(response);
|
||||||
|
if(object.containsKey("code")&&"BBS00000".equals(object.getString("code"))){
|
||||||
|
result.put("msg", "退款成功!");
|
||||||
|
result.put("data", object.getJSONObject("resp_data"));
|
||||||
|
result.put("status", "1");
|
||||||
|
result.put("code", ResultCode.SUCCESS.code());
|
||||||
|
return result;
|
||||||
|
}else {
|
||||||
|
result.put("msg", object.getString("msg"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result.put("msg", "退款失败!");
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1541,7 +1541,11 @@ public class MerchantOrderServiceImpl extends ServiceImpl<MerchantOrderMapper, M
|
||||||
resultMap = ryxPayService.refundPay(order, channel.getMerchantId());
|
resultMap = ryxPayService.refundPay(order, channel.getMerchantId());
|
||||||
} else if (channel.getChannel() == 4) {
|
} else if (channel.getChannel() == 4) {
|
||||||
resultMap = ysPayOldService.refundPay(order, channel.getMerchantId());
|
resultMap = ysPayOldService.refundPay(order, channel.getMerchantId());
|
||||||
}else {
|
}else if(channel.getChannel()==5){
|
||||||
|
resultMap = lkLPayServiceImpl.refundPay(order,channel.getMerchantCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
MsgException.throwException("未知通道!");
|
MsgException.throwException("未知通道!");
|
||||||
}
|
}
|
||||||
if (ResultCode.SUCCESS.code() != (Integer) resultMap.get("code")) {
|
if (ResultCode.SUCCESS.code() != (Integer) resultMap.get("code")) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue