
net.sf.weixinmp.http.dialog.user.GetUserInfoRequest Maven / Gradle / Ivy
The newest version!
package net.sf.weixinmp.http.dialog.user;
import java.util.ArrayList;
import java.util.List;
import net.sf.weixinmp.http.WeixinmpHttpRequest;
import net.sf.weixinmp.http.dialog.base.support.OperationAdapter;
import net.sf.weixinmp.http.dialog.base.support.Operations;
import net.sf.weixinmp.http.dialog.base.support.RandomTool;
import net.sf.weixinmp.http.dialog.base.support.WebSecurity;
import net.sf.weixinmp.http.dialog.base.support.WebSession;
import net.sf.weixinmp.http.dialog.base.support.htmlunit.IdentityUnit;
import net.sf.weixinmp.http.dialog.base.support.htmlunit.WeixinmpWebSession;
import net.sf.weixinmp.http.dialog.base.support.htmlunit.json.FansInfo;
import net.sf.weixinmp.model.UserInfo;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.util.NameValuePair;
/**
* https://mp.weixin.qq.com/cgi-bin/getcontactinfo?t=ajax-getcontactinfo&lang=
* zh_CN&fakeid=o4bgnv_GukezqSa0RSdvlD3RXbNM
*
* @author Alex
*
*/
public class GetUserInfoRequest extends WeixinmpHttpRequest {
public UserInfo execute(WebSecurity security, final String openId) {
final WebSession webSession = super.getWebSession(security);
webSession.loginIfNecessary();
final IdentityUnit unit = webSession.lookup(WeixinmpWebSession.IDENTITY_UNIT_KEY);
Operations ops = Operations.buid(new OperationAdapter() {
private FansInfo fansInfo;
@Override
public void execute() throws Exception {
List params = new ArrayList();
params.add(new NameValuePair("action", "get_fans_info"));
params.add(new NameValuePair("token", unit.getAccessToken()));
params.add(new NameValuePair("f", "json"));
params.add(new NameValuePair("lang", "zh_CN"));
params.add(new NameValuePair("ajax", "1"));
params.add(new NameValuePair("random", RandomTool.generate()));
params.add(new NameValuePair("user_openid", openId));
WebRequest wr = createCommonRequest(MP_WEIXIN_GET_FANS_INFO, params);
Page page = webSession.fetchPage(wr);
String fanInfoJSON = page.getWebResponse().getContentAsString();
fansInfo = FansInfo.fromJson(fanInfoJSON);
}
public UserInfo getResult() {
if (fansInfo != null && fansInfo.getFirstUserInfo() != null) {
return fansInfo.getFirstUserInfo().convert();
}
return null;
}
});
webSession.exec(ops);
return ops.getFirstResult();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy