From: qiaowei Date: Thu, 18 Jul 2019 08:51:40 +0000 (+0800) Subject: 测试签名 X-Git-Tag: 1.0.0^2~22 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=e347183cf5f72ba40090c863b66ccc7473823ddd;p=epayment%2Ffood_payapi.git 测试签名 --- diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/APIRequestParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/APIRequestParam.java index 86315713..5c89d17c 100644 --- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/APIRequestParam.java +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/APIRequestParam.java @@ -129,14 +129,12 @@ public abstract class APIRequestParam { if ("MD5".equalsIgnoreCase(signType)) { calcSign = md5(signdata + key); //默认MD5 } - if (sign.equalsIgnoreCase(calcSign)) { return true; } return false; } - - public boolean checkSign(String key) { + private Map getParam(){ Class clazz = this.getClass(); Map paramMap = new HashMap<>(); Method[] allGetter = clazz.getMethods(); @@ -167,7 +165,16 @@ public abstract class APIRequestParam { } } } - return calcSignAndCheck(paramMap, key); + return paramMap; + } + + public boolean checkSign(String key) { + return calcSignAndCheck(getParam(), key); + } + public void generalSign(String key){ + String signdata = createLinkString(paraFilter(getParam())); + String sign = md5(signdata + key); + this.sign = sign; } public abstract boolean checkParam() throws RequestParamCheckException; diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java index 1cf44f71..e24a6329 100644 --- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java @@ -50,7 +50,7 @@ public class OpenUserParam extends APIRequestParam { @Override public boolean checkParam() throws RequestParamCheckException { - if (!Constants.SEX_MALE.equals(sex) && !Constants.SEX_FEMALE.equals(sex)) { + if (!StringUtils.isEmpty(sex)&&!Constants.SEX_MALE.equals(sex) && !Constants.SEX_FEMALE.equals(sex)) { throw new RequestParamCheckException("性别非法[male|female]"); } if (StringUtils.isEmpty(idno) || !StringUtils.isAlphanumeric(idno)) { diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java index 8a720d3f..0ae4a62f 100644 --- a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java +++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java @@ -3,10 +3,7 @@ package com.supwisdom.dlpay.paysdktest; import com.supwisdom.dlpay.api.bean.*; import com.supwisdom.dlpay.paysdk.ApiLoginHelper; -import com.supwisdom.dlpay.paysdk.proxy.ApiCommonProxy; -import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy; -import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy; -import com.supwisdom.dlpay.paysdk.proxy.ShopProxy; +import com.supwisdom.dlpay.paysdk.proxy.*; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -50,6 +47,8 @@ public class CitizenCardPayProxyTest { @Autowired private ShopProxy shopProxy; + @Autowired + private UserProxy userProxy; @org.junit.Test public void citizencardPayinit() { @@ -109,6 +108,27 @@ sign = "23AE31C973EA8CC79A82B03C6DF48F9C" assertThat("shop open " + response.getRetmsg() + response.getException(), response.getRetcode(), equalTo(0)); } + @Test + public void openUserAccount(){ + + ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy); + helper.login(appid, secret); + ApiVersionResponse version = apiCommonProxy.apiVersion(); + + assertThat("get version error " + version.getException(), + version.getVersion(), notNullValue()); + OpenUserParam param = new OpenUserParam(); + param.setUid("testuid1"); + param.setIdtype("student_idcard"); + param.setIdno("100016"); + param.setName("100016"); + param.setTenantid("default"); + param.generalSign(secret); + System.out.println(param.getSign()); + UserResponse response = userProxy.openAccount(param); + assertThat("user open " + response.getRetmsg() + response.getException(), + response.getRetcode(), equalTo(0)); + } public static void main(String[] args) {