| 
					
				 | 
			
			
				@@ -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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |