Heim  >  Artikel  >  WeChat-Applet  >  Detaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten

Detaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten

高洛峰
高洛峰Original
2017-03-16 15:09:504932Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur Entwicklung öffentlicher WeChat-Konten vorgestellt.Benutzerdefiniertes MenüÜberspringen Sie die Seite und erhalten Sie detaillierte Erläuterungen zu Beispielen für Benutzerinformationen. Freunde in Not können sich auf

Entwickeln beziehen benutzerdefinierte Menüs für öffentliche WeChat-Konten

Bitte lesen Sie diesen Artikel, bevor Sie mit der Konfigurationsentwicklung fortfahren

Bitte lesen Sie in der Entwicklerdokumentation der WeChat-Plattform nach, „Webseitenautorisierung zum Erhalten eines Basisbenutzers“. Informationen" "Schnittstelle Beschreibung

Bei der Entwicklung öffentlicher WeChat-Konten wird häufig ein Menü definiert, und dann klickt der Benutzer auf das Menü, um die persönliche Center-Funktion des Benutzers aufzurufen, was normalerweise der Fall ist Wird in den Mitgliedsdiensten jedes öffentlichen Kontos verwendet.

Wie navigiert der Benutzer zur persönlichen Center-Seite im benutzerdefinierten WeChat-Menü?

Die erste Möglichkeit besteht darin, die OpenID des Benutzers durch den Klick des Benutzers zu erhalten. Um die OpenID des Benutzers durch den Klicksprung des Benutzers zu erhalten, müssen Sie die OpenID des Benutzers dynamisch im Menü binden oder WeChat ausfüllen Die Sprung-URL des Menüs. Der Beamte gibt zwei Linktypen an

Einer ist der Link mit 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

Der andere ist der Link, dessen Geltungsbereich snsapi_userinfo ist

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


Der Unterschied zwischen diesen beiden Links ist wie folgt

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)

Viele Meinungen im Internet gehen davon aus, dass die URL des Links direkt als URL im Ansichtstyp im benutzerdefinierten WeChat-Menü verwendet wird (Sie Ich muss beim Eingeben der URL den Domänennamen und die App-ID für den Rückruf der Webseitenautorisierung konfigurieren. Ich habe diese Methode ausprobiert, bin aber fehlgeschlagen.

{ "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" },

Das Rückgabeergebnis ist dass die Menüerstellung fehlgeschlagen ist

Die Menüerstellung ist fehlgeschlagen errcode:{40033} errmsg:{invalid char<a href="http://www.php.cn/code/8209.html" target="_blank">set<code>创建菜单失败 errcode:{40033} errmsg:{invalid char<a href="http://www.php.cn/code/8209.html" target="_blank">set</a>. please check your request, <a href="http://www.php.cn/wiki/109.html" target="_blank">if</a> <a href="http://www.php.cn/wiki/137.html" target="_blank">include</a> uxxxx will create fail! hint: [91..gA0792vr23]} Bitte überprüfen Sie Ihre Anfrage, wenn

include

uxxxx erstellt einen Fehlerhinweis: [91..gA0792vr23]}

Ich habe versucht, die folgende Adresse urlEncoding, aber immer noch die gleiche Fehlermeldung erhalten.

Später habe ich über einen Weg nachgedacht

Geben Sie Ihre eigene URL in das benutzerdefinierte Menü ein, leiten Sie den Benutzer in der ausgefüllten URL zur snsapi_base-URL um und konfigurieren Sie dann die Erfassung in snsapi_base Der Benutzer openid und andere Benutzerinformationen gelangen schließlich zu einer Seite, bei der es sich um die übliche Mitgliedercenterseite handelt.

Der Prozess ist wie folgtDetaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten

Bitte beachten Sie den Code{ "type":"view",

"name":"会员中心",

"url":"http://配置的网址/redirect"}

Verwenden Sie die URL, um zu

http://konfigurierte URL/Weiterleitung

Rufen Sie dann eine Weiterleitung in der Verarbeitungsmethode auf

//类上的配置
@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";
    }
}

Der Server springt zur WeChat-Authentifizierung zu Ihrer Serververarbeitungsadresse, die oben angegeben ist

redirect_uri=你的服务器处理地址中的地址

Die Konfiguration hier ist

你的服务器地址/oauth

Der Code lautet wie folgt

@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是一个模拟发送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";
  }

Der Effekt ist wie folgt

Detaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten

Detaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten

Und diese Methode verursacht einen Fehler, wenn der Benutzer sie mit öffnet andere Browser, um sicherzustellen, dass es nur in WeChat verwendet werden kann, um Sicherheit

zu gewährleisten. Und die Adressleiste gibt keine persönlichen Daten anderer Benutzer preis.

Detaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten





Das obige ist der detaillierte Inhalt vonDetaillierte grafische und textliche Erläuterung von Beispielen für die Entwicklung benutzerdefinierter Menüsprungseiten und den Erhalt von Benutzerinformationen für öffentliche WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn