日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Netsharp下微信菜单以及OAuth

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netsharp下微信菜单以及OAuth 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、OAuth介紹

在微信開發中,當打開一個頁面是,業務場景一般會基于粉絲綁定用戶信息,即頁面需要基于粉絲和用戶的身份處理業務邏輯。

在微信中打開一個頁面有三個場景:

1.文本回復中直接包含url

2.圖文回復中攜帶url

3.微信菜單直接打開一個url

對于前兩者,因為使用的是請求和回復的方式,回復可以在后臺在頁面中通過url的參數傳遞粉絲的openId等身份標識數據。而對于微信菜單的url,因為沒有后臺的處理,所以無法在url中附加openId,導致菜單打開的頁面無法實現粉絲和用戶的身份識別。

微信提供了oauth方式,可以用來在微信菜單中打開的url進行粉絲和用戶身份的標識。需要說明的是只有微信服務號才支持oauth,對于訂閱號是不支持oauth的,即訂閱號菜單對應的url中無法識別粉絲和用戶的身份。本文介紹的是netsharp.weixin開發下的微信服務號oauth的處理機制。

另外:用戶點擊一個微信菜單的時候,可以發送一個消息,也可以打開一個url,本文主要介紹打開url的情況

如下場景:

?1.業務中微信打開的業務菜單:如http://www.netsharp.org/nav/weixin/index?originalId=gh_cd4d099926d5,本文稱之為"redirect_uri"(和微信oauth下的叫法一致)

2.微信要求url必須配置成這樣的:https://open.weixin.qq.com/connect/oauth2/authorize?from=weixin&appid=wx19a3e7936ff4ec13&redirect_uri=http%3A%2F%2Fwww.netsharp.org%2Fnav%2Faddins%2Fweixin%2Findex%3ForiginalId%3Dgh_cd4d099926d5&response_type=code&scope=snsapi_base&state=#wechat_redirect,本文稱之為oauth_url,在oauth_url中 redirect_uri作為一個參數(即上面的第一點提到的redirect_uri),并且在oauth_url中的redirect_uri部分需要編碼

?

用戶點擊微信菜單場景:

1.用戶點擊一個菜單

2.微信打開oauth_url

3.oauth_url頁面進行oauth驗證

4.oauth_url頁驗證通過后,跳轉到redirect_uri,并且給redirect_uri頁面追加了一個參數"code"

5.redirect_uri中,開發人員基于code,調用微信的api得到粉絲的信息

6.基于粉絲信息處理業務

7.結束

?

二、OAuth示例

下面是redirect_url也的demo代碼,首先netsharp會自動把"originalId"參數傳遞給redirect_url,在redirect_url如果想獲取openId則通過oauth_url給redirect_url追加的一個參數“code”獲取,netsharp把根據code獲取粉絲信息給封裝了,參見業務頁面的代碼:

<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%> <%@page import="org.netsharp.wx.pa.base.IFansService" %> <%@page import="org.netsharp.communication.ServiceFactory" %> <%@page import="org.netsharp.wx.pa.entity.Fans" %> <!DOCTYPE html> <html><head><meta charset="utf-8"><meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"><meta name="format-detection" content="telephone=no" /><title>oauth測試頁面</title></head><body > <%String originalId = (String)request.getParameter("originalId");response.getWriter().write("originalId:"+originalId+"<br/>");String code = (String)request.getParameter("code");response.getWriter().write("code:"+code+"<br/>");//oauth中必須根據code才能得到粉絲信息IFansService fansService = ServiceFactory.create(IFansService.class);Fans fans = fansService.attachByOpenId(code, originalId);response.getWriter().write("openId:"+fans.getOpenId()+"<br/>");response.getWriter().write("nickname:"+fans.getNickname()+"<br/>");response.getWriter().write("img:<img src='"+fans.getHeadImgUrl()+"' style='width:60px;height:60px' /><br/>");%></body> </html>

測試頁的效果如下:

三、Netsharp下微信菜單的配置

因為oauth的頁面拼接很麻煩,netsharp.weixin工具把這些工作給封裝了,在微信菜單的配置,只要配置redirect_url就可以了,參見如下界面:

?

轉載于:https://www.cnblogs.com/Netsharp/p/5778384.html

總結

以上是生活随笔為你收集整理的Netsharp下微信菜单以及OAuth的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。