前期准备工作

1. 之前的支付宝APP支付的博客

  • 1.1 前期获取的参数
  • 1.2 配置及依赖
https://blog.csdn.net/liang1184750950/article/details/100205437

实战

1.1 请求参数及返回值

  • 1.1.1 请求参数
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AliPayRefundCommand {//TODO 金额改为分private String refundFee;//退款金额,不得大于订单金额 单位 元private String outTradeNo;//商户订单号,订单支付记录里面获取payRecord}
  • 1.1.2 返回值
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class AliPayTradeRefundResponseDto {private String buyerLogonId;//用户登录idprivate String buyerUserId;//买家在支付宝的用户idprivate String fundChange;//本次退款是否发生了资金变化 Y 变化private Date gmtRefundPay;//退款支付时间private String openId;private String outTradeNo;private List<TradeFundBillDto> TradeFundBillDtos;private String refundFee;private String sendBackFee;private String storeName;private String tradeNo;
}

1.2 代码

    public AliPayTradeRefundResponseDto refund(AliPayRefundCommand command) {AlipayTradeRefundRequest refundRequest = AliPayRequestBuilder.generateAliPayRefundRequest(command);AlipayTradeRefundResponse refundResponse = null;try {refundResponse = alipayClient.execute(refundRequest);} catch (AlipayApiException e) {e.printStackTrace();}return new AliPayTradeRefundResponseDto(refundResponse);}public static AlipayTradeRefundRequest generateAliPayRefundRequest(AliPayRefundCommand command) {AlipayTradeRefundRequest refundRequest = new AlipayTradeRefundRequest();AlipayTradeRefundModel model = new AlipayTradeRefundModel();model.setRefundAmount(command.getRefundFee());model.setOutTradeNo(command.getOutTradeNo());model.setRefundReason("退款");refundRequest.setBizModel(model);return refundRequest;}public AliPayTradeRefundResponseDto(AlipayTradeRefundResponse refundResponse) {this.setBuyerLogonId(refundResponse.getBuyerLogonId());this.setBuyerUserId(refundResponse.getBuyerUserId());this.setFundChange(refundResponse.getFundChange());this.setGmtRefundPay(refundResponse.getGmtRefundPay());this.setOpenId(refundResponse.getOpenId());this.setOutTradeNo(refundResponse.getOutTradeNo());this.setRefundFee(refundResponse.getRefundFee());this.setSendBackFee(refundResponse.getSendBackFee());this.setStoreName(refundResponse.getStoreName());this.setTradeNo(refundResponse.getTradeNo());this.setTradeFundBillDtos(refundResponse.getRefundDetailItemList() == null ? null :TradeFundBillDto.build(refundResponse));}

总结

支付宝退款功能开发相对简单明了(支付宝一贯风格),构造退款请求参数AlipayTradeRefundRequest时,注意公共参数直接在AlipayTradeRefundRequest里面set,其他的参数封装在AlipayTradeRefundModel里面,这和支付宝APP支付一样。

支付宝APP退款功能开发相关推荐

  1. 支付宝app支付功能-服务端的实现-python3版

    支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...

  2. php 支付宝订单查询_php实现支付宝APP支付功能与源码

    原标题:php实现支付宝APP支付功能与源码 码农程序自学与交流微信群 微信群有,就怕你进群发一些乱七八糟的,群有群规,既然规定是技术学习交流,那就不要发广告信息,推广信息,小程序分享,刷屏刷图等!一 ...

  3. [科技论文写作]基于Android的支付宝APP设计与开发实现

    文章目录 前言 正文 基于Android的支付宝APP设计与实现 1 选题背景 2 选题价值 2.1 理论价值 2.2 实践价值 3 文献综述 4 拟研究内容 5 拟解决关键问题 6 拟采用的研究方法 ...

  4. 支付宝APP支付 ---服务器开发

    写过微信支付再写支付宝支付就好理解了很多.而且支付宝提供的sdk很好用,几行代码就可以了~~,写的代码还没有测试,应该问题不大,如果有错误希望各位指正. 开发之前必要的配置请参考支付宝APP支付官方文 ...

  5. 微信APP支付功能开发

    前期准备工作 1. 微信各平台功能认识 1.1 微信开放平台: 支持移动应用,公众号的开发,创建应用并得到APPID,使你的应用支持微信支付. 1.2 微信公众平台: 微信小程序,服务号,订阅号的开发 ...

  6. 50兆 svg 文件超过_用svg+css3实现支付宝App波浪功能

    在使用支付宝的时候,我发现了一个很有意思的功能--波浪效果,于是我钻研了一下午,觉得这玩意还真是挺有意思,大致是svg+css3来实现 于是我就简单仿写了一个波浪特效 照例,直接上功能,不多解释 知乎 ...

  7. php 微信支付退款接口开发,微信支付退款功能开发

    第一次做微信的退款处理,特此标记一下 准备 appId 微信分配的公众账号ID(企业号corpid即为此appId) mch_id 微信支付分配的商户号 pay_secret 商户平台设置的秘钥:微信 ...

  8. java支付宝对账功能开发_java后台实现支付宝对账功能

    完成支付宝支付.查询的接口之后,我们应该还需要定时与支付宝进行对账,以确保商户系统的订单信息是正确的,想知道支付宝支付.查询接口实现过程的亲们,可移步到上一篇有详细过程. 现在我们来讲一下支付宝对账的 ...

  9. 记一次支付宝支付的功能开发

    背景: 公司需要增加一项支付宝PC端的收款功能 解决: 使用的支付宝官方文档中的电脑网站支付->统一收单下单并支付,当然,我们的支付宝账号需要开通该产品.官方API连接:https://open ...

  10. Java支付宝APP支付-验证异步通知消息

    上一章已经讲述了支付宝如何生成支付订单,这一章讲述一下支付宝生成订单之后,异步通知接口的开发. 这里先讲一下啥叫支付宝异步通知:对于App支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址 ...

最新文章

  1. 鲁迅先生就ERP实施问题答记者问
  2. 【运营干货】段子手打死也不会告诉广告主的事:一篇新媒体文案如何才能引发用户分享?...
  3. 【机器学习】Facets:评估机器学习数据集质量利器 (来自Google、可交互、可可视化)...
  4. 前端学习(1971)vue之电商管理系统电商系统之完成参数的添加操作
  5. maccmsv10 苹果cms10 站群扩展 自用版
  6. 在带有OR条件的LEFT JOIN中使用索引(Using index in LEFT JOIN with OR condition)
  7. effective_transformer
  8. 配电室智能监控系统设计及实现分析-Susie 周
  9. 拼多多显示内部服务器错误是怎么回事,拼多多提现出现错误怎么办?拼多多提现常见问题...
  10. 做了多年开发的你发现自己的水平一直上不去,一篇文章教你如何提高开发水平的方法
  11. FINAUNCE金融业增速反弹信贷投放创新高
  12. 评量子论的两本科普书籍
  13. 顶尖电子秤ls6恢复出厂_顶尖LS6(X)条码秤调试教程
  14. 将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
  15. 专业系统开发流程有多少步骤?如何进行系统开发?
  16. 从零开始的DIY智能家居--自己在家手搓一套人脸识别智慧猫眼系统
  17. 嵌入式蓝牙软件开发中的资源
  18. 深圳聚惠企业 2017年春节假期通告!!!
  19. 网易两份凉拌面「面经」
  20. 汉芯一号诞生记 zz

热门文章

  1. pd.to_datetime函数函数获取相应时间维度指标(isocalendar函数用法)
  2. 7个月吐血整理!Android面试相关文章及Github学习资料(标星3.2K)
  3. 配置babel-plugin-import报错的深坑
  4. 情商高的人所看透的四种人生真相
  5. Layui多文件上传,java后台(servlet实现)
  6. maven报错cannot reconnect
  7. 利用Python实现自动投票以及自动爬虫IP代理
  8. 1553B 协议详解
  9. 趋势判研:基于Web3.0的智能生态体——保险科技生态建设...
  10. python爬取招聘网站视频教程_Python爬取拉钩招聘网