|  | @@ -81,7 +81,16 @@ public class AliPayUtil {
 | 
	
		
			
				|  |  |          /**
 | 
	
		
			
				|  |  |           * 支付失败(付款码支付)
 | 
	
		
			
				|  |  |           */
 | 
	
		
			
				|  |  | -        PAYERROR("PAYERROR", "支付失败");
 | 
	
		
			
				|  |  | +        PAYERROR("PAYERROR", "支付失败"),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        SUCC("10000","接口调用成功"),
 | 
	
		
			
				|  |  | +        SERVER_FAIL("20000","服务不可用"),
 | 
	
		
			
				|  |  | +        PERMISSION_DENIED("20001","授权权限不足"),
 | 
	
		
			
				|  |  | +        MISSING_PARAM("40001","缺少必选参数"),
 | 
	
		
			
				|  |  | +        ILLEGAL_PARAM("40002","非法的参数"),
 | 
	
		
			
				|  |  | +        BUSINESS_FAIL("40004","业务处理失败"),
 | 
	
		
			
				|  |  | +        ISV_PERMISSION("40006","权限不足");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          private String code;
 | 
	
		
			
				|  |  |          private String codeZn;
 | 
	
	
		
			
				|  | @@ -100,6 +109,53 @@ public class AliPayUtil {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    public enum BusinessFailState {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        SYSTEM_ERROR("ACQ.SYSTEM_ERROR","接口返回错误"),
 | 
	
		
			
				|  |  | +        EXIST_FORBIDDEN_WORD("ACQ.EXIST_FORBIDDEN_WORD","订单信息中包含违禁词"),
 | 
	
		
			
				|  |  | +        TOTAL_FEE_EXCEED("ACQ.TOTAL_FEE_EXCEED","订单总金额超过限额"),
 | 
	
		
			
				|  |  | +        PAYMENT_AUTH_CODE_INVALID("ACQ.PAYMENT_AUTH_CODE_INVALID","支付授权码无效"),
 | 
	
		
			
				|  |  | +        CONTEXT_INCONSISTENT("ACQ.CONTEXT_INCONSISTENT","交易信息被篡改"),
 | 
	
		
			
				|  |  | +        TRADE_HAS_SUCCESS("ACQ.TRADE_HAS_SUCCESS","交易已被支付"),
 | 
	
		
			
				|  |  | +        TRADE_HAS_CLOSE("ACQ.TRADE_HAS_CLOSE","交易已经关闭"),
 | 
	
		
			
				|  |  | +        BUYER_BALANCE_NOT_ENOUGH("ACQ.BUYER_BALANCE_NOT_ENOUGH","买家余额不足"),
 | 
	
		
			
				|  |  | +        BUYER_BANKCARD_BALANCE_NOT_ENOUGH("ACQ.BUYER_BANKCARD_BALANCE_NOT_ENOUGH","用户银行卡余额不足"),
 | 
	
		
			
				|  |  | +        ERROR_BALANCE_PAYMENT_DISABLE("ACQ.ERROR_BALANCE_PAYMENT_DISABLE","余额支付功能关闭"),
 | 
	
		
			
				|  |  | +        BUYER_SELLER_EQUAL("ACQ.BUYER_SELLER_EQUAL","买卖家不能相同"),
 | 
	
		
			
				|  |  | +        TRADE_BUYER_NOT_MATCH("ACQ.TRADE_BUYER_NOT_MATCH","交易买家不匹配"),
 | 
	
		
			
				|  |  | +        BUYER_ENABLE_STATUS_FORBID("ACQ.BUYER_ENABLE_STATUS_FORBID","买家状态非法"),
 | 
	
		
			
				|  |  | +        PULL_MOBILE_CASHIER_FAIL("ACQ.PULL_MOBILE_CASHIER_FAIL","唤起移动收银台失败"),
 | 
	
		
			
				|  |  | +        MOBILE_PAYMENT_SWITCH_OFF("ACQ.MOBILE_PAYMENT_SWITCH_OFF","用户的无线支付开关关闭"),
 | 
	
		
			
				|  |  | +        PAYMENT_FAIL("ACQ.PAYMENT_FAIL","支付失败"),
 | 
	
		
			
				|  |  | +        BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR("ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR","买家付款日限额超限"),
 | 
	
		
			
				|  |  | +        BEYOND_PAY_RESTRICTION("ACQ.BEYOND_PAY_RESTRICTION","商户收款额度超限"),
 | 
	
		
			
				|  |  | +        BEYOND_PER_RECEIPT_RESTRICTION("ACQ.BEYOND_PER_RECEIPT_RESTRICTION","商户收款金额超过月限额"),
 | 
	
		
			
				|  |  | +        BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR("ACQ.BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR","买家付款月额度超限"),
 | 
	
		
			
				|  |  | +        SELLER_BEEN_BLOCKED("ACQ.SELLER_BEEN_BLOCKED","商家账号被冻结"),
 | 
	
		
			
				|  |  | +        ERROR_BUYER_CERTIFY_LEVEL_LIMIT("ACQ.ERROR_BUYER_CERTIFY_LEVEL_LIMIT","买家未通过人行认证"),
 | 
	
		
			
				|  |  | +        PAYMENT_REQUEST_HAS_RISK("ACQ.PAYMENT_REQUEST_HAS_RISK","支付有风险"),
 | 
	
		
			
				|  |  | +        NO_PAYMENT_INSTRUMENTS_AVAILABLE("ACQ.NO_PAYMENT_INSTRUMENTS_AVAILABLE","没用可用的支付工具"),
 | 
	
		
			
				|  |  | +        USER_FACE_PAYMENT_SWITCH_OFF("ACQ.USER_FACE_PAYMENT_SWITCH_OFF","用户当面付付款开关关闭"),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        ;
 | 
	
		
			
				|  |  | +        private String code;
 | 
	
		
			
				|  |  | +        private String codeZn;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private BusinessFailState(String code, String codeZn) {
 | 
	
		
			
				|  |  | +            this.code = code;
 | 
	
		
			
				|  |  | +            this.codeZn = codeZn;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public String getCode() {
 | 
	
		
			
				|  |  | +            return code;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public String getCodeZn() {
 | 
	
		
			
				|  |  | +            return codeZn;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 支付宝退款
 | 
	
		
			
				|  |  |       * @param outTradeNo    外部订单号,需要退款交易的商户外部订单号
 | 
	
	
		
			
				|  | @@ -222,6 +278,7 @@ public class AliPayUtil {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 调用tradePay方法获取当面付应答
 | 
	
		
			
				|  |  |          AlipayF2FPayResult result = tradeService.tradePay(builder);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          AliPayMicropayApiResult apiResult = new AliPayMicropayApiResult();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          apiResult.setCode(result.getResponse().getCode());
 | 
	
	
		
			
				|  | @@ -290,21 +347,24 @@ public class AliPayUtil {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static void main(String[] args) throws Exception{
 | 
	
		
			
				|  |  |          //支付
 | 
	
		
			
				|  |  | -//        AliPayRequestParams params = new AliPayRequestParams();
 | 
	
		
			
				|  |  | -//        params.setAuthCode("283476976115347941");
 | 
	
		
			
				|  |  | -//        params.setBody("");
 | 
	
		
			
				|  |  | -//        params.setOutTradeNo("521521521521521");
 | 
	
		
			
				|  |  | -//        params.setSubject("main测试");
 | 
	
		
			
				|  |  | -//        params.setStoreId("200");
 | 
	
		
			
				|  |  | -//        params.setTotalAmount("10");
 | 
	
		
			
				|  |  | -//        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradePay(params);
 | 
	
		
			
				|  |  | +        AliPayRequestParams params = new AliPayRequestParams();
 | 
	
		
			
				|  |  | +        params.setAuthCode("283476976115347941");
 | 
	
		
			
				|  |  | +        params.setBody("");
 | 
	
		
			
				|  |  | +        params.setOutTradeNo("521521521521521");
 | 
	
		
			
				|  |  | +        params.setSubject("main测试");
 | 
	
		
			
				|  |  | +        params.setStoreId("200");
 | 
	
		
			
				|  |  | +        params.setTotalAmount("10");
 | 
	
		
			
				|  |  | +        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradePay(params);
 | 
	
		
			
				|  |  |  //        System.out.println(aliPayMicropayApiResult.getSubMsg());
 | 
	
		
			
				|  |  |          //查询
 | 
	
		
			
				|  |  |  //        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradeQuery("521521521521521", "");
 | 
	
		
			
				|  |  |          //退款
 | 
	
		
			
				|  |  | -        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradeRefund("521521521521521", "10","正常退款","10");
 | 
	
		
			
				|  |  | +//        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradeRefund("521521521521521", "10","正常退款","10");
 | 
	
		
			
				|  |  |          //撤销
 | 
	
		
			
				|  |  |  //        AliPayMicropayApiResult aliPayMicropayApiResult = aliTradeCancel("521521521521324", "");
 | 
	
		
			
				|  |  |          System.out.println(aliPayMicropayApiResult.getSubMsg());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |