这个out_request_no要求的是在一次订单分多次退款中必须要传,官方文档写的是保持唯一,刚开始理解成每个退款分单都一样,其实不是,保持唯一是指每一个分退款单都不一样,传什么东西无所谓,可以传个uuid,长度最高64即可,我传的是32位uuid
每次传一个uuid就行 uuid代码
。
// An highlighted block
String uuidString = UUID.randomUUID().toString().replaceAll("-", "");
request.setBizContent("{" +
"\"out_trade_no\":\"" + returnOrder.getBossId() + "\"," +//订单号
"\"trade_no\":\"" + order.getTransactionId() + "\"," +//支付宝交易号
"\"refund_amount\":\"" + returnOrder.getReturnMoney().doubleValue() / 100 + "\"," + //需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数
"\"refund_reason\":\"" + returnOrder.getReturnCause() + "\"," + //退款的原因说明
"\"out_request_no\":\"" + uuidString + "\"" +//标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
" }");
AlipayTradeRefundResponse response;
response = alipayClient.execute(request);