当前位置: 首页 > 编程笔记 >

java实现支付宝退款功能

郏佐
2023-03-14
本文向大家介绍java实现支付宝退款功能,包括了java实现支付宝退款功能的使用技巧和注意事项,需要的朋友参考一下

最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下。

其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了。

一、引入支付宝SDK

在这里说一下,其实每种支付都会有一个官方带的SDK,我们可以把这个sdk引入到我们的项目中去,然后我们就可以调用里面的方法和对象,给里面传值,进行我们相应的请求的访问和介入。    

首先引入如上图所示的jar包,然后我们就算是成功了一半了。

下载地址

然后我们需要把这个jar包引入到所需要的地方,这里不做过多的描述。

二、找到需要的资源

做支付,最最基本的还是各种appid,还有公钥,私钥,以及请求的网关等等内容,支付宝需要的包括:

  • APP_ID:开放平台账号申请的appid
  • requestUrl:实现功能所需要请求的网关地址
  • APP_PRIVATE_KEY:用户自己生成的私钥
  • ALIPAY_PUBLIC_KEY:支付宝生成的公钥
  • CHARSET:我们需要的字符编码,一般为utf-8的

三、编写请求代码 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeRefundModel;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.response.AlipayTradeRefundResponse;
 
public class AlipayUtil {
 
 private static final Logger LOGGER = LoggerFactory.getLogger(AlipayUtil.class); 
 private static String APP_ID = "234789720984098";
 
 //支付宝退款请求的网关
 private static String requestUrl = "https://openapi.alipay.com/gateway.do";
 //用户自己生成的私钥
 private static String APP_PRIVATE_KEY = "随机字符,见文档";
 //支付宝公钥
 private static String ALIPAY_PUBLIC_KEY = "从支付宝中获得";
 
 //编码级别
 private static String CHARSET = "UTF-8";
 
 public static String refundOrder(AliRefundTO aliRefundTO){
 System.out.println("开始调用支付宝加密******************************************************");
 //实例化客户端
  AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
  //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
  AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
  refundModel.setTradeNo(aliRefundTO.getTrade_no());
  refundModel.setRefundAmount(aliRefundTO.getRefund_amount());
  refundModel.setRefundReason("商品退款");
  //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
  AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
  request.setBizModel(refundModel);
  try{
  AlipayTradeRefundResponse response = alipayClient.execute(request);
  System.out.println(response.getMsg()+"\n");
  System.out.println(response.getBody());
  }catch(Exception e){
  e.printStackTrace();
  LOGGER.error("支付宝退款错误!",e.getMessage());  
  } 
  return "";  
 }
 
 public static void main(String[] arg){
 AliRefundTO aliRefundTO=new AliRefundTO();
 aliRefundTO.setRefund_amount("0.01");
 aliRefundTO.setTrade_no("2018050421001004310518105890");
 String res=refundOrder(aliRefundTO);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍java服务器端微信、支付宝支付和退款功能,包括了java服务器端微信、支付宝支付和退款功能的使用技巧和注意事项,需要的朋友参考一下 工作需要,写了服务器端的支付和退款功能,包含微信和支付宝,网上也有很多demo可以借鉴,我把我的代码放出来,写的比较简单,有问题的欢迎指正,大家一起学习。 微信支付需要调用微信的统一下单接口,而支付宝不用。 我写的时候微信和支付宝都单独写了一个工具类,

  • 本文向大家介绍SpringBoot集成支付宝沙箱支付(支付、退款),包括了SpringBoot集成支付宝沙箱支付(支付、退款)的使用技巧和注意事项,需要的朋友参考一下 前言 支付宝推出一个沙箱环境,能够很好的模拟支付宝支付,并且还提供了demo,但demo是一个普通web项目,怎么整合到Spring Boot项目呢,其实很简单 简单配置请参照支付宝沙箱支付开发文档 一、支付部分 AlipayCon

  • 本文向大家介绍基于node.js实现微信支付退款功能,包括了基于node.js实现微信支付退款功能的使用技巧和注意事项,需要的朋友参考一下 缘起 有付款就会有退款 注意,退款支持部分退款 左口袋的钱退到右口袋罗   这次发起的退款请求0.01元是实时到账的,因此,用户在小程序端发起的退款只是一个请求到后台,后台审核人员审核无误后才后微信发起退款操作。 引入第三方module 在package.js

  • 本文向大家介绍Java实现支付宝之第三方支付宝即时到账支付功能,包括了Java实现支付宝之第三方支付宝即时到账支付功能的使用技巧和注意事项,需要的朋友参考一下 alipay 的几个内核功能文件: AlipayFunction.java AlipayNotify.java AlipayService.java Md5Encrypt.java AlipayConfig.java这里是对账号,Key,回

  • 本文向大家介绍java版微信和支付宝退款接口,包括了java版微信和支付宝退款接口的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1、微信退款接口  相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可; 报错的话请检查加密的sign是否正确,还有就是调用的接口地址是否正确 2、支付宝

  • 本文向大家介绍纯PHP代码实现支付宝批量付款,包括了纯PHP代码实现支付宝批量付款的使用技巧和注意事项,需要的朋友参考一下 最近在做一个使用支付宝转账的项目,其中有需求把我难到了:批量支付成功后不知道怎么接收系统返回的通知,经过朋友帮忙,此功能实现,下面小编把具体代码整理分享给大家,供大家参考 废话不多说了,直接给大家贴php代码了,具体代码如下所示: 以上内容给大家讲解了纯PHP代码实现支付宝批