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

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

一、引入支付宝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实现支付宝退款功能相关推荐

  1. java 支付宝退款_java实现支付宝退款功能

    最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下. 其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了. 一.引入支付宝SDK 在这里说一下,其实每种支付都会 ...

  2. java 微信退款接口_java版微信和支付宝退款接口

    本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...

  3. java退款功能的思路步骤_java实现支付宝退款功能

    java实现支付宝退款功能 发布时间:2020-09-09 03:19:03 来源:脚本之家 阅读:78 作者:王啸tr1912 最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下 ...

  4. UniApp + SpringBoot 实现接入支付宝支付功能和退款功能

    一.支付宝开放平台设置 注册支付宝支付功能需要个体工商户或企业才可以!需要有营业执照才能去申请哦! 1.登录到控制台 进入支付宝开放平台 控制台 2.开发设置 3.产品绑定APP支付 如果没有绑定AP ...

  5. java 支付宝 退款_Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)

    最近一直在接触第三方,刚接入完支付宝的API做一下总结,个人能力薄弱有不对的地方望指教.  做的是一个小型电商项目,所以会接入第三方的支付和登入功能, 第一次接入第三方撸了很多官方文档. 然后创建应用 ...

  6. 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付

    虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...

  7. 微信退款和支付宝退款接口调用(java版)

    项目中需要使用到微信和支付宝的退款功能,在这两天研究了一下这两个平台的退款,有很多坑,在开发中需要留意  1.微信退款接口  相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求 ...

  8. JAVA 支付宝退款接口

    2019独角兽企业重金招聘Python工程师标准>>> **构建表单参数 ** <input type="hidden" name="WIDbat ...

  9. java 支付宝退款、提现(单笔转账到支付宝账户接口)

    支付宝退款 import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipa ...

最新文章

  1. 【UML建模】UML图详细总结
  2. mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...
  3. Spring Boot下的Redis缓存实战
  4. MySQL的大小写问题
  5. 回溯时间是什么意思_《凡人修仙之仙界篇》分析时间法则的不同体现形式
  6. 多线程并发如何高效实现生产者/消费者?
  7. 饿了吗商品列表_仅仅一字之差,饿了么起诉饿了吗
  8. 努力的钻研深层次的【飞鸽传书】技术
  9. 编辑php程序推荐的软件,PHP程序员都爱用的开发工具推荐
  10. Druid 在小米公司部分技术实践
  11. dns代表计算机哪个术语,windows dns 术语解释
  12. matlab2010b无法启动,MATLAB2010b simulink 启动警告问题
  13. CSS度量单位px/pt/em/in/pc/mm/cm
  14. java ligerui_[Java教程]ligerUI
  15. 1007: A+B 输入输出练习VIII
  16. FCAA答题练习收集记录
  17. android 盈利模式
  18. bpmn不带网关的流程
  19. 芯片封装技术——Wire Bond与Flip Chip
  20. 基于unity+HTC VIVE的室内漫游交互(教你如何“无代码”VR交互)

热门文章

  1. CSDN博客如何添加量子恒道统计?
  2. 元宇宙创作者必备技能TouchDesigner
  3. 新手如何玩转自媒体!从零开始做自媒体,25种赚钱模式,教你如何空手套玩转自媒体
  4. 主键索引、唯一索引、普通索引、全文索引、组合索引的区别
  5. 【裂缝检测】文献阅读笔记
  6. 苹果审核reject理由大全(1): 兑换码、奖品是iphone
  7. python对共轭复数的定义_python怎么print出共轭复数
  8. 如何解决Protel 99SE添加库文件时出现“File is not recognized“
  9. 全面了解MAC OS X系统(以 Mac OS 9为例)
  10. 怎么在电脑上找到自己安装的软件的安装包