请教大家一个关于调用微信api的问题,麻烦大家看看,谢谢

风云再起9310 2015-12-11 10:10:37
我要调用的接口如下:



我写的代码:
 #region  保存客服的会话记录以及保存其他数据
/// <summary>
/// lss add 2015-12-10
/// </summary>
/// <returns></returns>
public ActionResult SaveChatRecords()
{
DateTime t2 = DateTime.Now;
DateTime t1 = new DateTime(t2.Year,t2.Month,t2.Day);

long start =WeChatMPToken.ConvertDateTimeInt(t1);
long end = WeChatMPToken.ConvertDateTimeInt(t2);

var data = new
{
starttime =start,
endtime = end,
pagesize=10,
pageindex=1
};
string token = WeChatMPToken.getAccessToken();
string requrl = "https://api.weixin.qq.com/card/create?access_token={0}";
var json = Mimo.WechatMP.CommonAPIs.CommonJsonSend.Send<dynamic>(token, requrl, data, Mimo.WechatMP.CommonAPIs.CommonJsonSendType.POST);

//dynamic result = JsonConvert.DeserializeObject(json);

return Content("保存完毕!");
}
#endregion


但是执行的时候会报错,提示:"Mimo.WechatMP.ReturnCode.解析JSON_XML内容错误",但是我就是找不到错误的原因,麻烦大家帮我看看是不是哪里的细节没有注意到,谢谢,错误信息如下:
...全文
610 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010260891 2016-02-26
  • 打赏
  • 举报
回复
我也遇到这个问题了,请问怎么解决的?? $url='https://api.weixin.qq.com/cgi-bin/customservice/getrecord?access_token='.$access_token; $data=array("starttime" =>mktime(0,0,1,1,21,2016), "endtime" =>mktime(23,59,59,1,21,2016), "pagesize" => 10, "pageindex" => 1, ); $data=json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch);
wanghuapeng 2016-02-18
  • 打赏
  • 举报
回复
楼主,返回"recordlist":[] 的这个问题解决了么? 我也碰到了这个问题。试了很多方法,就是不行!
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 5 楼 superior_yong 的回复:
string requrl = "https://api.weixin.qq.com/card/create?access_token={0}"; 这里是不是没赋值
我想哭,刚才url弄错了,本来是"https://api.weixin.qq.com/cgi-bin/customservice/getrecord?access_token=ACCESS_TOKEN"这个接口才对,但是我复制的时候复制错了,弄成"https://api.weixin.qq.com/card/create?access_token={0}",我太粗心了。对了,刚才我改了url,现在没报错了,但是返回的数据是空的,返回数据"{ "recordlist": [] }",请问这个需要注意什么??时间是今天的,
xdashewan 2015-12-11
  • 打赏
  • 举报
回复
引用 4 楼 u012012237 的回复:
你把openid那个参数带上,但值用空填进去试试
忘丿殇 2015-12-11
  • 打赏
  • 举报
回复
string requrl = "https://api.weixin.qq.com/card/create?access_token={0}"; 这里是不是没赋值
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 3 楼 xdashewan 的回复:
看断点处貌似正确,你抓一下你POST包里的数据看下

POST包里的数据:
xdashewan 2015-12-11
  • 打赏
  • 举报
回复
看断点处貌似正确,你抓一下你POST包里的数据看下
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
你的json格式错误,你可以发出你json数据,错误位置错误上已经写了,你也可以自己查查

xdashewan 2015-12-11
  • 打赏
  • 举报
回复
你的json格式错误,你可以发出你json数据,错误位置错误上已经写了,你也可以自己查查
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 34 楼 wg5945 的回复:
你看的是哪一年的文档呀,看看最新的吧~~ http://mp.weixin.qq.com/wiki/6/65eea4b66c95cb391fb38c57e79e3122.html pagesize 是 每页大小,每页最多拉取50条
哎哎,,今天弄了一天,原来是因为这个问题,我想哭,呵呵,,谢谢大家的热心帮助
wg5945 2015-12-11
  • 打赏
  • 举报
回复
按照你调用的结果,其实返回的结果是这样的 {"errcode":61451,"errmsg":"pagesize must less than 50","recordlist":[],"retcode":61451} 你只看到了 "recordlist":[] ,而丝毫没有关心其他的内容,这就是只会调用公司封装的接口的坏处~~
wg5945 2015-12-11
  • 打赏
  • 举报
