微信小程序问题汇总

一、消息推送配置

1、解析失败,请检查信息是否填写正确
    服务器地址中不能使用其他的端口号,把端口号去掉,默认就是走80或443端口,另外这个地址需要外网访问,我使用了nat123映射了80端口,这个工具需要一点点小费

2、请求超时,请检查信息是否填写正确
    这个一般是由于后端CheckSignature方法里 经过SHA1加密的字符tmpStr和signature不匹配导致的,一开始我使用 if( tmpStr==signature ) return true; 其实应该使用 if( tmpStr.Equals(signature, StringComparison.OrdinalIgnoreCase) ),SHA1加密以后返回的字符是大写的

3、Token校验失败,请检查确认
    这个一般是由于后端接口返回的数据类型不对,大多数接口都会封装一个ApiResutModel用来统一返回类似于 { code:200, msg:"",data:{} } 的结果,但是消息推送配置里只能接受纯文本,因此修改为 HttpContext.Response.WriteAsync(echostr);

二、消息推送

1、invalid openid rid: 5f5f0b66-3e0db526-555e7b82  无效的openid
    这个一般由于后端请求subscribeMessage.send接口时传递的json格式错误,要不就是key顺序问题,要不就是key首字符大写的问题,一般后端定义的请求模型首字母都是大写,而小程序接口需要的json必须全部小写

2、{ "errcode":43101,"errmsg":"user refuse to accept the msg hint: [EW7iIa04390500]" }  用户拒绝接受消息
    当前端使用wx.requestSubscribeMessage已经成功授权后还提示上面的错误,一般是由于后端配置的模板id和小程序的模板id不匹配导致的

3、{"errcode":47003,"errmsg":"argument invalid! data.date4.value invalid rid: 5f4084e5-7924012e-20ad3837"}
    如果消息模板中定义了date,那么日期是不能包含时间的,在CSharp中使用DateTime.Now.ToShortDateString()截取年月日

猜你喜欢

转载自blog.51cto.com/6484100/2537142