【刚接触微信公众号开发】微信公众号怎么每次获取用户的地理位置信息

章北海01 2018-02-24 11:09:30
简单说:用户打开我的公众号,我后台(SpringMvc+SpringBoot+Mybatis)接受到用户的地理位置信息???

微信怎么把用户的信息传递到我的后台服务 怎么设置URL??


注:用户打开公众号,就把用户的信息发送到我的后台
...全文
4524 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongbaobaoshiwo 2020-07-28
  • 打赏
  • 举报
回复
公众号窗口 需弹出获取地理位置的提示 只会在首次关注弹出吗。重新关注后,还会弹出吗
qq_41099066 2018-12-26
  • 打赏
  • 举报
回复
@SuppressWarnings("serial")
@WebServlet(urlPatterns = "/wx/housekeeper", name = "wxHouseKeeperServlet")
public class HouseKeeper extends HttpServlet {

private static final String TOKEN = "xxxxxxxxxxxxxxxxxx";

private Logger logger = LoggerFactory.getLogger(HouseKeeper.class);


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数
String signature = request.getParameter("signature");// 微信加密签名(token、timestamp、nonce。)
String timestamp = request.getParameter("timestamp");// 时间戳
String nonce = request.getParameter("nonce");// 随机数
String echostr = request.getParameter("echostr");// 随机字符串
// 将token、timestamp、nonce三个参数进行字典序排序
String[] params = new String[] { TOKEN, timestamp, nonce };
Arrays.sort(params);
// 将三个参数字符串拼接成一个字符串进行sha1加密
String clearText = params[0] + params[1] + params[2];
String algorithm = "SHA-1";
String sign = new String(
Hex.encodeHex(MessageDigest.getInstance(algorithm).digest((clearText).getBytes()), true));
// 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if (signature.equals(sign)) {
response.getWriter().print(echostr);
}
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {

try {
//将xml处理成map
Map<String,String> param = WXAuthUtil.parseRequest(request.getInputStream());
logger.info("获取微信返回的参数++++++++++++++++++++param:{}",JsonUtil.objToString(param));

PrintWriter out = response.getWriter();
//我这里是要获取当前公众号的地理位置,只获取了坐标设到cookie中
if(param.get("MsgType").equals("event")){
CookieUtils.setCookie(response, "point", param.get("Longitude")+"、"+param.get("Latitude"), 604800);
}
WXAuthUtil.getInstance().dealMessage(param);
String resXml = "";
out.write(resXml);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
qq_39823522 2018-03-30
  • 打赏
  • 举报
回复
https://blog.csdn.net/bj123467/article/details/72909878 你说的方法必须配置url,不过url只能配置一个限制比较大,上面的链接是另一种方法你可以试一下
章北海01 2018-02-24
  • 打赏
  • 举报
回复
获取用户地理位置 开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会弹框让用户确认是否允许公众号使用其地理位置。弹框只在关注后出现一次,用户以后可以在公众号详情页面进行操作。 第三方在收到地理位置上报信息之后,只需要回复success表明收到即可,是不允许回复消息给粉丝的。 获取用户地理位置 用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,上报地理位置以推送XML数据包到开发者填写的URL来实现。 推送XML数据包示例: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml> 书册上这样写 ??? 怎么把这些数据带过来的啊???? 急死我??? 昨天才接触的微信
章北海01 2018-02-24
  • 打赏
  • 举报
回复
这个流程是怎么走的 ?? 开发书册只是说,发送过来的数据是xml形式???? 这怎么发送过来的????求解啊???

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