From 608c149cc8e9b35acf8bb1aeaa40de731080848a Mon Sep 17 00:00:00 2001 From: egzosn Date: Sat, 11 Mar 2017 10:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=BF=87=E6=B8=A1=E6=9D=BF?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/ali/before/api/AliPayService.java | 49 ++++++++++++++----- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/pay-java-ali/src/main/java/in/egan/pay/ali/before/api/AliPayService.java b/pay-java-ali/src/main/java/in/egan/pay/ali/before/api/AliPayService.java index 55f6f8c..390fa59 100644 --- a/pay-java-ali/src/main/java/in/egan/pay/ali/before/api/AliPayService.java +++ b/pay-java-ali/src/main/java/in/egan/pay/ali/before/api/AliPayService.java @@ -315,9 +315,9 @@ public class AliPayService extends BasePayService { } @Override - public Map refund(String tradeNo, String outTradeNo) { + public Map refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) { - return refund(tradeNo, outTradeNo, new Callback>() { + return refund(tradeNo, outTradeNo, refundAmount, totalAmount, new Callback>() { @Override public Map perform(Map map) { return map; @@ -326,10 +326,18 @@ public class AliPayService extends BasePayService { } @Override - public T refund(String tradeNo, String outTradeNo, Callback callback) { - return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.REFUND, callback); - } + public T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback callback) { + //获取公共参数 + Map parameters = getPublicParameters(AliTransactionType.REFUND); + Map bizContent = getBizContent(tradeNo, outTradeNo, null); + bizContent.put("refund_amount", refundAmount); + //设置请求参数的集合 + parameters.put("biz_content", JSON.toJSONString(bizContent)); + //设置签名 + setSign(parameters); + return callback.perform(requestTemplate.getForObject(queryReqUrl + "?" + ClientHttpRequest.getMapToParameters(parameters), JSONObject.class)); + } @Override public Map refundquery(String tradeNo, String outTradeNo) { return refundquery(tradeNo, outTradeNo, new Callback>() { @@ -421,6 +429,27 @@ public class AliPayService extends BasePayService { } + + /** + * 获取biz_content。请求参数的集合 不包含下载账单 + * @param tradeNo 支付平台订单号 + * @param outTradeNo 商户单号 + * @param bizContent 请求参数的集合 + * @return + */ + private Map getBizContent(String tradeNo, String outTradeNo, Map bizContent){ + if (null == bizContent){ + bizContent = new TreeMap<>(); + } + if (null != outTradeNo){ + bizContent.put("out_trade_no", outTradeNo); + } + if (null != tradeNo){ + bizContent.put("trade_no", tradeNo); + } + return bizContent; + } + /** * 获取biz_content。不包含下载账单 * @param tradeNo 支付平台订单号 @@ -428,14 +457,8 @@ public class AliPayService extends BasePayService { * @return */ private String getContentToJson(String tradeNo, String outTradeNo){ - Map bizContent = new TreeMap<>(); - if (null != outTradeNo){ - bizContent.put("out_trade_no", outTradeNo); - } - if (null != tradeNo){ - bizContent.put("trade_no", tradeNo); - } - return JSON.toJSONString(bizContent); + + return JSON.toJSONString(getBizContent(tradeNo, outTradeNo, null)); } }