/// <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); }
/// <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); }