Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝订单退款)
上一篇写到支付宝的支付,这代码copy下来就能直接用了, 我写学习文档时会经常贴 官方参数文档的案例地址, 因为我觉得 请求参数,响应参数说明 官方文档整理的很好,毕竟官方不会误导大家.
我学一个新技术的时候最喜欢做的就是把案例代码copy到自己的项目里面跑一遍, 然后再一 一分析每段代码的作用.
昨天忘说了 别忘了引入支付宝的SDK :
在这里说一下,一般接入第三方都会有第三方的SDK包,要把他们放在自己项目里我们才能接入他们的API.
支付宝SDK下载地址: https://docs.open.alipay.com/54/103419/
然后我们需要把这个jar包引入到所需要的地方,这里不做过多的描述。
1.查看支付订单
该接口提供所有支付宝支付订单的查询,商户可以通过该接口主动查询订单状态,获取这个订单的信息.
重要参数 Out_Trade_No : 商户网站唯一订单号,也就是自己项目生成订单号 Trade_No 支付宝交易号, 是支付宝端给这个交易生成的订单交易号.
贴代码:
- /**
- *
- * 说明:查看支付订单
- * @param Out_Trade_No 商户网站唯一订单号
- * @param Trade_No 支付宝交易号
- * @return 公共响应参数 code,msg 响应参数: https://docs.open.alipay.com/api_1/alipay.trade.query
- * @author ArLen
- * @time:2018年12月11日 下午2:19:44
- */
- @Override
- public String queryPayment(String Out_Trade_No,String Trade_No) {
- //填写自己创建的app的对应参数
- AlipayClient alipayClient = new DefaultAlipayClient("支付宝网关", "appid", "私钥", "json", "utf-8", "公钥","RSA2");
- AlipayTradeQueryRequest alipay_request = new AlipayTradeQueryRequest();
- AlipayTradeQueryModel model=new AlipayTradeQueryModel();
- model.setOutTradeNo(Out_Trade_No);
- model.setTradeNo(Trade_No);
- alipay_request.setBizModel(model);
- try {
- AlipayTradeQueryResponse alipay_response = alipayClient.execute(alipay_request);
- String queryPaymentStr = alipay_response.getBody();
- System.out.println(queryPaymentStr);
- return queryPaymentStr;
- } catch (AlipayApiException e) {
- e.printStackTrace();
- }
- return null;
- }
会返回 订单金额,订单状态,买家支付宝账号等很多数据, 官方参数字典: https://docs.open.alipay.com/api_1/alipay.trade.query
2.支付宝订单退款
当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款 支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额
- /**
- *
- * 说明: 支付宝订单退款
- * @param out_trade_no 订单编号
- * @param trade_no 支付宝订单交易号
- * @param refund_amount 退款金额 不得大于订单金额
- * @param refund_reason 退款说明
- * @param out_request_no 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
- * @return 公共返回参数 code,msg, 响应参数实例: https://docs.open.alipay.com/api_1/alipay.trade.refund
- * @author ArLen
- * @time:2018年12月11日 下午2:29:13
- */
- @Override
- public String alipayRefund(String out_trade_no,
- String trade_no,
- String refund_amount,
- String refund_reason,
- String out_request_no) {
- //填写自己创建的app的对应参数 AlipayClient alipayClient = new DefaultAlipayClient("支付宝网关", "appid", "私钥", "json", "utf-8", "公钥","RSA2");
- //订单编号 支付宝交易号不为空
- if(out_trade_no!=null&& trade_no!=null) {
- AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest();
- AlipayTradeRefundModel model=new AlipayTradeRefundModel();
- model.setOutTradeNo(out_trade_no);
- model.setTradeNo(trade_no);
- model.setRefundAmount(refund_amount);
- model.setRefundReason(refund_reason);
- model.setOutRequestNo(out_request_no);
- alipay_request.setBizModel(model);
- try {
- AlipayTradeRefundResponse alipay_response = alipayClient.execute(alipay_request);
- String alipayRefundStr = alipay_response.getBody();
- System.out.println(alipayRefundStr);
- return alipayRefundStr;
- } catch (AlipayApiException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
会返回公共参数 code,msg 等状态提示你 退款成功或者退款失败 官方响应参数: https://docs.open.alipay.com/api_1/alipay.trade.refund/
个人觉得没有什么比 简洁,通俗,易懂,有注释的代码能让读者更容易看懂的了.
然后我还接触到一个功能就是单笔转账到支付宝账户, 因为客户说 如果能直接提现到支付宝 或者微信 就暂时不做提现到银行卡的操作, 所以就直接从商户支付宝单笔转账到用户支付宝里实现了这个功能, 有时间 再贴出来.( ˘ ³˘)
Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝订单退款)的更多相关文章
- Java 支付宝支付,退款,单笔转账到支付宝账户(单笔转账到支付宝账户)
上次分享了支付宝订单退款的代码,今天分享一下支付宝转账的操作. 现在是有一个余额提现的功能,本来是打算做提现到银行卡的,但是客户嫌麻烦不想注册银联的开放平台账户,就说先提现到支付宝就行,二期再做银行 ...
- Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)
最近一直在接触第三方,刚接入完支付宝的API做一下总结,个人能力薄弱有不对的地方望指教. 做的是一个小型电商项目,所以会接入第三方的支付和登入功能, 第一次接入第三方撸了很多官方文档. 进入主题, ...
- Laravel 开发支付宝支付与提现转账问题小结
由于项目需要,所以需要开发支付宝支付与微信支付,支付部分采用了 yansongda/pay https://packagist.org/packages/yansongda/pay https ...
- APP开通支付宝支付 转账功能
注意:支付宝单笔转账到账户功能的准入条件 首先要在商家中心注册,从商家中心可以跳转到开放平台. 登陆蚂蚁金服开放平台 1 开发中心->网页&移动应用 2 根据需求选择应用类型创建应用 3 ...
- 支付宝支付Java后台总结
这个支付的流程是前端H5(APP等)需要支付时调用后台的接口拿到我们加密的签名去调起支付宝的支付界面(支付宝APP)进行支付操作,并且前端在支付成功后,支付宝后台会回调一个我们在签名时写入的一个接口地 ...
- MUI 微信 和支付宝支付 (前台代码)
<!-- 校园公告详情界面 用于显示校园公告的详情信息 在校园公告界面点击某一条目后 进入本界面查看详情 --> <!DOCTYPE html> <html> &l ...
- ThinkPHP5.0 实现 app支付宝支付功能
前几天做项目,要求要用到支付宝接口,第一次做,弄了好几天 各种坑啊,简单写一下我做支付宝支付的过程,希望对也是第一次做支付宝支付的童鞋有帮助, 不懂的可以先去支付平台看一下支付宝支付的文档,我是下的d ...
- H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)
H5打包的app实现支付及支付宝支付,本章主要详解支付宝支付,微信支付请查看另一篇“H5使用codovar插件实现微信支付(微信APP支付模式,前端)” ps:本文只试用H5开发的,支付宝 APP支付 ...
- Luffy之支付宝支付开发API
发起支付 接入支付宝 支付的大致流程如下图: 部分节点详解: 沙箱环境 是支付宝提供给开发者的 ...
随机推荐
- 关于ASP.NET MVC4在IIS6中不认识安卓移动设备的解决办法
在IIS7中发现安卓的手机浏览器是可以跳转滴. 项目中是采用***.mobile.cshtml来显示移动视图的. 部署到IIS6.0中发现并没有转到*.mobile.cshtml移动视图. 进过漫长的 ...
- Markdown的学习笔记一
之前学习看些书籍.学些技术都喜欢用xmind做思维导图的笔记,慢慢的发现想把一些笔记做的详细一些就会变得很复杂,个人觉得误了思维导图本意,而且用手机查看的时候也各种不方便.所以开始学习使用markdo ...
- UVA12888 【Count LCM】(莫比乌斯反演)
题意:求\(\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==1]\) \(assume\ n<m\) \(\sum_{i=1}^{n}\sum_{j=1}^{m}[ ...
- jzoj4223
考慮這樣一種暴力:將所有<=x的邊按照類似最小生成樹的方式加入答案,然後用下面的方法統計答案: 1.首先加入一條邊 2.看這條邊是否將會合成聯通塊,如果會,那麼加進這條邊,記這條邊一端聯通塊大小 ...
- cglib invoke 和 invokeSuper 可用的组合
在深入字节码理解invokeSuper无限循环的原因中,我们理解的cglib的原理和其中一个合理的调用方式.但是这个调用方式是基于类的,对所有实例生效.实际场景中,我们可能只是希望代理某个具体的实例, ...
- git常用命令(todo...)
git init在目录中执行 git init,就可以创建一个 Git 仓库 git add test.javagit add 命令可将该文件添加到缓存(暂存区) git commit test.ja ...
- 使用webpack和react搭建项目
看了N多博客,日志,一边迷茫一边摸索.本文记录流程.我怕自己忘了...并且修复了博客园首页推荐那个日志中遇到的bug 1.webstorm新建一个空白项目,比如webpack_demo 2.因为要用r ...
- vue教程1-01 v-model 一般表单元素(input) 双向数据绑定
vue教程1-01 v-model 一般表单元素(input) 双向数据绑定el:'#box',//这里放的是选择器.不然会不生效 <!DOCTYPE html> <html l ...
- 主成分分析(PCA)原理详解(转载)
一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识发现>和季海波老师的<矩阵代数>两门课之后,颇有体会.最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得 ...
- c++程序时间统计
如下所示,引入<time.h>我们就可以统计时间了: #include<iostream> #include<time.h> #include<windows ...