diff --git a/pay-java-ali/README.md b/pay-java-ali/README.md
index 110b94c..7f32460 100644
--- a/pay-java-ali/README.md
+++ b/pay-java-ali/README.md
@@ -167,6 +167,12 @@
Map result = service.close("支付宝单号", "我方系统单号");
```
+#### 交易撤销接口
+ ```java
+
+ Map result = service.cancel("支付宝单号", "我方系统单号");
+
+```
#### 申请退款接口
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 06d5ce7..b01628e 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
@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.egzosn.pay.ali.bean.AliTransactionType;
import com.egzosn.pay.common.api.BasePayService;
-import com.egzosn.pay.common.api.Callback;
import com.egzosn.pay.common.bean.*;
import com.egzosn.pay.common.bean.result.PayException;
import com.egzosn.pay.common.exception.PayErrorException;
@@ -20,30 +19,37 @@ import java.text.SimpleDateFormat;
import java.util.*;
/**
- * 支付宝支付服务
- * @author egan
+ * 支付宝支付服务
*
- * email egzosn@gmail.com
- * date 2017-2-22 20:09
+ * @author egan
+ *
+ * email egzosn@gmail.com
+ * date 2017-2-22 20:09
*/
public class AliPayService extends BasePayService {
-
+
/**
* 正式测试环境
*/
- private final static String httpsReqUrl = "https://openapi.alipay.com/gateway.do";
+ private static final String HTTPS_REQ_URL = "https://openapi.alipay.com/gateway.do";
/**
* 沙箱测试环境账号
*/
- private final static String devReqUrl = "https://openapi.alipaydev.com/gateway.do";
-
+ private static final String DEV_REQ_URL = "https://openapi.alipaydev.com/gateway.do";
+
+ public static final String SIGN = "sign";
+
+ public static final String SUCCESS_CODE = "10000";
+
+ public static final String CODE = "code";
/**
* 获取对应的请求地址
+ *
* @return 请求地址
*/
- public String getReqUrl(){
- return payConfigStorage.isTest() ? devReqUrl : httpsReqUrl;
+ public String getReqUrl() {
+ return payConfigStorage.isTest() ? DEV_REQ_URL : HTTPS_REQ_URL;
}
@@ -69,47 +75,43 @@ public class AliPayService extends BasePayService {
@Override
public boolean verify(Map params) {
-
- if (params.get("sign") == null) {
+ if (params.get(SIGN) == null) {
LOG.debug("支付宝支付异常:params:" + params);
return false;
}
- return signVerify(params, (String) params.get("sign")) && verifySource( (String)params.get("notify_id"));
+ return signVerify(params, (String) params.get(SIGN)) && verifySource((String) params.get("notify_id"));
}
/**
* 根据反馈回来的信息,生成签名结果
+ *
* @param params 通知返回来的参数数组
- * @param sign 比对的签名结果
+ * @param sign 比对的签名结果
* @return 生成的签名结果
*/
@Override
public boolean signVerify(Map params, String sign) {
- if (params instanceof JSONObject){
- for (String key : params.keySet()){
- if ("sign".equals(key)){
+ if (params instanceof JSONObject) {
+ for (Map.Entry entry : params.entrySet()) {
+ if (SIGN.equals(entry.getKey())) {
continue;
}
- TreeMap response = new TreeMap((Map) params.get(key));
+ TreeMap response = new TreeMap((Map )entry.getValue());
LinkedHashMap