iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
永豐金融APIs

菜鳥工程師想用C#做出金流微服務是否搞錯了什麼?系列 第 7

[Day 07] 前6天到底在瞎忙什麼? 當然是要打包成微服務阿! - .Net Core 3.1小試身手與簡介

  • 分享至 

  • twitterImage
  •  

前幾天做了那麼多準備工作,當然就是為了在之後能夠很順利的串接永豐金流API的其他服務

其實一開始收到API規格書的時候,也是看得十分霧煞煞......畢竟這是我第一次接觸開放銀行API,有些參數的原理也是在邊寫鐵人賽+實作的過程中慢慢體悟的,例如說Nonce其實是作為IP驗證,以確保時效性&來源是一致的,還有使用AES-CBC加密內文時需要的HashID . IV . 訊息內文JSON,也就是對應Key. 初始向量 . Value,不過通常在加解密時,會使用隨機的IV值,才會是最安全的,這邊可以參考維基百科說的:

使用亂數產生的初始向量才能達到語義安全(訊息驗證碼也可能用到初始向量),並讓攻擊者難以對原文一致且使用同一把金鑰生成的密文進行破解。

講到這邊,就是今日的重頭戲了,前六天談了那麼多這些參數該如何準備,那麼又該如何把這些零件"組裝"到自己的專案呢?


項次 | 參數 | 說明 | 範例 | 如何取得
------------ | ------------ | ------------ | ------------
1 | Version | 版本號 | "1.0.0" | 固定值
2 | ShopNo | 商店代號 | "BA0026_001" | Email提供
3 | APIService | API 服務名稱 | Ex:"OrderCreate" | 共有三種,依照不同場景判斷
4 | Nonce | 客戶端IP驗證(確保交易安全) | Day03 | 由API向funBiz取得
5 | Sign | 安全簽章 | Day03 | 訊息內文+Nonce+HashID 加工產生
6 | Message | 加密JSON | Day04. Day05 | 由原始交易訊息內文+HashID(32位元值)+IV(16位元值)進行AES-CBC加密產生

看到這邊,需要自己實作的部分,例如:

  1. 動態取得Nonce,也就是和豐收款API發出POST請求
  2. 雜湊、加解密,如SHA256, AES-CBC,以及位元運算等等
  3. 產出的JSON訊息內文,也需要再經過整理

欸嘿,曾經寫過ASP.NET MVC(以下簡稱MVC)或是.Net Core的大大們,應該對以上三點很熟悉吧?
為了將線上金流API打包成一個微服務,一個好的架構設計是必須的這不是廢話嗎!?
但既然這次鐵人賽是以 .Net Core 3.1 作為核心的開發架構,這次會就會先從.Net Core的框架設計開始介紹

先賣個關子,明天就會來開始介紹很重要很重要的 三層式架構
還不了解我今天到底說了什麼的同學悶,不要緊張!
可以先試想簡單的問題:

如果今天開了一間速食餐廳,裡面有販售飲料、冰淇淋、漢堡、炸雞、薯條,
從點餐、收銀、備料、出餐、到叫號,你要如何分配工作給員工呢?

可以先想想看,應該很快就能明白了XD
See you!


上一篇
[Day 06] (驗收)小統整 - [C#]豐收款API必備前置作業(五)
下一篇
[Day 08] (題外話)談談目標專案設計構想
系列文
菜鳥工程師想用C#做出金流微服務是否搞錯了什麼?15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言