时间:2021-05-19
最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下。
其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了。
一、引入支付宝SDK
在这里说一下,其实每种支付都会有一个官方带的SDK,我们可以把这个sdk引入到我们的项目中去,然后我们就可以调用里面的方法和对象,给里面传值,进行我们相应的请求的访问和介入。
首先引入如上图所示的jar包,然后我们就算是成功了一半了。
下载地址
然后我们需要把这个jar包引入到所需要的地方,这里不做过多的描述。
二、找到需要的资源
做支付,最最基本的还是各种appid,还有公钥,私钥,以及请求的网关等等内容,支付宝需要的包括:
三、编写请求代码
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); }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
支付宝代付退款新规则是什么?很多人不清楚支付宝代付退款新规则是什么,这就导致很多人支付宝代付被骗或者别的事发生,今天小编就给大家简单总结了一下支付宝退款新规
目前实现了支付宝当面付的扫码支付功能、二维码支付功能,即主动扫和被动扫。测试请使用支付宝沙箱环境,支付宝是沙箱版。最终效果如下:前端页面使用阿里的组件,ant-
支付宝代付退款退到哪里去了?很多朋友不清楚支付宝代付退款退到哪里,这就造成了许多人帮人代付的时候被骗,今天小编给大家简单介绍一下支付宝代付退款退到哪里去了。
支付宝是大家常用的软件,我们日常消费的时候都会通过支付宝的付款功能来实现付款,而且想要给好友转账的话,也可以通过支付宝来完成,下面了解一下支付宝对公转账是否安全
现在很多小伙伴都在使用支付宝。这是支付宝的许多功能非常方便,支付宝不仅有转账支付的功能,还有很多其他功能。你知道支付宝的定期存款在哪里吗?一、支付宝定期存款在哪