基于微信公众平台开发过程中遇到的问题及解决方案:
(1)错误返回代码errcode:40003 不合法的OpenID
private static final String SEND_WEIXIN_MSG= "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=";
private static final String accessToken="H3rmwgF4ne*****_50IsF-v1YT0kASGNg4UDDF********6WjG4u4bZaa5dC4*********6QDINCU";
String openId = "oMrqKjiwq-******HLdVbCjKk080";//这是一个正确合法的openId
/*关键在传JSON数据这里,引号要写成 \" 的形式,而不是单引号 ' 的形式*/
String json = "{\"touser\":\""+openId+"\",\"msgtype\":\"text\",\"text\":{\"content\":\""+content+"\"}}";
String resp = HttpUtils.postJson(SEND_WEIXIN_MSG+accessToken, json);</span>
(2)错误返回代码errorcode:42001 access_token 超时
获取access_token超时需要重新获取新的access_token。具体参考微信公众平台开发者文档对access_token的说明:
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。由于获取access_token的api调用次数非常有限,需要全局存储与更新access_token,频繁刷新access_token会导致api调用受限。
公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在开发模式中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用https协议。