JAVA微信推送到首页-公众号
有关于公众号的推送
1.推送的servlet的方法
protected void openMsg(HttpServletRequest request, HttpServletResponse response, JSONObject result)
throws ServletException, IOException {
L.i(TAG, "post openMsg start");
String openId = result.getString("openid");
if(StringUtils.isBlank(openId)){
result.put("message", "未获取微信账户信息");
super.out(response, result.toString());
return;
}
L.i(TAG, "openId=" + openId);
String roomNo = result.getString("roomNo");
String[] roomNozto = roomNo.split("-");
int re = result.getInt("result");
if(re==1){
roomNo = roomNozto[1] +"开门成功";
}else{
roomNo = roomNozto[1] +"开门失败";
}
WeixinKFUtil.sendText(MainConst.getToken(), openId,roomNo);
}//。。。
2.获取二维码的凭证
/**
* 获取二维码的凭证
*/
private static AccessToken token;
public static String getToken(){
if (token == null || !token.isAvailable()) {//如果没有获取过Token或者Token超时则重新取Token
token =WeixinUtil.getAccessToken(MainConst.getWXAppID(), MainConst.getWXAppKey());
}
if (token == null) {
return "";
}
return token.getToken();
}
3.根据appid和appsecret进行获取秘钥
/**
* 获取access_token
*
* @param appid 凭证
* @param appsecret 密钥
* @return
*/
public static AccessToken getAccessToken(String appid, String appsecret) {
AccessToken accessToken = null;
String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
// 如果请求成功
if (null != jsonObject) {
try {
accessToken = new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
accessToken.setTimeNow(); //
L.i(TAG,"getAccessToken=" + accessToken.getToken() );
L.i(TAG,"getExpiresIn=" + accessToken.getExpiresIn() );
} catch (JSONException e) {
accessToken = null;
// 获取token失败
L.e(TAG,"Fail to get tocken !");
}
}
return accessToken;
} //..
4.根据去openid+发的信息+token发送信息到这个openid
/**
* 客服接口发送信息
*
* @param accessToken
* @param openID
* @param content
* @return
*/
public static ENUM_STATUS sendText(String accessToken,String openID,String content){
String requestUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
JSONObject send = new JSONObject();
send.put("touser", openID);
send.put("msgtype", "text");
JSONObject contentJ = new JSONObject();
contentJ.put("content", content);
send.put("text", contentJ);
JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST", send.toString());
int status = jsonObject.getInt("errcode");
//String msg = jsonObject.getString("errmsg");
if (status == 0) {
return ENUM_STATUS.MSG_SUCCESS;
}
L.e(TAG, "客服发送消息错误!发送包:" + send.toString() + " 接收包: " + jsonObject.toString());
return ENUM_STATUS.MSG_ERR_KF_SEND_FAILED;
}
openid首页接收到去推送的消息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统