支付宝的支付系统还是比较完善的 针对退款采用了 企业打款和原路返回两种手段 原路返回最重要的两个字段是支付三方流水号[其实还有一个字段也可以 好像是支付宝的流水号 记得不是很清楚了] 还有就是退款金额和订单金额 订单一次可以全退 也可以部分退回 但是退款金额不能大于订单金额 对了这个业务也是需要开通的
好的直接上源码
/**
* 支付宝原路返回
* @param refundsVo
* @param userId
* @return
*/
@RequestMapping(value = "aLiTransferToReFul", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String aLiTransferToReFul(RefundsVo refundsVo, String userId){
ResultModel resultModel;
try{
String refund_amount = refundsVo.getRefundAccount();
String out_trade_no = refundsVo.getOrderNo();
AlipayClient alipayClient = AliPayConfig.getAlipayClient();
AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
refundModel.setOutTradeNo("支付的out_tran_no");
refundModel.setRefundAmount("退款金额");//可部分退款和全部退款
refundModel.setRefundReason("商品退款");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
request.setBizModel(refundModel);
AlipayTradeRefundResponse response = alipayClient.execute(request);
System.out.println(response.getMsg()+"\n");
System.out.println(response.getBody());
//提现成功
if (response.isSuccess()) {
resultModel = new ResultModel(200,"31210","支付宝原路返回成功");
}else{
resultModel = new ResultModel(500,"31209","支付宝原路返回失败");
}
}catch (Exception e){
resultModel = new ResultModel(500,"31209","支付宝原路返回失败");
log.debug("出错啦!!!"+e);
e.getStackTrace();
}
return JsonUtil.toJson(resultModel);
}
好的这个就是支付宝的原路返回 其实针对与退款我们当时做的平台是有一个后台的审核的 所以逻辑代码不是很多 大多逻辑代码都放到了 退款申请 和退款审核里面了 钱包的申请提现也是逻辑都在申请和审核中 所以这里大家可能需要自己添加逻辑源码 成功的地方我都做出了标记 OK 支付宝篇 到这里就结束了 接下来 我整理一个微信篇 大家都说微信是比支付宝要恶心的 其实我感觉微信更加的简单 因为微信的验证体系更加完整 包括我自己的加密系统 都是根据微信的加密和加签来实现的 简单来说 微信更加适合程序员 但是支付宝 更加人性化一些 微信的确在这一点上做的没有支付宝好
下一篇: 微信篇 微信支付