JAVA全系列 教程
3762个小节阅读:7092.3k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改PayService
xxxxxxxxxx
/**
* 退费
* @param outTradeNo 外部应该交易ID
* @param tradeNo 平台在支付成之后返回的平台【属于支付宝平台的ID】
* @param refundAmount 退款金额
* @param refundReason 退款原因
* @param outRequestNo 是否支持部分退款
*/
public static Map<String,Object> payBack(String outTradeNo,String tradeNo,String refundAmount,String refundReason,String outRequestNo){
AlipayTradeRefundRequestBuilder builder = new AlipayTradeRefundRequestBuilder()
.setOutTradeNo(outTradeNo)//outTradeNo tradeNo只需要有一个就行
.setTradeNo(tradeNo)
.setRefundAmount(refundAmount)
.setRefundReason(refundReason)
.setOutRequestNo(outRequestNo)
// .setNotifyUrl(notifyUrl)//没有用 因为这个回调地址就是收费时的回调地址
.setStoreId(storeId);
//退费请求
AlipayF2FRefundResult result = tradeService.tradeRefund(builder);
Map<String,Object> map=new HashMap<>();
Integer code=null;
String msg="";
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝退款成功: )");
code=200;
msg=result.getResponse().getSubMsg();
break;
case FAILED:
log.error("支付宝退款失败!!!");
code=500;
msg=result.getResponse().getSubMsg();
break;
case UNKNOWN:
log.error("系统异常,订单退款状态未知!!!");
code=500;
msg=result.getResponse().getSubMsg();
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
code=500;
msg=result.getResponse().getSubMsg();
break;
}
map.put("code",code);
map.put("msg",msg);
return map;
}
创建测试类TestRefund
xxxxxxxxxx
/**
* @Author:
* 测试退费
*/
public class TestRefund {
public static void main(String[] args) {
String outTradeNo="OD123124124ABCDEF5";
String tradeNo="2021110922001471560501815457";
String subject="SXT-医疗管理系统支付平台";
String refudAmount="60";
String refudReason="不想要了";
Map<String, Object> map = PayService.payBack(outTradeNo, tradeNo, refudAmount, refudReason, "BK12345681");
System.out.println(map);
}
}