在小程序中使用uniformMessage 的HTTP方式发送公众号消息,总是提示:
{"errcode": 40001,"errmsg": "invalid credential, access_token is invalid or not latest hint: [bGfRdA04588673!]"}: 代码如下:
dynamic paras = new { access_token = token, //用小程序的appid和appsecret获取的access_token,上同 touser = useropenid, //小程序用户的openid mp_template_msg = new { appid = "wx2xxxxxxxxxxxxxxx" , //公众号appid template_id = msgTemplateid, miniprogram = new { appid = weappid, //小程序appid pagepath = pagepath, }, data = msgTemplatedata }, }; string parasstr = JsonConvert.SerializeObject(paras); using (WebClient wc = new WebClient()) { byte [] bytes = wc.UploadData(api, "POST" , Encoding.UTF8.GetBytes(parasstr)); string data = Encoding.UTF8.GetString(bytes); return data; } |
试过将 微信公众平台接口调试工具 生成的 access_token 硬编码到代码中,还是这个错误提示。另外, 1、获取到的access_token已做缓存处理 2、项目还未正式发布,只有我在测试用,不会有在别的地方获取导致当前access_token失效的情况。
string
api =
"https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN"
+ token;
改成这样看
string
api =
"https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token="
+ token;
结贴,问题已经解决,再次感谢 热心的 铭锋科技。 顺便说下另外一个坑: {"errcode":40165,"errmsg":"invalid weapp pagepath hint: [8yDcBa01023942]"}
按照官方文档示例写的应该都会遇到这个坑。
miniprogram =new { appid = weappid pagepath = pagepath, }, 将 pagepath = pagepath 改成 page = pagepath 即可。