新增数据统计接口&支付单元测试
This commit is contained in:
parent
1df0978564
commit
b07033dff3
12
CHANGE.md
12
CHANGE.md
@ -158,4 +158,14 @@
|
||||
|
||||
* 2015-01-15
|
||||
|
||||
+ **weixin4j-qy**: 新增邀请成员关注接口
|
||||
+ **weixin4j-qy**: 新增邀请成员关注接口
|
||||
|
||||
* 2015-01-22
|
||||
|
||||
+ **weixin4j-base**: 升级fastjson到1.2.3
|
||||
|
||||
+ **weixin4j-mp**:调整部分实体类(*paypackage)中没有按照骆驼命名规则的属性名
|
||||
|
||||
* 2015-01-31
|
||||
|
||||
+ **weixin4j-mp**: 新增数据分析接口
|
||||
@ -71,8 +71,6 @@ netty的代码没有放到maven中心仓库,也没什么意义,因为最终需
|
||||
|
||||
接下来
|
||||
------
|
||||
* 公众号数据分析接口
|
||||
|
||||
* 公众号服务应用
|
||||
|
||||
* 企业号第三方应用
|
||||
|
||||
1
pom.xml
1
pom.xml
@ -212,7 +212,6 @@
|
||||
<include>**/*.pem</include>
|
||||
<include>**/*.p12</include>
|
||||
<include>**/*.pfx</include>
|
||||
<include>**/*.pem</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
|
||||
@ -24,15 +24,15 @@ import com.thoughtworks.xstream.XStream;
|
||||
public class FileTokenHolder implements TokenHolder {
|
||||
private final XStream xstream;
|
||||
private final String tokenPath;
|
||||
private final TokenCreator tokenCretor;
|
||||
private final TokenCreator tokenCreator;
|
||||
|
||||
public FileTokenHolder(TokenCreator tokenCretor) {
|
||||
this(ConfigUtil.getValue("token_path"), tokenCretor);
|
||||
public FileTokenHolder(TokenCreator tokenCreator) {
|
||||
this(ConfigUtil.getValue("token_path"), tokenCreator);
|
||||
}
|
||||
|
||||
public FileTokenHolder(String tokenPath, TokenCreator tokenCretor) {
|
||||
public FileTokenHolder(String tokenPath, TokenCreator tokenCreator) {
|
||||
this.tokenPath = tokenPath;
|
||||
this.tokenCretor = tokenCretor;
|
||||
this.tokenCreator = tokenCreator;
|
||||
xstream = new XStream();
|
||||
xstream.ignoreUnknownElements();
|
||||
xstream.autodetectAnnotations(true);
|
||||
@ -43,7 +43,7 @@ public class FileTokenHolder implements TokenHolder {
|
||||
@Override
|
||||
public Token getToken() throws WeixinException {
|
||||
File token_file = new File(String.format("%s/%s.xml", tokenPath,
|
||||
tokenCretor.getCacheKey()));
|
||||
tokenCreator.getCacheKey()));
|
||||
Token token = null;
|
||||
Calendar ca = Calendar.getInstance();
|
||||
long now_time = ca.getTimeInMillis();
|
||||
@ -57,7 +57,7 @@ public class FileTokenHolder implements TokenHolder {
|
||||
return token;
|
||||
}
|
||||
}
|
||||
token = tokenCretor.createToken();
|
||||
token = tokenCreator.createToken();
|
||||
xstream.toXML(token, new FileOutputStream(token_file));
|
||||
} catch (IOException e) {
|
||||
throw new WeixinException(e.getMessage());
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.Consts;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -49,6 +50,9 @@ public class MapUtil {
|
||||
try {
|
||||
if (encoder && lowerCase) {
|
||||
for (Map.Entry<String, String> entry : set) {
|
||||
if (StringUtils.isBlank(entry.getValue())) {
|
||||
continue;
|
||||
}
|
||||
sb.append(entry.getKey().toLowerCase())
|
||||
.append("=")
|
||||
.append(URLEncoder.encode(entry.getValue(),
|
||||
@ -56,6 +60,9 @@ public class MapUtil {
|
||||
}
|
||||
} else if (encoder) {
|
||||
for (Map.Entry<String, String> entry : set) {
|
||||
if (StringUtils.isBlank(entry.getValue())) {
|
||||
continue;
|
||||
}
|
||||
sb.append(entry.getKey())
|
||||
.append("=")
|
||||
.append(URLEncoder.encode(entry.getValue(),
|
||||
@ -63,11 +70,17 @@ public class MapUtil {
|
||||
}
|
||||
} else if (lowerCase) {
|
||||
for (Map.Entry<String, String> entry : set) {
|
||||
if (StringUtils.isBlank(entry.getValue())) {
|
||||
continue;
|
||||
}
|
||||
sb.append(entry.getKey().toLowerCase()).append("=")
|
||||
.append(entry.getValue()).append("&");
|
||||
}
|
||||
} else {
|
||||
for (Map.Entry<String, String> entry : set) {
|
||||
if (StringUtils.isBlank(entry.getValue())) {
|
||||
continue;
|
||||
}
|
||||
sb.append(entry.getKey()).append("=")
|
||||
.append(entry.getValue()).append("&");
|
||||
}
|
||||
|
||||
@ -164,4 +164,8 @@ weixin4j-mp
|
||||
|
||||
+ **weixin4j-mp-api**: 退款相关类拆分为V2跟V3
|
||||
|
||||
+ **weixin4j-mp-api**: 新增接口上报接口
|
||||
+ **weixin4j-mp-api**: 新增接口上报接口
|
||||
|
||||
* 2015-01-31
|
||||
|
||||
+ **weixin4j-mp-api**: 新增数据分析接口
|
||||
@ -143,4 +143,8 @@ weixin.properties说明
|
||||
|
||||
+ 退款相关类拆分为V2跟V3
|
||||
|
||||
+ 新增接口上报接口
|
||||
+ 新增接口上报接口
|
||||
|
||||
* 2015-01-31
|
||||
|
||||
+ 新增数据分析接口
|
||||
@ -233,7 +233,6 @@ public class Pay2Api extends PayApi {
|
||||
}
|
||||
}
|
||||
}
|
||||
System.err.println(response.getAsString());
|
||||
return response.getAsObject(new TypeReference<RefundResult>() {
|
||||
});
|
||||
}
|
||||
|
||||
@ -130,5 +130,5 @@ unifiedorder_uri={mch_base_url}/pay/unifiedorder
|
||||
nativepay_v2_uri=weixin://wxpay/bizpayurl?sign=%s&appid=%s&productid=%s×tamp=%s&noncestr=%s
|
||||
nativepay_v3_uri=weixin://wxpay/bizpayurl?sign=%s&appid=%s&mch_id=%s&product_id=%s&time_stamp=%s&nonce_str=%s
|
||||
|
||||
# \u83b7\u53d6\u7528\u6237\u589e\u51cf\u6570\u636e
|
||||
datacube_getusersummary_uri={api_base_url}/datacube/getusersummary?access_token=%s
|
||||
# \u6570\u636e\u7edf\u8ba1
|
||||
datacube_uri={api_base_url}/datacube/%s?access_token=%s
|
||||
@ -2,8 +2,6 @@ package com.foxinmy.weixin4j.mp.payment.v3;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.foxinmy.weixin4j.model.WeixinMpAccount;
|
||||
import com.foxinmy.weixin4j.mp.payment.PayPackage;
|
||||
@ -120,10 +118,6 @@ public class PayPackageV3 extends PayPackage {
|
||||
this.sign = sign;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
super.setBody(StringUtils.isBlank(body) ? "服务费用" : body);
|
||||
}
|
||||
|
||||
public String getTradeType() {
|
||||
return tradeType;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user