Java源码示例:com.alipay.demo.trade.model.result.AlipayF2FRefundResult
示例1
/**
* 退款
* @param orderNo 商户订单号
* @return
*/
@PostMapping("/refund")
public String refund(String orderNo){
AlipayTradeRefundRequestBuilder builder = new AlipayTradeRefundRequestBuilder()
.setOutTradeNo(orderNo)
.setRefundAmount("0.01")
.setRefundReason("当面付退款测试")
.setOutRequestNo(String.valueOf(System.nanoTime()))
.setStoreId("A1");
AlipayF2FRefundResult result = alipayTradeService.tradeRefund(builder);
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝退款成功: )");
break;
case FAILED:
log.error("支付宝退款失败!!!");
break;
case UNKNOWN:
log.error("系统异常,订单退款状态未知!!!");
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
break;
}
return result.getResponse().getBody();
}
示例2
public void test_trade_refund() {
// (必填) 外部订单号,需要退款交易的商户外部订单号
String outTradeNo = "tradepay14817938139942440181";
// (必填) 退款金额,该金额必须小于等于订单的支付金额,单位为元
String refundAmount = "0.01";
// (可选,需要支持重复退货时必填) 商户退款请求号,相同支付宝交易号下的不同退款请求号对应同一笔交易的不同退款申请,
// 对于相同支付宝交易号下多笔相同商户退款请求号的退款交易,支付宝只会进行一次退款
String outRequestNo = "";
// (必填) 退款原因,可以说明用户退款原因,方便为商家后台提供统计
String refundReason = "正常退款,用户买多了";
// (必填) 商户门店编号,退款情况下可以为商家后台提供退款权限判定和统计等作用,详询支付宝技术支持
String storeId = "test_store_id";
// 创建退款请求builder,设置请求参数
AlipayTradeRefundRequestBuilder builder = new AlipayTradeRefundRequestBuilder()
.setOutTradeNo(outTradeNo).setRefundAmount(refundAmount).setRefundReason(refundReason)
.setOutRequestNo(outRequestNo).setStoreId(storeId);
AlipayF2FRefundResult result = tradeService.tradeRefund(builder);
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝退款成功: )");
break;
case FAILED:
log.error("支付宝退款失败!!!");
break;
case UNKNOWN:
log.error("系统异常,订单退款状态未知!!!");
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
break;
}
}
示例3
public void test_trade_refund() {
// (必填) 外部订单号,需要退款交易的商户外部订单号
String outTradeNo = "tradepay14817938139942440181";
// (必填) 退款金额,该金额必须小于等于订单的支付金额,单位为元
String refundAmount = "0.01";
// (可选,需要支持重复退货时必填) 商户退款请求号,相同支付宝交易号下的不同退款请求号对应同一笔交易的不同退款申请,
// 对于相同支付宝交易号下多笔相同商户退款请求号的退款交易,支付宝只会进行一次退款
String outRequestNo = "";
// (必填) 退款原因,可以说明用户退款原因,方便为商家后台提供统计
String refundReason = "正常退款,用户买多了";
// (必填) 商户门店编号,退款情况下可以为商家后台提供退款权限判定和统计等作用,详询支付宝技术支持
String storeId = "test_store_id";
// 创建退款请求builder,设置请求参数
AlipayTradeRefundRequestBuilder builder = new AlipayTradeRefundRequestBuilder()
.setOutTradeNo(outTradeNo).setRefundAmount(refundAmount).setRefundReason(refundReason)
.setOutRequestNo(outRequestNo).setStoreId(storeId);
AlipayF2FRefundResult result = tradeService.tradeRefund(builder);
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝退款成功: )");
break;
case FAILED:
log.error("支付宝退款失败!!!");
break;
case UNKNOWN:
log.error("系统异常,订单退款状态未知!!!");
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
break;
}
}
示例4
public void test_trade_refund() {
// (必填) 外部订单号,需要退款交易的商户外部订单号
String outTradeNo = "tradepay14817938139942440181";
// (必填) 退款金额,该金额必须小于等于订单的支付金额,单位为元
String refundAmount = "0.01";
// (可选,需要支持重复退货时必填) 商户退款请求号,相同支付宝交易号下的不同退款请求号对应同一笔交易的不同退款申请,
// 对于相同支付宝交易号下多笔相同商户退款请求号的退款交易,支付宝只会进行一次退款
String outRequestNo = "";
// (必填) 退款原因,可以说明用户退款原因,方便为商家后台提供统计
String refundReason = "正常退款,用户买多了";
// (必填) 商户门店编号,退款情况下可以为商家后台提供退款权限判定和统计等作用,详询支付宝技术支持
String storeId = "test_store_id";
// 创建退款请求builder,设置请求参数
AlipayTradeRefundRequestBuilder builder = new AlipayTradeRefundRequestBuilder()
.setOutTradeNo(outTradeNo).setRefundAmount(refundAmount).setRefundReason(refundReason)
.setOutRequestNo(outRequestNo).setStoreId(storeId);
AlipayF2FRefundResult result = tradeService.tradeRefund(builder);
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝退款成功: )");
break;
case FAILED:
log.error("支付宝退款失败!!!");
break;
case UNKNOWN:
log.error("系统异常,订单退款状态未知!!!");
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
break;
}
}