diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java index f43b76f297ddfc04be3f43bff7f2990d7c8e88b1..46735da5f1340b3571f6be3958455acc71a0ca8f 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java @@ -1,49 +1,10 @@ package com.egzosn.pay.ali.api; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; - -import static com.egzosn.pay.ali.bean.AliPayConst.ALIPAY_CERT_SN_FIELD; -import static com.egzosn.pay.ali.bean.AliPayConst.APP_AUTH_TOKEN; -import static com.egzosn.pay.ali.bean.AliPayConst.BIZ_CONTENT; -import static com.egzosn.pay.ali.bean.AliPayConst.CODE; -import static com.egzosn.pay.ali.bean.AliPayConst.DBACK_AMOUNT; -import static com.egzosn.pay.ali.bean.AliPayConst.HTTPS_REQ_URL; -import static com.egzosn.pay.ali.bean.AliPayConst.NOTIFY_URL; -import static com.egzosn.pay.ali.bean.AliPayConst.PASSBACK_PARAMS; -import static com.egzosn.pay.ali.bean.AliPayConst.PAYEE_INFO; -import static com.egzosn.pay.ali.bean.AliPayConst.PRODUCT_CODE; -import static com.egzosn.pay.ali.bean.AliPayConst.RETURN_URL; -import static com.egzosn.pay.ali.bean.AliPayConst.SIGN; -import static com.egzosn.pay.ali.bean.AliPayConst.SUCCESS_CODE; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.egzosn.pay.ali.bean.AliPayBillType; -import com.egzosn.pay.ali.bean.AliPayConst; -import com.egzosn.pay.ali.bean.AliPayMessage; -import com.egzosn.pay.ali.bean.AliRefundResult; -import com.egzosn.pay.ali.bean.AliTransactionType; -import com.egzosn.pay.ali.bean.AliTransferType; -import com.egzosn.pay.ali.bean.CertEnvironment; -import com.egzosn.pay.ali.bean.OrderSettle; +import com.egzosn.pay.ali.bean.*; import com.egzosn.pay.common.api.BasePayService; -import com.egzosn.pay.common.bean.AssistOrder; -import com.egzosn.pay.common.bean.BillType; -import com.egzosn.pay.common.bean.MethodType; -import com.egzosn.pay.common.bean.NoticeParams; -import com.egzosn.pay.common.bean.Order; -import com.egzosn.pay.common.bean.OrderParaStructure; -import com.egzosn.pay.common.bean.PayMessage; -import com.egzosn.pay.common.bean.PayOrder; -import com.egzosn.pay.common.bean.PayOutMessage; -import com.egzosn.pay.common.bean.RefundOrder; -import com.egzosn.pay.common.bean.TransactionType; -import com.egzosn.pay.common.bean.TransferOrder; -import com.egzosn.pay.common.bean.TransferType; +import com.egzosn.pay.common.bean.*; import com.egzosn.pay.common.bean.result.PayException; import com.egzosn.pay.common.exception.PayErrorException; import com.egzosn.pay.common.http.HttpConfigStorage; @@ -54,6 +15,10 @@ import com.egzosn.pay.common.util.sign.SignTextUtils; import com.egzosn.pay.common.util.sign.SignUtils; import com.egzosn.pay.common.util.str.StringUtils; +import java.util.*; + +import static com.egzosn.pay.ali.bean.AliPayConst.*; + /** * 支付宝支付服务 * @@ -485,7 +450,7 @@ public class AliPayService extends BasePayService implement */ @Override public Map query(String tradeNo, String outTradeNo) { - return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.QUERY); + return secondaryInterface(tradeNo, outTradeNo, null, AliTransactionType.QUERY); } @@ -497,7 +462,7 @@ public class AliPayService extends BasePayService implement */ @Override public Map query(AssistOrder assistOrder) { - return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), AliTransactionType.QUERY); + return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), assistOrder.getAttrs(), AliTransactionType.QUERY); } @@ -510,7 +475,7 @@ public class AliPayService extends BasePayService implement */ @Override public Map close(String tradeNo, String outTradeNo) { - return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.CLOSE); + return secondaryInterface(tradeNo, outTradeNo, null, AliTransactionType.CLOSE); } /** @@ -521,7 +486,7 @@ public class AliPayService extends BasePayService implement */ @Override public Map close(AssistOrder assistOrder) { - return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), AliTransactionType.CLOSE); + return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), null, AliTransactionType.CLOSE); } /** @@ -536,7 +501,7 @@ public class AliPayService extends BasePayService implement */ @Override public Map cancel(String tradeNo, String outTradeNo) { - return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.CANCEL); + return secondaryInterface(tradeNo, outTradeNo, null, AliTransactionType.CANCEL); } /** @@ -665,10 +630,11 @@ public class AliPayService extends BasePayService implement * @param tradeNoOrBillDate 支付平台订单号或者账单类型, 具体请 * 类型为{@link String }或者 {@link Date },类型须强制限制,类型不对应则抛出异常{@link PayErrorException} * @param outTradeNoBillType 商户单号或者 账单类型 + * @param bizContent 请求参数的集合 * @param transactionType 交易类型 * @return 返回支付方对应接口的结果 */ - public Map secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, TransactionType transactionType) { + public Map secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, Map bizContent, TransactionType transactionType) { if (transactionType == AliTransactionType.REFUND) { throw new PayErrorException(new PayException("failure", "通用接口不支持:" + transactionType)); @@ -685,7 +651,7 @@ public class AliPayService extends BasePayService implement Map parameters = getPublicParameters(transactionType); //设置请求参数的集合 - parameters.put(BIZ_CONTENT, getContentToJson((String) tradeNoOrBillDate, outTradeNoBillType)); + parameters.put(BIZ_CONTENT, getContentToJson((String) tradeNoOrBillDate, outTradeNoBillType, bizContent)); //设置签名 setSign(parameters); @@ -792,11 +758,12 @@ public class AliPayService extends BasePayService implement * * @param tradeNo 支付平台订单号 * @param outTradeNo 商户单号 + * @param bizContent 请求参数的集合 * @return 获取biz_content。不包含下载账单 */ - private String getContentToJson(String tradeNo, String outTradeNo) { + private String getContentToJson(String tradeNo, String outTradeNo, Map bizContent) { - return JSON.toJSONString(getBizContent(tradeNo, outTradeNo, null)); + return JSON.toJSONString(getBizContent(tradeNo, outTradeNo, bizContent)); } /**