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

Commit d47345d6 authored by wangyifan's avatar wangyifan

收钱吧回调相关接口

parent c169b508
...@@ -61,6 +61,7 @@ public class GoblinSqbOrderVo implements Serializable { ...@@ -61,6 +61,7 @@ public class GoblinSqbOrderVo implements Serializable {
private String updatedAt; private String updatedAt;
// 扩展属性 // 扩展属性
private Integer couponUsedStatus; // 0-未核销 1-已核销 // 券核销状态 0-未核销 1-已核销
private Integer couponUsedStatus;
} }
package com.liquidnet.common.third.sqb.param.callback; package com.liquidnet.common.third.sqb.param.callback;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -13,95 +12,143 @@ import java.util.List; ...@@ -13,95 +12,143 @@ import java.util.List;
*/ */
public class OrderCallbackContent { public class OrderCallbackContent {
/** 订单号 */ /**
* 订单号
*/
private String orderSn; private String orderSn;
/** 支付流水号列表 */ /**
* 支付流水号列表
*/
private List<String> payTsnList; private List<String> payTsnList;
/** 终端号 */ /**
* 终端号
*/
private String terminalSn; private String terminalSn;
/** 门店号 */ /**
* 门店号
*/
private String storeSn; private String storeSn;
/** 商城名称 */ /**
* 商城名称
*/
private String mallName; private String mallName;
/** 订单金额 */ /**
* 订单金额
*/
private BigDecimal orderAmount; private BigDecimal orderAmount;
/** 创建时间 */ /**
* 创建时间
*/
private String createdAt; private String createdAt;
/** 订单状态码 0:已创建 10:已支付 35:已完成 40:已取消 */ /**
* 订单状态码 0:已创建 10:已支付 35:已完成 40:已取消
*/
private Integer orderStateCode; private Integer orderStateCode;
/** 商品明细列表 */ /**
* 商品明细列表
*/
private List<Item> items; private List<Item> items;
/** 收集的信息 JSON字符串 */ /**
* 收集的信息 JSON字符串
*/
private String collectedInfo; private String collectedInfo;
/** 预订单编码 */ /**
* 预订单编码
*/
private List<String> preOrderSns; private List<String> preOrderSns;
/** 订单签名 */ /**
* 订单签名
*/
private String orderSignature; private String orderSignature;
/** 支付的代客下单数据 */ /**
* 支付的代客下单数据
*/
private List<PreOrder> preOrderList; private List<PreOrder> preOrderList;
@Data
/** /**
* 商品明细 * 商品明细
*/ */
@Data
public static class Item { public static class Item {
/** 商品标题 */ /**
* 商品标题
*/
private String title; private String title;
/** 规格描述 */ /**
* 规格描述
*/
private String skuDesc; private String skuDesc;
/** 数量 */ /**
* 数量
*/
private String quantity; private String quantity;
/** 单位 */ /**
* 单位
*/
private String unit; private String unit;
} }
@Data
/** /**
* 采集数据 * 采集数据
*/ */
@Data
public static class CollectedInfo { public static class CollectedInfo {
/** 控件类型 */ /**
* 控件类型
*/
private String type; private String type;
/** 控件格式 */ /**
* 控件格式
*/
private String form; private String form;
/** 字段名 */ /**
* 字段名
*/
private String fieldName; private String fieldName;
/** 采集数据内容 */ /**
* 采集数据内容
*/
private String content; private String content;
} }
@Data
/** /**
* 支付的代客下单数据 * 支付的代客下单数据
*/ */
@Data
public static class PreOrder { public static class PreOrder {
/** 预订单id */ /**
* 预订单id
*/
private String preOrderId; private String preOrderId;
/** 预订单编号 */ /**
* 预订单编号
*/
private String preOrderSn; private String preOrderSn;
/** 请求号 */ /**
* 请求号
*/
private String requestId; private String requestId;
} }
......
...@@ -383,18 +383,16 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -383,18 +383,16 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
} }
// ================================ 申请退款 ================================
// ================================ 回调处理 ================================ // ================================ 回调处理 ================================
@Override @Override
public ResponseDto<String> handlePayCallback(OrderCallbackContent orderCallbackContent) { public ResponseDto<String> handlePayCallback(OrderCallbackContent orderCallbackContent) {
log.info("[收钱吧支付回调] 收到回调参数: {}", orderCallbackContent); log.info("[收钱吧支付回调] 收到回调参数: {}", orderCallbackContent);
// TODO 可能需要根据收钱吧的orderSn查询正在的orderId // TODO 可能需要根据收钱吧的orderSn查询正在的orderId
String orderId = orderCallbackContent.getOrderSn(); String sqbOrderSn = orderCallbackContent.getOrderSn();
if (orderId == null) return ResponseDto.failure("缺少订单标识"); if (sqbOrderSn == null) return ResponseDto.failure("缺少订单标识");
String orderId = "";
GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId); GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId);
if (orderVo == null) return ResponseDto.failure("订单不存在"); if (orderVo == null) return ResponseDto.failure("订单不存在");
...@@ -433,6 +431,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -433,6 +431,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
@Override @Override
public ResponseDto<String> handleCouponCallback(CouponCallbackContent callbackContent) { public ResponseDto<String> handleCouponCallback(CouponCallbackContent callbackContent) {
log.info("[收钱吧券状态回调] 收到回调参数: {}", callbackContent); log.info("[收钱吧券状态回调] 收到回调参数: {}", callbackContent);
// TODO 可能需要根据收钱吧的orderSn查询正在的orderId
String orderId = callbackContent.getOrderSn(); String orderId = callbackContent.getOrderSn();
if (orderId == null) return ResponseDto.failure("缺少订单标识"); if (orderId == null) return ResponseDto.failure("缺少订单标识");
...@@ -467,19 +466,22 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -467,19 +466,22 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
} }
try { try {
CommonRequest.Seller seller = buildSeller();
// 重新查询收银台,获取新的 selectedSignature + seq // 重新查询收银台,获取新的 selectedSignature + seq
CashierQueryRequest cashierReq = buildCashierQueryRequest( CashierQueryData cashierData = sqbBiz.queryCashier(orderVo.getSqbAcquiringSn(), orderVo.getSqbOrderSignature(), userId);
seller, orderVo.getSqbAcquiringSn(), orderVo.getSqbOrderSignature());
CashierQueryData cashierData = sqbBiz.queryCashier(cashierReq);
if (cashierData == null) return ResponseDto.failure("查询收银台失败,请稍后重试"); if (cashierData == null) return ResponseDto.failure("查询收银台失败,请稍后重试");
// 重新创建微信预支付 // 重新创建微信预支付
CreateWechatPrepayOrderRequest prepayReq = buildWechatPrepayRequest( CreateWechatPrepayOrderData prepayData = sqbBiz.createWechatPrepayOrder(
seller, orderVo.getSqbAcquiringSn(), orderVo.getSqbOrderSignature(), orderVo.getSqbAcquiringSn(),
cashierData.getSelectedSignature(), cashierData.getSeq(), cashierData); orderVo.getSqbAcquiringSign(),
CreateWechatPrepayOrderData prepayData = sqbBiz.createWechatPrepayOrder(prepayReq); userId,
String.valueOf(cashierData.getAmount()),
buildRequestId(IDGenerator.nextSnowId()),
cashierData.getPayTools().get(0),
new HashMap<String, Object>(), // TODO 需要填写appID
cashierData.getSelectedSignature(),
cashierData.getSeq()
);
if (prepayData == null || prepayData.getPaymentVoucher() == null) { if (prepayData == null || prepayData.getPaymentVoucher() == null) {
return ResponseDto.failure("创建微信预支付失败,请稍后重试"); return ResponseDto.failure("创建微信预支付失败,请稍后重试");
} }
...@@ -606,7 +608,6 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -606,7 +608,6 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
// 1. 同步 Redis // 1. 同步 Redis
goblinRedisUtils.setGoblinOrder(orderId, storeOrderVo); goblinRedisUtils.setGoblinOrder(orderId, storeOrderVo);
// 2. 同步 MongoDB // 2. 同步 MongoDB
goblinMongoUtils.updateGoblinStoreOrderVo(orderId, storeOrderVo); goblinMongoUtils.updateGoblinStoreOrderVo(orderId, storeOrderVo);
...@@ -621,9 +622,9 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -621,9 +622,9 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
data = new Object[]{status, now, orderId}; data = new Object[]{status, now, orderId};
} }
java.util.LinkedList<String> sqls = new java.util.LinkedList<>(); LinkedList<String> sqls = new LinkedList<>();
sqls.add(sql); sqls.add(sql);
java.util.LinkedList<Object[]> sqlData = new java.util.LinkedList<>(); LinkedList<Object[]> sqlData = new LinkedList<>();
sqlData.add(data); sqlData.add(data);
if (queueUtils != null) { if (queueUtils != null) {
......
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