国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 微信小程序 微信開發(fā) 圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例

圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例

Mar 16, 2017 pm 03:09 PM
微信公眾號開發(fā)

這篇文章主要介紹了微信公眾號開發(fā) 自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例詳解的相關資料,需要的朋友可以參考下

微信公眾號開發(fā) 自定義菜單

請先讀完本文再進行配置開發(fā)

請先前往微信平臺開發(fā)者文檔閱讀“網(wǎng)頁授權(quán)獲取用戶基本信息”的接口說明

在微信公眾賬號開發(fā)中,往往有定義一個菜單,然后用戶點擊該菜單就進入用戶個人中心的功能,通常應用于各個公眾賬號中的會員服務。

如何在微信自定義菜單中將用戶導航到個人中心頁面呢?

首選需要通過用戶點擊獲取用戶openid,而通過用戶的點擊跳轉(zhuǎn)獲取用戶openid就必須在菜單中動態(tài)綁定用戶的openid,或者在菜單的跳轉(zhuǎn)URL中填寫微信提供的鏈接,官方給了兩個鏈接類型

一種是Scope為snsapi_base的鏈接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect

另一種是Scope為snsapi_userinfo的鏈接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect


這兩種鏈接的區(qū)別如下

應用授權(quán)作用域,snsapi_base (不彈出授權(quán)頁面,直接跳轉(zhuǎn),只能獲取用戶openid),snsapi_userinfo (彈出授權(quán)頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關注的情況下,只要用戶授權(quán),也能獲取其信息)

網(wǎng)上很多說法是將鏈接的url直接作為微信自定義菜單中view類型中的url(在填寫是url時需要配置網(wǎng)頁授權(quán)回調(diào)域名和appid),本人試了一下這種做法然而不能成功

{ "type":"view", "name":"會員中心", "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的appid&redirect_uri=你配置接收微信認證的地址?response_type=code&scope=snsapi_base&state=1#wechat_redirect" },

返回結(jié)果是創(chuàng)建菜單失敗

創(chuàng)建菜單失敗 errcode:{40033} errmsg:{invalid char<a href="http://www.miracleart.cn/code/8209.html" target="_blank">set</a>. please check your request, <a href="http://www.miracleart.cn/wiki/109.html" target="_blank">if</a> <a href="http://www.miracleart.cn/wiki/137.html" target="_blank">include</a> \uxxxx will create fail! hint: [91..gA0792vr23]}

我試了一下將后面的地址進行urlEncode,還是同樣的錯誤。

后來我想了一個辦法

在自定義菜單中填寫自己的url,在填寫的url中將用戶重定向到snsapi_base的url中,然后再在snsapi_base中配置獲取用戶openid以及用戶其他信息,最后跳轉(zhuǎn)到一個頁面,也就是通常的會員中心頁面。

流程如下

圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例

請看代碼

{ "type":"view",

"name":"會員中心",

"url":"http://配置的網(wǎng)址/redirect"}

其中通過url將用戶跳轉(zhuǎn)到

http://配置的網(wǎng)址/redirect

然后在處理方法中調(diào)用一次重定向即可

//類上的配置
@Controller
@RequestMapping("/wechat")
public class WeChatController{
  @RequestMapping(value = "/redirect", method = RequestMethod.GET)
  public String weixinRedirect(HttpServletRequest request, HttpServletResponse response) {
    return "redirect:https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的appid&redirect_uri=你的服務器處理地址?response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";
    }
}

服務器會將微信認證 跳轉(zhuǎn)到你的服務器處理地址,也就是上面

redirect_uri=你的服務器處理地址中的地址

這里配置為

你的服務器地址/oauth

代碼如下

@RequestMapping(value = "/oauth", method = RequestMethod.GET)
  public String weixinOAuth(HttpServletRequest request, HttpServletResponse response, Model model) {
    //得到code
    String CODE = request.getParameter("code");
    String APPID = "你的APPID";
    String SECRET = "你的SECRET";
    //換取access_token 其中包含了openid
    String URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code".replace("APPID", APPID).replace("SECRET", SECRET).replace("CODE", CODE);
    //URLConnectionHelper是一個模擬發(fā)送http請求的類
    String jsonStr = URLConnectionHelper.sendGet(URL);
    //System.out.println(jsonStr);
    //out.print(jsonStr);
    JSONObject jsonObj = new JSONObject(jsonStr);
    String openid = jsonObj.get("openid").toString();
    //有了用戶的opendi就可以的到用戶的信息了
    //地址為https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    //得到用戶信息之后返回到一個頁面
    model.addAttribute("user", wechatUser);
    return "vip/userInfo";
  }

效果如下

圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例

圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例

而且這種方式當用戶用其他瀏覽器打開時,會出錯,保證了只能在微信中使用,保障了安全性。而且地址欄不會有其他用戶個人信息的暴露。

圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例





以上是圖文詳解微信公眾號開發(fā)自定義菜單跳轉(zhuǎn)頁面并獲取用戶信息實例的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276