微信公众号开发遇到的一些坑

第一个坑是测试号运行功能没问题到服务器上就出问题--这种情况也算比较粗心吧:

     这种情况下要检查的几项:

          1、APPID跟APPsecret 是否是跟你所用的公众号一致,这里不一致容易导致报openID:40003

          2、服务器的IP地址是否在你的公众号IP白名单里,如果没有容易报:40164

          3、注意查看公众号的认证状态 如果没有认证开发模式下的接口是不能用的 只要状态显示的是没认证

第二个坑也不算是坑吧一个小知识吧 在spring集成的项目中 自动获取accesstoken并更新:

这个accesstoken在重新获取刷新的这段时间 五分钟内 新的老的都可以用

package com.leyou.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.leyou.entity.AccessTocken;
import com.leyou.service.UpdateAccessTokenService;
import com.leyou.util.WeiXinUtil;


@Component
@Configuration      //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling 
public class Test {
//	Logger logger = LoggerFactory.getLogger(Test.class);

  
	@Autowired
	private UpdateAccessTokenService UpdateAccessTokenService;
    // 第一次延迟1秒执行,当执行完后7100秒再执行
    @Scheduled(initialDelay = 1000, fixedDelay = 7000*1000)
    public void getWeixinAccessToken(){
        AccessTocken at = WeiXinUtil.getAccessTocken();
                UpdateAccessTokenService.updateAccessToken(at.getId(),at.getToken(),at.getExpiresIn());
        System.out.println("Test:"+at.getToken());
//        at = UpdateAccessTokenService.getAccessTokenfromDB();
//        System.out.println(at.getToken());
//        String openid = "obpaF0tUE9WRtqrXdEbUsvmKraiQ";
//        UserInf us  = UserUtile.getUser(openid,at.getToken());
//        System.out.println("UnionID:"+us);
    }
}

这里并没有用@SpringBootApplication注解原因就在于@Scheduled这个注解有时候用@SpringBootApplication他并不会执行

获取accesstoken的那个方法我并没有写 可以根据api去进行编写 

还有一些小知识 只有在微信公众号绑定了微信开放平台的时候 他才能获取unionID。小程序也一样

当然了 微信开放平台 审核 300  

以上的东西其实公众号api里讲的很明白

你可能感兴趣的:(微信公众号开发遇到的一些坑)