mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
🎨 【小程序】同城配送查询门店余额接口补充了几个遗漏属性,同时优化代码,避免可能出现的NPE问题
This commit is contained in:
parent
9c6fca77e6
commit
5c266d546f
@ -302,7 +302,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
|
|||||||
if (isApiSignatureRequired(url)) {
|
if (isApiSignatureRequired(url)) {
|
||||||
// 接口需要签名
|
// 接口需要签名
|
||||||
log.debug("已经配置接口需要签名,接口{}将走加密访问路径", url);
|
log.debug("已经配置接口需要签名,接口{}将走加密访问路径", url);
|
||||||
JsonObject jsonObject = GSON.fromJson(postData, JsonObject.class);
|
JsonObject jsonObject = GSON.fromJson(postData == null ? "{}" : postData, JsonObject.class);
|
||||||
return postWithSignature(url, jsonObject);
|
return postWithSignature(url, jsonObject);
|
||||||
} else {
|
} else {
|
||||||
return execute(SimplePostRequestExecutor.create(this), url, postData);
|
return execute(SimplePostRequestExecutor.create(this), url, postData);
|
||||||
@ -323,12 +323,12 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String post(String url, ToJson obj) throws WxErrorException {
|
public String post(String url, ToJson obj) throws WxErrorException {
|
||||||
return this.post(url, obj.toJson());
|
return this.post(url, obj == null ? "{}" : obj.toJson());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String post(String url, JsonObject jsonObject) throws WxErrorException {
|
public String post(String url, JsonObject jsonObject) throws WxErrorException {
|
||||||
return this.post(url, jsonObject.toString());
|
return this.post(url, jsonObject == null ? "{}" : jsonObject.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -845,7 +845,12 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
|
|||||||
new GsonBuilder()
|
new GsonBuilder()
|
||||||
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
|
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
|
||||||
.create();
|
.create();
|
||||||
JsonObject jsonObject = gson.toJsonTree(obj).getAsJsonObject();
|
JsonObject jsonObject;
|
||||||
|
if (obj == null) {
|
||||||
|
jsonObject = gson.fromJson("{}", JsonObject.class);
|
||||||
|
} else {
|
||||||
|
jsonObject = gson.toJsonTree(obj).getAsJsonObject();
|
||||||
|
}
|
||||||
return this.postWithSignature(url, jsonObject);
|
return this.postWithSignature(url, jsonObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ public class WxMaStoreBalance {
|
|||||||
private String appid;
|
private String appid;
|
||||||
private int allBalance;
|
private int allBalance;
|
||||||
|
|
||||||
private List<Detail> balanceDetail;
|
private List<BalanceDetail> balanceDetail;
|
||||||
|
|
||||||
public String getWxStoreId() {
|
public String getWxStoreId() {
|
||||||
return wxStoreId;
|
return wxStoreId;
|
||||||
@ -39,11 +39,11 @@ public class WxMaStoreBalance {
|
|||||||
this.allBalance = allBalance;
|
this.allBalance = allBalance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Detail> getBalanceDetail() {
|
public List<BalanceDetail> getBalanceDetail() {
|
||||||
return balanceDetail;
|
return balanceDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBalanceDetail(List<Detail> balanceDetail) {
|
public void setBalanceDetail(List<BalanceDetail> balanceDetail) {
|
||||||
this.balanceDetail = balanceDetail;
|
this.balanceDetail = balanceDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,7 +52,51 @@ public class WxMaStoreBalance {
|
|||||||
return ToStringBuilder.reflectionToString(this);
|
return ToStringBuilder.reflectionToString(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Detail {
|
public static class BalanceDetail {
|
||||||
|
private int balance;
|
||||||
|
private String serviceTransId;
|
||||||
|
private String serviceTransName;
|
||||||
|
private List<OrderDetail> orderList;
|
||||||
|
|
||||||
|
public int getBalance() {
|
||||||
|
return balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBalance(int balance) {
|
||||||
|
this.balance = balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServiceTransId() {
|
||||||
|
return serviceTransId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServiceTransId(String serviceTransId) {
|
||||||
|
this.serviceTransId = serviceTransId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServiceTransName() {
|
||||||
|
return serviceTransName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServiceTransName(String serviceTransName) {
|
||||||
|
this.serviceTransName = serviceTransName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<OrderDetail> getOrderList() {
|
||||||
|
return orderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderList(List<OrderDetail> orderList) {
|
||||||
|
this.orderList = orderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return ToStringBuilder.reflectionToString(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class OrderDetail {
|
||||||
private String payorderId;
|
private String payorderId;
|
||||||
private int chargeAmt;
|
private int chargeAmt;
|
||||||
private int unusedAmt;
|
private int unusedAmt;
|
||||||
|
@ -8,9 +8,11 @@ import cn.binarywang.wx.miniapp.bean.openapi.WxMiniGetApiQuotaResult;
|
|||||||
import cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants;
|
import cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants;
|
||||||
import cn.binarywang.wx.miniapp.test.ApiTestModule;
|
import cn.binarywang.wx.miniapp.test.ApiTestModule;
|
||||||
import cn.binarywang.wx.miniapp.test.TestConfig;
|
import cn.binarywang.wx.miniapp.test.TestConfig;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import me.chanjar.weixin.common.bean.ToJson;
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -35,6 +37,85 @@ public class WxMaIntracityServiceImpleTest {
|
|||||||
logger.info("apply 额度剩余 :{}", result.getQuota());
|
logger.info("apply 额度剩余 :{}", result.getQuota());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testApiGetPostNullData() throws Exception {
|
||||||
|
try {
|
||||||
|
wxService.get(WxMaApiUrlConstants.Analysis.GET_USER_PORTRAIT_URL, null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 get(url, null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
// 走加密路径url
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.OpenApi.CLEAR_QUOTA, (Object) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, Object null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.OpenApi.CLEAR_QUOTA, (String) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, String null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.OpenApi.CLEAR_QUOTA, (JsonObject) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, JsonObject null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.OpenApi.CLEAR_QUOTA, (ToJson) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, ToJson null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
|
||||||
|
// 不走加密路径URL
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.Intracity.APPLY_URL, (Object) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, Object null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.Intracity.APPLY_URL, (String) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, String null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.Intracity.APPLY_URL, (JsonObject) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, JsonObject null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
wxService.post(WxMaApiUrlConstants.Intracity.APPLY_URL, (ToJson) null);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
logger.error("NullPointerException", npe);
|
||||||
|
fail("遇到空指针 post(url, ToJson null)");
|
||||||
|
} catch (WxErrorException wxErrorException) {
|
||||||
|
// 这个是正常的,因为这里的调用没按照接口规则
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testApply() throws Exception {
|
public void testApply() throws Exception {
|
||||||
logger.debug("testApply");
|
logger.debug("testApply");
|
||||||
|
Loading…
Reference in New Issue
Block a user