1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 接入支付宝退款功能

接入支付宝退款功能

时间:2022-12-14 00:50:14

相关推荐

接入支付宝退款功能

项目中需要接入支付宝退款功能,根据支付宝API Demo,代码如下:

public class AlipayRefund {private static final Logger logger = LoggerFactory.getLogger(AlipayRefund.class);/*** 支付宝退款方法* @param orderId 订单id* @param tradeNo 支付宝交易号* @param totalAmount 退款金额,该金额不能大于订单金额,单位为元,支持两位小数* @param refundId 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传* @return*/public static Result alipayCreateOrderRefund(String orderId,String tradeNo,String totalAmount,String refundId) {Result res = new Result();if(Validata.isNullOrEmpty(orderId) || Validata.isNullOrEmpty(tradeNo) || Validata.isNullOrEmpty(totalAmount)){res.setCode(Result.CODE_PARA_ERROR);res.setMsg("方法必传参数有误");return res;}//AlipayClient alipayClient = new com.alipay.api.DefaultAlipayClient("/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");AlipayClient alipayClient = new com.alipay.api.DefaultAlipayClient(AlipayConstant.GET_WAY, AlipayConstant.APP_ID, AlipayConstant.ALIPAY_PRIVATE_KEY,AlipayConstant.FORMAT, AlipayConstant.CHARSET, AlipayConstant.ALIPAY_PUBLIC_KEY, AlipayConstant.SIGN_TYPE);AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();AlipayTradeRefundModel model= new AlipayTradeRefundModel();model.setOutTradeNo(orderId);//订单支付时传入的商户订单号model.setTradeNo(tradeNo);//支付宝交易号model.setRefundAmount(totalAmount);//refund_amount 需要退款的金额,该金额不能大于订单金额,单位为元if(!Validata.isNullOrEmpty(refundId)){model.setOutRequestNo(refundId);}request.setBizModel(model);//请求参数AlipayTradeRefundResponse response = null;try {response = alipayClient.execute(request);if(response.isSuccess()){res.setCode(Result.CODE_OK);logger.info("支付宝:支付订单支付结果查询:订单out_trade_no----"+orderId+"---订单退款成功!");} else {res.setCode(Result.CODE_ERROR);logger.info("支付宝:支付订单支付结果查询:订单out_trade_no----"+orderId+"---订单退款失败!");}res.setMsg(response.getSubMsg());}catch ( AlipayApiException e){res.setCode(Result.CODE_ERROR);res.setMsg("调用支付宝退款接口失败");logger.error("支付宝订单退款失败", e);}return res;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。