Java对接支付宝退款功能

1.配置申请地址 https://open.alipay.com/platform/home.html。开发对接中需要申请以下参数,下列参数务必严格保密

//支付宝网关地址:https://openapi.alipay.com/gateway.do 
//支付宝申请的APPID 
//商户应用私钥(与支付宝数据交互时,保证数据安全,防止数据被篡改) 
//支付宝公钥(与支付宝数据交互时,保证数据安全,防止数据被篡改) 
//签名算法类型(RSA2或者RSA,支付宝推荐使用RSA2) 
//编码格式(utf-8,gb2312,gbk)

2.导入支付宝需要的依赖,此为Maven版

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>4.9.124.ALL</version>
</dependency>

3.重要代码

   //网关地址,APPID,商户应用私钥,数据格式,编码格式,支付宝公钥,签名算法类型
   AlipayClient alipayClient = new DefaultAlipayClient(aliPayGateway,appID,rsa_private_key,format,charset,alipayPublicKey,signType);     
   //请求对象,调用支付宝 不同接口,需使用不同对象
   AlipayTradeRefundRequest alipayTradeCloseRequest =new AlipayTradeRefundRequest();    
   //请求参数集合对象,除了公共参数之外,所有参数都可通过此对象传递
   AlipayTradeRefundModel alipayTradeRefundModel =new AlipayTradeRefundModel();   
   //退款的订单号,传入生成支付订单时的订单号即可
   alipayTradeRefundModel.setOutTradeNo(outTradeNo);     
   //退款金额
   alipayTradeRefundModel.setRefundAmount(refundAmount);    
   //退款的原因
   alipayTradeRefundModel.setRefundReason(refundReason);
   alipayTradeCloseRequest.setBizModel(alipayTradeRefundModel);
   AlipayTradeRefundResponse refundResponse= null;
   try {
       refundResponse = alipayClient.execute(alipayTradeCloseRequest);
   } catch (AlipayApiException e) {
       return ReturnUtils.returnVal(CommonConstants.appCode.UNKNOWNERROR.get(),refundResponse.getMsg());
   }    
   //退款的执行流程与支付不太一样,支付时成功之后,需要通知回调接口,而退款则不需要,只需判断响应参数 refundResponse.getFundChange().equals("Y") 判断是否发生了资金变化, equals("Y")表示资金发生了变化,退款成功
   if (refundResponse.getFundChange().equals("Y")) {
       return ReturnUtils.returnVal(CommonConstants.appCode.SUCCESS.get(),refundResponse.getMsg());
   }else {
       return ReturnUtils.returnVal(CommonConstants.appCode.UNKNOWNERROR.get(),refundResponse.getMsg());
   }

详细接口或参数说明,以支付宝官方文档为准, 支付宝API网址(https://opendocs.alipay.com/apis)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值