示例#1
0
        /// <summary>
        /// 点融接口的请求对象,4个字段
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static DianrongReqModel BuildReqModel(DianrongBaseReqModel model, string channelId)
        {
            var randomStr  = GetRandomStr();
            var nonce      = GetNonce(randomStr);
            var reqJsonStr = JsonConvert.SerializeObject(model, formatting: Formatting.None);
            // reqLogger.Trace($"请求参数:{reqJsonStr}");
            var reqModel = new DianrongReqModel(channelId)
            {
                Nonce     = nonce,
                ReqData   = GetReqData(model, randomStr),
                Signature = GetSignature(reqJsonStr)
            };

            return(reqModel);
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        public async static Task <T> GetDianrongRsp <T>(string url, DianrongReqModel reqModel) where T : class
        {
            var rst = await HttpHelper.GetResultAsync <T>(new HttpReqModel()
            {
                Method = "post", ReqBody = reqModel, Url = url
            });

            // reqLogger.Info($"返回{JsonConvert.SerializeObject(rst)}")
            var contentProp      = typeof(T).GetProperty("Content");
            var decryptedContent = DianrongHelper.RSADecryptByPrivateKey(Convert.ToString(contentProp?.GetValue(rst)));

            reqLogger.Info($"返回结果解码码后的结果:{decryptedContent}");
            var bodyProp = typeof(T).GetProperty("Body");

            bodyProp?.SetValue(rst, decryptedContent);
            var contentObjProp = typeof(T).GetProperty("ContentObj");

            //{\"code\":\"30000\",\"message\":\"RuntimeException:For input string: \\\"string\\\"\"}

            contentObjProp?.SetValue(rst, JsonConvert.DeserializeObject(decryptedContent, contentObjProp?.PropertyType));
            return(rst);
        }