修改商城内容
This commit is contained in:
parent
6aaa98f243
commit
62971bb035
@ -115,5 +115,15 @@
|
||||
<version>5.3.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-goods</artifactId>
|
||||
<version>5.3.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-order</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.goods.controller;
|
||||
package com.wzj.soopin.manager.goods.controller;
|
||||
|
||||
|
||||
import com.wzj.soopin.goods.convert.BrandConvert;
|
||||
@ -11,13 +11,13 @@ import io.swagger.annotations.ApiOperation;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.goods.controller;
|
||||
package com.wzj.soopin.manager.goods.controller;
|
||||
|
||||
import com.wzj.soopin.goods.convert.ProductCategoryConvert;
|
||||
import com.wzj.soopin.goods.domain.entity.ProductCategory;
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.goods.controller;
|
||||
package com.wzj.soopin.manager.goods.controller;
|
||||
|
||||
|
||||
import com.wzj.soopin.goods.convert.ProductConvert;
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.goods.controller;
|
||||
package com.wzj.soopin.manager.goods.controller;
|
||||
|
||||
import com.wzj.soopin.goods.convert.SkuConvert;
|
||||
import com.wzj.soopin.goods.domain.entity.Sku;
|
||||
@ -8,15 +8,15 @@ import com.wzj.soopin.goods.service.SkuService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
|
||||
import com.wzj.soopin.order.convert.AftersaleConvert;
|
||||
@ -10,20 +10,21 @@ import com.wzj.soopin.order.domain.vo.ManagerRefundOrderDetailVO;
|
||||
import com.wzj.soopin.order.domain.vo.ManagerRefundOrderVO;
|
||||
import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO;
|
||||
import com.wzj.soopin.order.service.AftersaleService;
|
||||
import com.wzj.soopin.order.utils.SecurityUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.redis.redis.RedisService;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
|
||||
import com.wzj.soopin.order.convert.AftersaleItemConvert;
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
import com.wzj.soopin.order.convert.OrderConvert;
|
||||
import com.wzj.soopin.order.domain.entity.Order;
|
||||
@ -9,6 +9,7 @@ import com.wzj.soopin.order.domain.vo.ManagerOrderDetailVO;
|
||||
import com.wzj.soopin.order.domain.vo.ManagerOrderVO;
|
||||
import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO;
|
||||
import com.wzj.soopin.order.service.OrderService;
|
||||
import com.wzj.soopin.order.utils.SecurityUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
import com.wzj.soopin.order.convert.OrderDeliveryHistoryConvert;
|
||||
import com.wzj.soopin.order.domain.entity.OrderDeliveryHistory;
|
@ -1,13 +1,10 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
import com.wzj.soopin.order.convert.OrderItemConvert;
|
||||
import com.wzj.soopin.order.domain.entity.OrderItem;
|
||||
import com.wzj.soopin.order.domain.query.OrderItemQuery;
|
||||
import com.wzj.soopin.order.domain.vo.OrderItemVO;
|
||||
import com.wzj.soopin.order.service.OrderItemService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
@ -15,6 +12,9 @@ import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
@ -1,14 +1,10 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
import com.wzj.soopin.order.convert.OrderOperateHistoryConvert;
|
||||
import com.wzj.soopin.order.domain.entity.OrderOperateHistory;
|
||||
import com.wzj.soopin.order.domain.query.OrderOperateHistoryQuery;
|
||||
import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO;
|
||||
import com.wzj.soopin.order.service.OrderOperateHistoryService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
@ -16,6 +12,10 @@ import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
@ -1,4 +1,4 @@
|
||||
package com.wzj.soopin.order.controller;
|
||||
package com.wzj.soopin.manager.order.controller;
|
||||
|
||||
import com.wzj.soopin.order.convert.WechatPaymentHistoryConvert;
|
||||
import com.wzj.soopin.order.domain.entity.WechatPaymentHistory;
|
@ -125,6 +125,25 @@
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-crypto</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.api.grpc</groupId>
|
||||
<artifactId>proto-google-common-protos</artifactId>
|
||||
<version>2.41.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.wechatpay-apiv3</groupId>
|
||||
<artifactId>wechatpay-java</artifactId>
|
||||
<version>0.2.9</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -22,6 +22,7 @@ import com.wzj.soopin.order.domain.form.DealWithAftersaleForm;
|
||||
import com.wzj.soopin.order.domain.form.ManagerAftersaleOrderForm;
|
||||
import com.wzj.soopin.order.domain.vo.*;
|
||||
import com.wzj.soopin.order.mapper.*;
|
||||
import com.wzj.soopin.order.wechat.WechatPayService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.Constants;
|
||||
import org.dromara.common.core.enums.AftersaleStatus;
|
||||
|
@ -25,6 +25,8 @@ import com.wzj.soopin.order.mapper.OrderDeliveryHistoryMapper;
|
||||
import com.wzj.soopin.order.mapper.OrderItemMapper;
|
||||
import com.wzj.soopin.order.mapper.OrderMapper;
|
||||
import com.wzj.soopin.order.mapper.OrderOperateHistoryMapper;
|
||||
import com.wzj.soopin.order.utils.AesCryptoUtils;
|
||||
import com.wzj.soopin.order.utils.SecurityUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.common.core.domain.event.Constants;
|
||||
import org.dromara.common.core.utils.PhoneUtils;
|
||||
@ -392,7 +394,7 @@ public class OrderService {
|
||||
.set("receiver_district",order.getReceiverDistrict())
|
||||
.set("receiver_province",order.getReceiverProvince())
|
||||
.set("receiver_detail_address",order.getReceiverDetailAddress())
|
||||
.set("receiver_phone_encrypted",AesCryptoUtils.encrypt(aesKey, order.getReceiverPhone()))
|
||||
.set("receiver_phone_encrypted", AesCryptoUtils.encrypt(aesKey, order.getReceiverPhone()))
|
||||
.set("update_time",LocalDateTime.now());
|
||||
updateWrapper.eq("id",order.getId());
|
||||
int update = orderMapper.update(null, updateWrapper);
|
||||
|
@ -0,0 +1,31 @@
|
||||
package com.wzj.soopin.order.utils;
|
||||
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import cn.hutool.crypto.symmetric.AES;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
|
||||
/**
|
||||
* aes加密工具
|
||||
*/
|
||||
public class AesCryptoUtils {
|
||||
|
||||
public static String encrypt(String key, String content){
|
||||
SecureUtil.disableBouncyCastle();
|
||||
if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){
|
||||
throw new RuntimeException("错误");
|
||||
}
|
||||
AES aes = SecureUtil.aes(key.getBytes());
|
||||
byte[] encrypt = aes.encrypt(content);
|
||||
return aes.encryptHex(content);
|
||||
}
|
||||
|
||||
public static String decrypt(String key, String content){
|
||||
SecureUtil.disableBouncyCastle();
|
||||
if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){
|
||||
throw new RuntimeException("错误");
|
||||
}
|
||||
AES aes = SecureUtil.aes(key.getBytes());
|
||||
return aes.decryptStr(content, CharsetUtil.CHARSET_UTF_8);
|
||||
}
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
package com.wzj.soopin.order.utils;
|
||||
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
/**
|
||||
* 安全服务工具类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class SecurityUtils
|
||||
{
|
||||
private static BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
/**
|
||||
* 用户ID
|
||||
**/
|
||||
public static Long getUserId()
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginUser().getUserId();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部门ID
|
||||
**/
|
||||
public static Long getDeptId()
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginUser().getDeptId();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取部门ID异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户账户
|
||||
**/
|
||||
public static String getUsername()
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginUser().getUsername();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户
|
||||
**/
|
||||
public static LoginUser getLoginUser()
|
||||
{
|
||||
try
|
||||
{
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Authentication
|
||||
*/
|
||||
public static Authentication getAuthentication()
|
||||
{
|
||||
return SecurityContextHolder.getContext().getAuthentication();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成BCryptPasswordEncoder密码
|
||||
*
|
||||
* @param password 密码
|
||||
* @return 加密字符串
|
||||
*/
|
||||
public static String encryptPassword(String password) {
|
||||
return passwordEncoder.encode(password);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断密码是否相同
|
||||
*
|
||||
* @param rawPassword 真实密码
|
||||
* @param encodedPassword 加密后字符
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean matchesPassword(String rawPassword, String encodedPassword)
|
||||
{
|
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
return passwordEncoder.matches(rawPassword, encodedPassword);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为管理员
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean isAdmin(Long userId)
|
||||
{
|
||||
return userId != null && 1L == userId;
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package com.wzj.soopin.order.wechat;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Data
|
||||
@ConfigurationProperties(prefix = "wechat")
|
||||
@Component("WechatPayData")
|
||||
public class WechatPayData {
|
||||
|
||||
/** 商户号 */
|
||||
public static String appId;
|
||||
public static String secret;
|
||||
public static String merchantId;
|
||||
/** 商户API私钥路径 */
|
||||
public static String privateKeyPath;
|
||||
/** 商户证书序列号 */
|
||||
public static String merchantSerialNumber;
|
||||
/** 商户APIV3密钥 */
|
||||
public static String apiV3key;
|
||||
public static String notifyUrl;
|
||||
|
||||
public static String miniProgramAppId;
|
||||
public static String miniProgramSecret;
|
||||
|
||||
public void setAppId(String appId) {
|
||||
WechatPayData.appId = appId;
|
||||
}
|
||||
|
||||
public void setSecret(String secret) {
|
||||
WechatPayData.secret = secret;
|
||||
}
|
||||
|
||||
public void setMerchantId(String merchantId) {
|
||||
WechatPayData.merchantId = merchantId;
|
||||
}
|
||||
|
||||
public void setPrivateKeyPath(String privateKeyPath) {
|
||||
WechatPayData.privateKeyPath = privateKeyPath;
|
||||
}
|
||||
|
||||
public void setMerchantSerialNumber(String merchantSerialNumber) {
|
||||
WechatPayData.merchantSerialNumber = merchantSerialNumber;
|
||||
}
|
||||
|
||||
public void setApiV3key(String apiV3key) {
|
||||
WechatPayData.apiV3key = apiV3key;
|
||||
}
|
||||
|
||||
public void setNotifyUrl(String notifyUrl) {
|
||||
WechatPayData.notifyUrl = notifyUrl;
|
||||
}
|
||||
|
||||
public void setMiniProgramAppId(String miniProgramAppId) {
|
||||
WechatPayData.miniProgramAppId = miniProgramAppId;
|
||||
}
|
||||
|
||||
public void setMiniProgramSecret(String miniProgramSecret) {
|
||||
WechatPayData.miniProgramSecret = miniProgramSecret;
|
||||
}
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package com.wzj.soopin.order.wechat;
|
||||
|
||||
import com.wechat.pay.java.service.payments.jsapi.JsapiService;
|
||||
import com.wechat.pay.java.service.payments.jsapi.model.Amount;
|
||||
import com.wechat.pay.java.service.payments.jsapi.model.Payer;
|
||||
import com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest;
|
||||
import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse;
|
||||
import com.wechat.pay.java.service.refund.RefundService;
|
||||
import com.wechat.pay.java.service.refund.model.AmountReq;
|
||||
import com.wechat.pay.java.service.refund.model.CreateRequest;
|
||||
import com.wechat.pay.java.service.refund.model.Refund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@ConditionalOnProperty(prefix = "wechat", name = "enabled", havingValue = "true")
|
||||
public class WechatPayService {
|
||||
|
||||
@Autowired
|
||||
private JsapiService service;
|
||||
|
||||
@Autowired
|
||||
private RefundService refundService;
|
||||
|
||||
/**
|
||||
* jsapi下单
|
||||
* @param orderNo 订单号
|
||||
* @param desc 订单描述
|
||||
* @param totalAmount 总金额,单位:分
|
||||
* @param openId 用户openid
|
||||
* @return prepay_id
|
||||
*/
|
||||
public String jsapiPay(String orderNo,String desc,Integer totalAmount,String openId, Long memberId,String appId){
|
||||
PrepayRequest prepayRequest = new PrepayRequest();
|
||||
prepayRequest.setAppid(appId);
|
||||
prepayRequest.setMchid(WechatPayData.merchantId);
|
||||
prepayRequest.setDescription(desc);
|
||||
prepayRequest.setOutTradeNo(orderNo);
|
||||
prepayRequest.setAttach(String.valueOf(memberId));
|
||||
prepayRequest.setNotifyUrl(WechatPayData.notifyUrl);
|
||||
Amount amount = new Amount();
|
||||
amount.setTotal(totalAmount);
|
||||
prepayRequest.setAmount(amount);
|
||||
Payer payer = new Payer();
|
||||
payer.setOpenid(openId);
|
||||
prepayRequest.setPayer(payer);
|
||||
PrepayResponse response = service.prepay(prepayRequest);
|
||||
return response.getPrepayId();
|
||||
}
|
||||
|
||||
public Refund refundPay(String refundId, String payId, String notifyUrl, Long refundAmount, Long totalAmount, String reason) {
|
||||
//请求参数
|
||||
CreateRequest request = new CreateRequest();
|
||||
request.setReason(reason);
|
||||
//设置退款金额 根据自己的实际业务自行填写
|
||||
AmountReq amountReq = new AmountReq();
|
||||
amountReq.setRefund(refundAmount);
|
||||
amountReq.setTotal(totalAmount);
|
||||
amountReq.setCurrency("CNY");
|
||||
request.setAmount(amountReq);
|
||||
//支付成功后回调回来的transactionId 按照实际情况填写
|
||||
request.setOutTradeNo(payId);
|
||||
//支付成功后回调回来的transactionId 按照实际情况填写
|
||||
request.setOutRefundNo(refundId);
|
||||
//退款成功的回调地址
|
||||
request.setNotifyUrl(notifyUrl);
|
||||
//发起请求,申请退款
|
||||
return refundService.create(request);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user