回调修改

pull/1/head
czc 2 years ago
parent b5f5da9f7f
commit ba5fd4f6ff

@ -90,7 +90,7 @@ public class ServiceTest {
// String code = "0611P2Ga1D8QCF0CVuJa1qNUJa11P2GL"; // String code = "0611P2Ga1D8QCF0CVuJa1qNUJa11P2GL";
// WechatUserAuth userToken = wechatAuthService.getUserToken(code); // WechatUserAuth userToken = wechatAuthService.getUserToken(code);
String openId="oUA8I6lDdwSfz-EwR4284dU3KOYw"; String openId="oUA8I6lDdwSfz-EwR4284dU3KOYw";
String res = wechatPayService.jsapiPay(UUID.randomUUID().toString().substring(0,30), "测试支付", 1, openId); String res = wechatPayService.jsapiPay(UUID.randomUUID().toString().substring(0,30), "测试支付", 1, openId, 22L);
System.out.println(res); System.out.println(res);
} }

@ -2,6 +2,7 @@ package com.cyl.h5.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cyl.h5.pojo.dto.ApplyRefundDTO;
import com.cyl.h5.pojo.dto.OrderCreateDTO; import com.cyl.h5.pojo.dto.OrderCreateDTO;
import com.cyl.h5.pojo.request.CancelOrderRequest; import com.cyl.h5.pojo.request.CancelOrderRequest;
import com.cyl.h5.pojo.request.OrderPayRequest; import com.cyl.h5.pojo.request.OrderPayRequest;
@ -157,4 +158,24 @@ public class H5OrderController {
} }
} }
} }
@ApiOperation("申请售后")
@PostMapping("/applyRefund")
public ResponseEntity<String> applyRefund(@RequestBody ApplyRefundDTO applyRefundDTO){
String redisKey = "h5_oms_order_applyRefund_" + applyRefundDTO.getOrderId();
String redisValue = applyRefundDTO.getOrderId() + "_" + System.currentTimeMillis();
try{
redisService.lock(redisKey, redisValue, 60);
return ResponseEntity.ok(service.applyRefund(applyRefundDTO));
}catch (Exception e){
log.error("申请售后发生异常",e);
throw new RuntimeException(e.getMessage());
}finally {
try {
redisService.unLock(redisKey, redisValue);
} catch (Exception e) {
log.error("", e);
}
}
}
} }

@ -85,6 +85,7 @@ public class PayNotifyController {
NotificationParser parser = new NotificationParser((NotificationConfig) config); NotificationParser parser = new NotificationParser((NotificationConfig) config);
// 以支付通知回调为例,验签、解密并转换成 Transaction // 以支付通知回调为例,验签、解密并转换成 Transaction
Transaction transaction = parser.parse(requestParam, Transaction.class); Transaction transaction = parser.parse(requestParam, Transaction.class);
log.info("【transaction】" + JSONObject.toJSON(transaction));
PayNotifyMessageDTO message = new PayNotifyMessageDTO(); PayNotifyMessageDTO message = new PayNotifyMessageDTO();
message.setTradeNo(transaction.getOutTradeNo()); message.setTradeNo(transaction.getOutTradeNo());
message.setMemberId(Long.valueOf(transaction.getAttach())); message.setMemberId(Long.valueOf(transaction.getAttach()));

@ -0,0 +1,34 @@
package com.cyl.h5.pojo.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("申请售后对象")
public class ApplyRefundDTO {
@ApiModelProperty(value = "订单id", required = true)
private Long orderId;
@ApiModelProperty(value = "申请售后类型 1仅退款 2退货退款", required = true)
private Integer applyRefundType;
@ApiModelProperty(value = "退款原因", required = true)
private String reason;
@ApiModelProperty(value = "申请退货数量", required = true)
private Integer quantity;
@ApiModelProperty(value = "退款金额", required = true)
private BigDecimal refundAmount;
@ApiModelProperty(value = "描述")
private String description;
@ApiModelProperty("凭证图片以逗号隔开")
private String proofPics;
}

@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cyl.h5.pojo.dto.MicroMallOrderSyncMsg; import com.cyl.h5.pojo.dto.*;
import com.cyl.h5.pojo.dto.OrderCreateDTO;
import com.cyl.h5.pojo.dto.OrderProductListDTO;
import com.cyl.h5.pojo.dto.PayNotifyMessageDTO;
import com.cyl.h5.pojo.request.CancelOrderRequest; import com.cyl.h5.pojo.request.CancelOrderRequest;
import com.cyl.h5.pojo.request.OrderPayRequest; import com.cyl.h5.pojo.request.OrderPayRequest;
import com.cyl.h5.pojo.response.OrderPayResponse; import com.cyl.h5.pojo.response.OrderPayResponse;
@ -495,7 +492,8 @@ public class H5OrderService {
orderDesc, orderDesc,
Integer.valueOf(orderList.stream().map(Order::getPayAmount). Integer.valueOf(orderList.stream().map(Order::getPayAmount).
reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(100)).stripTrailingZeros().toPlainString()), reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(100)).stripTrailingZeros().toPlainString()),
memberWechat.getOpenid() memberWechat.getOpenid(),
req.getMemberId()
); );
OrderPayResponse response = new OrderPayResponse(); OrderPayResponse response = new OrderPayResponse();
response.setPayType(2); response.setPayType(2);
@ -582,4 +580,14 @@ public class H5OrderService {
} }
return ResponseEntity.ok("订单支付回调成功"); return ResponseEntity.ok("订单支付回调成功");
} }
/**
*
* @param applyRefundDTO
* @return
*/
public String applyRefund(ApplyRefundDTO applyRefundDTO) {
return null;
}
} }

@ -24,12 +24,13 @@ public class WechatPayService {
* @param openId openid * @param openId openid
* @return prepay_id * @return prepay_id
*/ */
public String jsapiPay(String orderNo,String desc,Integer totalAmount,String openId){ public String jsapiPay(String orderNo,String desc,Integer totalAmount,String openId, Long memberId){
PrepayRequest prepayRequest = new PrepayRequest(); PrepayRequest prepayRequest = new PrepayRequest();
prepayRequest.setAppid(WechatPayData.appId); prepayRequest.setAppid(WechatPayData.appId);
prepayRequest.setMchid(WechatPayData.merchantId); prepayRequest.setMchid(WechatPayData.merchantId);
prepayRequest.setDescription(desc); prepayRequest.setDescription(desc);
prepayRequest.setOutTradeNo(orderNo); prepayRequest.setOutTradeNo(orderNo);
prepayRequest.setAttach(String.valueOf(memberId));
prepayRequest.setNotifyUrl(WechatPayData.notifyUrl); prepayRequest.setNotifyUrl(WechatPayData.notifyUrl);
Amount amount = new Amount(); Amount amount = new Amount();
amount.setTotal(totalAmount); amount.setTotal(totalAmount);

Loading…
Cancel
Save