[Day11] C#实作解密Response讯息内文(Message)

昨天我们利用service把计算sign的逻辑串接起来,今天继续来试试看,要如何取得永丰Api的response,并且在C#解析并还原加密的原始讯息吧!

先让我们来看看「建立订单」的基本流程:
https://ithelp.ithome.com.tw/upload/images/20210925/20131205K1BmAhuYlr.png
永丰API有提供 1.ATM 2.信用卡 3.信用卡+3D验证
这边附图先以信用卡交易流程为主

原始文件有提示实作方法:

Message字串 以16进制2位数字转换成 Byte ,再以 AES CBC 方式解密 。

https://ithelp.ithome.com.tw/upload/images/20210925/20131205THgyWjfeRR.png

今日工事,就是要来解密Message,以取得还原讯息
这个步骤很重要!!!

产生WebAPIMessage
            BaseRequestModel req = new BaseRequestModel()
            {
                Version = "1.0.0",
                ShopNo = shopNo,
                APIService = APIService.OrderCreate,
                Nonce = nonce,
                Message = message,
                //利用Request物件, AESKey及Nonce组成Sign值
                Sign = SignService.GetSign(nonce, request)
            };
            try
            {
                //_logger.LogWarning(string.Format("呼叫商业收付API Order/{0} , Request:{1}", req.APIService, QPayCommon.SerializeToJson(req)));

                //呼叫商业收付Web API
                var result = await _qPayRepository.CreateApiAsync("Order", req);

                //_logger.LogInformation(string.Format("呼叫商业收付API Order/{0} , Response:{1}", req.APIService, QPayCommon.SerializeToJson(result)));
                string decodedMsg = AesCBC_Encrypt.AESDecrypt(result.Message, hashId, result.Nonce);

                _logger.LogInformation("Response Message:" + decodedMsg);

                var innerResult = JsonConvert.DeserializeObject<BaseResponseModel>(decodedMsg);
          
                return innerResult;
            }
            catch (Exception ex)
            {
                //_logger.LogWarning(null, ex);
                throw ex;
            }

<<:  [神经机器翻译理论与实作] 这个翻译不大正经

>>:  [DAY9]制作容器(八)

Day11-动态元件

这章节是延伸v-if和v-show管理元件,如何用更简便的方式做tab页签。 v-bind:is 做...

qt 自定义控件 不同萤幕

自定义了一个数字键盘: 自己电脑跑起来是正常的,但是切换到一个分辨率不一样的电脑时就跑掉了,不整齐;...

[DAY14] 在 Azure Machine Learning 里 Label data(下)

DAY14 在 Azure Machine Learning 里 Label data(下) 我们昨...

Day 27. 过滤器 - Filter

今天是三天连假的第一天,实体上课真的太累了,一不小心睡到下午诶嘿(๑´ڡ`๑)连假过完铁人也差不多完...

【Day 15】从零开始的 Debug 生活 - Debugger 原理

环境 Windows 10 21H1 x64dbg Aug 2 2020, 13:56:14 IDA...