From 0bfbc8e5c966c7925191610a8d0bd682aa180391 Mon Sep 17 00:00:00 2001 From: Yixian Date: Fri, 4 Feb 2022 21:32:46 +0800 Subject: [PATCH] 2.4.5: hotfix-bsbno check --- .../gateway/beans/ClientSettleConfig.java | 32 ++++++------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/gateway/beans/ClientSettleConfig.java b/src/main/java/au/com/royalpay/payment/manage/gateway/beans/ClientSettleConfig.java index f8dbe7768..cd79c2e62 100644 --- a/src/main/java/au/com/royalpay/payment/manage/gateway/beans/ClientSettleConfig.java +++ b/src/main/java/au/com/royalpay/payment/manage/gateway/beans/ClientSettleConfig.java @@ -1,10 +1,13 @@ package au.com.royalpay.payment.manage.gateway.beans; import au.com.royalpay.payment.core.exceptions.ParamInvalidException; +import au.com.royalpay.payment.manage.merchants.core.bank.AustraliaBank; +import au.com.royalpay.payment.manage.merchants.core.bank.AustraliaBankInfo; import au.com.royalpay.payment.manage.system.core.impl.ClientContractServiceImpl; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import cn.yixblog.platform.http.HttpRequestGenerator; import cn.yixblog.platform.http.HttpRequestResult; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @@ -18,6 +21,7 @@ import java.lang.reflect.Field; import java.text.ParseException; import java.util.Arrays; import java.util.Date; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -47,7 +51,7 @@ public class ClientSettleConfig { private String activeTime; @JSONField(name = "expire_time") private String expireTime; - private JSONObject bankQueryInfo; + private AustraliaBankInfo bankQueryInfo; private Date activeTimeDate; private static String[] WHITE_LIST = {"bankQueryInfo", "activeTimeDate"}; @@ -79,10 +83,10 @@ public class ClientSettleConfig { } if (sandboxMode) { - bankQueryInfo = new JSONObject(); + bankQueryInfo = new AustraliaBankInfo(); } else { - bankQueryInfo = getBankInfo(bsbNo); - if (bankQueryInfo == null || bankQueryInfo.isEmpty() || !bankQueryInfo.getBooleanValue("valid")) { + bankQueryInfo = AustraliaBank.getBankInfo(bsbNo); + if (bankQueryInfo.isNone()) { throw new BadRequestException("PARAM_ERROR:BSB No is invalid"); } } @@ -99,25 +103,7 @@ public class ClientSettleConfig { bankInfo.put("bsb_no", bsbNo); bankInfo.put("account_no", accountNo); bankInfo.put("account_name", accountName); - bankInfo.putAll(bankQueryInfo); + bankInfo.putAll((JSONObject) JSON.toJSON(bankQueryInfo)); return bankInfo; } - - private JSONObject getBankInfo(String bsb_no) { - // bd451cc3e3ad66c75165dc852507e8f0 - // 收费 ab9379cfdab559509bbdcdd11923489f - String url = "https://api.bank.codes/au-bsb/json/ab9379cfdab559509bbdcdd11923489f/" + bsb_no; - JSONObject res = new JSONObject(); - try { - HttpRequestResult result = new HttpRequestGenerator(url, RequestMethod.GET).execute(); - if (result.isSuccess()) { - res = result.getResponseContentJSONObj(); - } else { - logger.error("Request bsb info error {}-->{}", bsb_no, result.getResponseContentString()); - } - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return res; - } }