昨天我们利用service把计算sign的逻辑串接起来,今天继续来试试看,要如何取得永丰Api的response,并且在C#解析并还原加密的原始讯息吧!
先让我们来看看「建立订单」的基本流程:
永丰API有提供 1.ATM 2.信用卡 3.信用卡+3D验证
这边附图先以信用卡交易流程为主
原始文件有提示实作方法:
将
Message
字串 以16进制2位数字转换成Byte
,再以AES CBC
方式解密 。
今日工事,就是要来解密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;
}
这章节是延伸v-if和v-show管理元件,如何用更简便的方式做tab页签。 v-bind:is 做...
自定义了一个数字键盘: 自己电脑跑起来是正常的,但是切换到一个分辨率不一样的电脑时就跑掉了,不整齐;...
DAY14 在 Azure Machine Learning 里 Label data(下) 我们昨...
今天是三天连假的第一天,实体上课真的太累了,一不小心睡到下午诶嘿(๑´ڡ`๑)连假过完铁人也差不多完...
环境 Windows 10 21H1 x64dbg Aug 2 2020, 13:56:14 IDA...