首页 > 其他分享 >支付宝退款功能

支付宝退款功能

时间:2024-11-05 21:23:14浏览次数:3  
标签:alipay 支付宝 功能 return String url payment 退款 public

支付宝退款功能

参考地址:https://opendocs.alipay.com/open/4b7cc5db_alipay.trade.refund?scene=common&pathHash=d98b006d

1、引入依赖

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

2、创建一个配置文件放支付宝支付的《必需参数》

alipay:
# alipay_url: https://openapi.alipay.com/gateway.do # 真实支付的url
  alipay_url: https://openapi-sandbox.dl.alipaydev.com/gateway.do  # 沙箱的url
  app_id: # APPID
  app_private_key: # 应用私钥
  alipay_public_key: # 支付宝公钥
  format: json # 数据格式
  charset: utf-8 # 编码格式
  sign_type: RSA2 # 加密方式
  return_payment_url:  # 通知地址,支付成功后点击完成后,会调用该路径接口。
  notify_payment_url:  # 异步通知地址,用于接收支付宝推送给商户的支付/退款成功的消息。
  return_order_url:   # 重定向地址,支付成功后点击完成后,会《重定向自动跳转回》商家页面地址。

3、创建一个类调用支付宝支付API,并获取配置文件值

package com.spzx.payment.configure;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AlipayConfig {

    // 支付宝网关地址
    @Value("${alipay.alipay_url}")
    private String alipay_url;
    
    // 应用的私钥
    @Value("${alipay.app_private_key}")
    private String app_private_key;
    
    // 支付宝的appId
    @Value("${alipay.app_id}")
    private String app_id;


    public final static String format="json";
    public final static String charset="utf-8";
    public final static String sign_type="RSA2";


    public static String return_payment_url;

    public static  String notify_payment_url;

    public static  String return_order_url;

    public static  String alipay_public_key;

    @Value("${alipay.alipay_public_key}")
    public   void setAlipay_public_key(String alipay_public_key) {
        AlipayConfig.alipay_public_key = alipay_public_key;
    }

    @Value("${alipay.return_payment_url}")
    public   void setReturn_url(String return_payment_url) {
        AlipayConfig.return_payment_url = return_payment_url;
    }

    @Value("${alipay.notify_payment_url}")
    public   void setNotify_url(String notify_payment_url) {
        AlipayConfig.notify_payment_url = notify_payment_url;
    }

    @Value("${alipay.return_order_url}")
    public   void setReturn_order_url(String return_order_url) {
        AlipayConfig.return_order_url = return_order_url;
    }

	// 创建一个client对象
    @Bean
    public AlipayClient alipayClient(){
        AlipayClient alipayClient=new DefaultAlipayClient(alipay_url,app_id,app_private_key,format,charset, alipay_public_key,sign_type );
        return alipayClient;
    }

}

4、使用支付宝退款

https://opendocs.alipay.com/open/4b7cc5db_alipay.trade.refund?scene=common&pathHash=d98b006d

@Autowired
private AlipayConfig alipauConfig
@Override
public String AlipayTradeRefund(String orderNo){
    //调用支付宝的退款接口
    //支付宝退款接口对应的request AlipayTradeRefundRequest
    AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
    
    //用于封装参数
    AlipayTradeRefundModel model = new AlipayTradeRefundModel();
    
	// 设置商户订单号
    model.setOutTradeNo("20150320010101001");
	// 设置支付宝交易号
    model.setTradeNo("2014112611001004680073956707");  
    // 设置退款金额
    model.setRefundAmount("200.12");
 	// 设置退款原因说明
    model.setRefundReason("正常退款");
	// 设置退款请求号
	model.setOutRequestNo("HZ01RF001");
    
    request.setBizModel(model);
    
    try {
        //调用支付宝退款接口
         AlipayTradeRefundResponse response = alipayClient.execute(request);
         boolean success = response.isSuccess();
         if (!success){
             throw new ServiceException("退款接口调用失败");
          }
      } catch (AlipayApiException e) {
            throw new RuntimeException(e);
    }
}

