1. WeixinImpl
1.1 getMessageConverters
默认注册的StringHttpMessageConverter字符集为ISO-8859-1,而微信返回的是UTF-8的,所以覆盖了原来的方法。
2. Weixin
WeixinUserInfo getUserInfo(String openId);
对比QQ多了一个参数openid,因为微信认证服务器在返回accessToken时,会一同吧openId也返回,无需再单独用accessToken去申请openId
3. WeixinAccessGrant
- extends AccessGrant
- 多一个openId字段
存放accessToken一同返回的openId
4. WeixinOAuth2Template
4.1 exchangeForAccess
appid、secret参数名字有区别
4.2 getAccessToken
accessToken.setOpenId(MapUtils.getString(result, “openid”));
微信认证服务器额外返回了openId
5. WeixinAdapter
多一个openId字段
6. WeixinServiceProvider
同QQServiceProvider
7. WeixinConnectionFactory
7.1 重载extractProviderUserId
由于微信的openId是和accessToken一起返回的,所以在这里直接根据accessToken设置providerUserId即可,不用像QQ那样通过QQAdapter来获取
/**
* 由于微信的openId是和accessToken一起返回的,所以在这里直接根据accessToken设置providerUserId即可,不用像QQ那样通过QQAdapter来获取
*/
@Override
protected String extractProviderUserId(AccessGrant accessGrant) {
if(accessGrant instanceof WeixinAccessGrant) {
return ((WeixinAccessGrant)accessGrant).getOpenId();
}
return null;
}
7.2 重载createConnection
这里与QQConnectionFactory的区别是,初始化Connection时,创建了新的WeinxinAdapter,而QQConnectionFactory使用没有重载createConnection方法,使用默认实现,默认实现使用了一个全局统一的ApiAdapter
/**
*
*/