回复
你看的是哪一年的文档呀,看看最新的吧~~ http://mp.weixin.qq.com/wiki/6/65eea4b66c95cb391fb38c57e79e3122.html pagesize 是 每页大小,每页最多拉取50条
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 32 楼 sbwwkmyd 的回复:
微信接口的混乱是我见过的最烂最烂的OpenAPI,没有之一。 但是但是,你这个解析失败看起来应该是客户端类库的问题。
解析失败那个问题已经解决了,现在还有一个问题,就是没有数据返回,返回的数据是:麻烦哥们帮忙看看,今天弄了一天了,就是找不到原因,哎哎,源码:
   public ActionResult SaveChatRecords()
        {
            //会话记录接口:https://api.weixin.qq.com/cgi-bin/customservice/getrecord?access_token=ACCESS_TOKEN
            //参数:
            //starttime 是   查询开始时间,UNIX时间戳(秒级别)
            //endtime   是   查询结束时间,UNIX时间戳(秒级别),每次查询不能跨日查询
            //openid    否   普通用户openid,若不填则查询该appid下所有用户
            //pagesize  是   每页大小,每页最多拉取1000条
            //pageindex 是   查询第几页,从1开始

            DateTime t2 = DateTime.Now;
            DateTime t1 = new DateTime(t2.Year, t2.Month, t2.Day);

            long start = WeChatMPToken.ConvertDateTimeInt(t1);
            long end = WeChatMPToken.ConvertDateTimeInt(t2);

            object data = new
            {
                starttime = start,
                endtime = end,
                openid = "oAeN5joguYSRPRwyvtQC-GtJNc9w",//大嘴巴
                pagesize = 100,
                pageindex = 1,
            };

            string token = WeChatMPToken.getAccessToken();
            string requrl = "https://api.weixin.qq.com/cgi-bin/customservice/getrecord?access_token={0}";

            var json = CommonJsonSend.Send<dynamic>(token, requrl, data, CommonJsonSendType.POST);

            return Content("保存完毕!");
        }
showjim 2015-12-11
  • 打赏
  • 举报
回复
微信接口的混乱是我见过的最烂最烂的OpenAPI,没有之一。 但是但是,你这个解析失败看起来应该是客户端类库的问题。
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 30 楼 u012012237 的回复:
[quote=引用 28 楼 superior_yong 的回复:] 为什么你写的json字段的位置和官网上的不一样
我是在这里看到的http://dkf.qq.com/document-1_1.html,你在哪里看到的?麻烦发一下url给我参考一下,[/quote]应该不和这些参数的位置有关系的,刚才试了一下,按照你给的顺序放,但是返回的数据还是{ "recordlist": []}这样的,应该和pagesize的大小没什么关系,只要不超过1000就行了
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 28 楼 superior_yong 的回复:
为什么你写的json字段的位置和官网上的不一样
我是在这里看到的http://dkf.qq.com/document-1_1.html,你在哪里看到的?麻烦发一下url给我参考一下,
风云再起9310 2015-12-11
  • 打赏
  • 举报
回复
引用 27 楼 sp1234 的回复:
微信的系统做的有些差劲(但是产品经理一定不错)。通常它只在业务系统返回业务异常时才给你返回error信息,而当你少传一个“必填的”参数时,或者填错产生程序底层技术错误时,微信往往就没有响应了。 看起来,微信有很好的产品经理,但是没有很好的技术经理。
还请指点迷津
忘丿殇 2015-12-11
  • 打赏
  • 举报
回复

为什么你写的json字段的位置和官网上的不一样
  • 打赏
  • 举报
回复
微信的系统做的有些差劲(但是产品经理一定不错)。通常它只在业务系统返回业务异常时才给你返回error信息,而当你少传一个“必填的”参数时,或者填错产生程序底层技术错误时,微信往往就没有响应了。 看起来,微信有很好的产品经理,但是没有很好的技术经理。
忘丿殇 2015-12-11
  • 打赏
  • 举报
回复
把pagesize写小一点,不要写成1000,看行不行
加载更多回复(18)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