标签:alipay,支付宝,功能,return,String,url,payment,退款,public
From: https://www.cnblogs.com/21CHS/p/18528872

相关文章

  • springboot+vue乘客电梯无纸化维保系统功能详细【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着城市化进程的加速,高层建筑如雨后春笋般涌现,乘客电梯作为现代生活中不可或缺的垂直交通工具,其安全性能和运行效率直接关系到公众的生命安全与生活质量。传统的电梯维保模式依赖于纸质记录,不仅效率低下,且易产生数据错漏,难以实现对电......
  • 推荐一款功能强大的专业相片编辑软件:PhotoDirector
    CyberLinkPhotoDirectorUltra获选为年度最佳相片编修软件的重要关键创意力!颠覆规则玩翻色彩,相片大师让设计走进照片中,化平凡不平凡。现在就从世界各地玩家的创作,仔细探索CyberLinkPhotoDirectorUltra的强大创作力。CyberLinkPhotoDirectorUltra家庭回忆收藏专家,提供丰富......
  • 推荐一款功能强大的视频修复软件:Apeaksoft Video Fixer
    ApeaksoftVideoFixer是一款功能强大的视频修复软件,专门用于修复损坏、不可播放、卡顿、画面失真、黑屏等视频问题。只需提供一个准确且有效的样本视频作为参考,该软件就能将受损视频修复到与样本视频相同的质量。该软件目前支持MP4、MOV、3GP等格式的视频修复,并且还支持4K、8K......
  • 利用射线检测实现光束照射激活功能——2024TapTap聚光灯GameJam(一)
    利用射线检测实现光束照射激活功能——2024TapTap聚光灯GameJam记录日期 2024-11-05                          记录时间 13:35项目完成 2024-10-28                         历经时长 21 天简介项目主题:Light项目......
  • 探讨FANUC机床锁机功能实现方式
    fanuc机床因为比较开放,市面上的资料比较多,个人查阅实现方式分3种。1、用中继控制循环启动的电路。此种方式实施比较麻烦,且需要增加硬件成本。2、修改PMC程序,控制PMC中的G信号点,如G130.0,G7.2,G8.5等等。3、不修改PMC程序,查找PMC程序中控制G130.0,G7.2,G8.5等的R地址,控制R地......
  • 国标GB28181-2016平台LiteGBS国标GB28181设备端接入SDK国标级联共享功能的优势体现在
    在现代安防监控领域,视频监控管理平台的国标级联共享功能是实现跨区域、跨系统资源整合与共享的关键技术。LiteGBS平台以其卓越的性能和广泛的兼容性,为用户提供了一个高效、可靠的解决方案。本文将详细介绍国标GB28181-2016平台LiteGBS在国标级联共享方面的五大优势,展示其如何帮助......
  • 陪玩系统源码APP中的语音聊天直播房间有哪些功能?
    陪玩系统源码APP通常采用Springboot、MybatisPlus和MySQL等后端技术栈来构建后端服务。这些技术提供了强大的数据处理能力和灵活的扩展性,能够满足高并发、低延迟的业务需求。 陪玩系统源码线上线下家政游戏陪玩前端开发框架如uniapp(针对Web和小程序)等被广泛应用于陪玩系统源......
  • FB284功能说明
    FB284功能说明 带增量编码器V90,使用参考挡块+编码器零脉冲方式回零时,参考挡块回零开关接到哪里,怎样配置回零开关连接到一个PLC的数字量输入点,PLC内编程将其状态关联到FB284功能块ConfigEPos输入引脚的bit6。(1)将V90参数P29240设置为1(选择参考挡块+零脉冲方式回零);(2)将回零开关......
  • javaweb基于JSP实现购物车功能源码(无数据库) 课程设计 大作业
    ......
  • 支付宝生活号无限关注无限曝光机,高效引流必备神器
    功能介绍:支付宝生活号无限关注无限曝光无限关注曝光,不限制关注直到上限,引流钩子设置好,懂得都懂设备需求:安卓手机......