簡單說:用戶打開我的公眾號,我后臺(SpringMvc+SpringBoot+Mybatis)接受到用戶的地理位置資訊???
微信怎么把用戶的資訊傳遞到我的后臺服務 怎么設定URL??
注:用戶打開公眾號,就把用戶的資訊發送到我的后臺
uj5u.com熱心網友回復:
這個流程是怎么走的 ??開發書冊只是說,發送過來的資料是xml形式???? 這怎么發送過來的????求解啊???
uj5u.com熱心網友回復:
獲取用戶地理位置開通了上報地理位置介面的公眾號,用戶在關注后進入公眾號會話時,會彈框讓用戶確認是否允許公眾號使用其地理位置。彈框只在關注后出現一次,用戶以后可以在公眾號詳情頁面進行操作。
第三方在收到地理位置上報資訊之后,只需要回復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>
書冊上這樣寫 ??? 怎么把這些資料帶過來的啊???? 急死我??? 昨天才接觸的微信
uj5u.com熱心網友回復:
https://blog.csdn.net/bj123467/article/details/72909878你說的方法必須配置url,不過url只能配置一個限制比較大,上面的鏈接是另一種方法你可以試一下
uj5u.com熱心網友回復:
@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();
}
}
}
uj5u.com熱心網友回復:
公眾號視窗 需彈出獲取地理位置的提示 只會在首次關注彈出嗎。重新關注后,還會彈出嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/17166.html
標籤:微信開發
上一篇:ip
