iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
永豐金融APIs

30天全端挑戰!React+Spring Boot+Mongo DB 串接永豐API 打造金融網站系列 第 14

[Day 14] - 初探永豐銀行線上收款API - 豐收款 - HASH ID計算(1)

  • 分享至 

  • xImage
  •  

接續昨天

https://ithelp.ithome.com.tw/upload/images/20210928/201289739Zk7nR0yLX.png

根據規格書,我們要用永豐提供的四組hash值拼出hash id
可以看出,hash id會是個固定值,所以其實也可以先計算出結果再把那個hash id塞到DB就可以了
不過為了避免未來這四組hash有異動,又要再重新計算,或許把4個hash值放入DB,由程式啟動時自行計算HASH ID放到memory才是比較好的做法,另外,JWT的私鑰、API的url等value也都應該要放在DB比較安全、也好統一管理
因此我想在DB增加一個collection、並實作一個讀參數的class方便未來使用

首先一樣先建立entity:

@Data //lomobk
@Document //Collection
public class SysConf {
    
    @Id
    private String id;
    @NonNull
    @Indexed(unique = true)
    private String configKey;
    private String configValue;
    private String comment;
    public SysConf(String configKey, String configValue, String comment) {
        this.configKey = configKey;
        this.configValue = configValue;
        this.comment = comment;
    }

    
}

建repostory介面

public interface SysConfRepo extends MongoRepository<SysConf,String>{ 
}

建立service,把所有sysconf參數存進SystemConfigUtil.systemConfMap←這個等下新增

@RequiredArgsConstructor
public class SysConfService {

    private final SysConfRepo sysConfRepo;
    @EventListener(ApplicationReadyEvent.class)
    public void reloadAllConfig(){
        List<SysConf> sysConf=sysConfRepo.findAll();
        for (SysConf sysConf2 : sysConf) {
            String key=sysConf2.getConfigKey();
            String value=sysConf2.getConfigValue();
            SystemConfigUtil.systemConfMap.put(key, value);
        }
    }
}

加上@EventListener(ApplicationReadyEvent.class)
可以讓這段程式在Spring Boot啟動後先跑一次,避免systemConfMap是空的情況發生

新增一個SystemConfigUtil.java

public class SystemConfigUtil {
    public static Map<String,String> systemConfMap = new HashMap<String,String>();
}

本來想說直接把這個Map直接加在SysConfService就好,不過想想還是分出來好了
寫得很陽春,其實就是先把資料存在Map裡面而已,要取參數時直接從Map拿就行了
這麼做的好處是減少對DB的存取,
雖然MongoDB很快,不過程式能盡量減少對外部的依賴是最好的

接下來就可以開始將要串的永豐API流程寫成一個class了


上一篇
[Day 13] - 初探永豐銀行線上收款API - 豐收款 - 取得Nonce
下一篇
[Day 15] - 初探永豐銀行線上收款API - 豐收款 - HASH ID計算(2) +IV計算
系列文
30天全端挑戰!React+Spring Boot+Mongo DB 串接永豐API 打造金融網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言