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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

挂代理无法访问网页了怎么办_微信H5网页授权

發(fā)布時(shí)間:2024/10/6 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 挂代理无法访问网页了怎么办_微信H5网页授权 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 第一步:用戶同意授權(quán),獲取code2 第二步:通過code換取網(wǎng)頁授權(quán)access_token3 第三步:拉取用戶信息(需scope為 snsapi_userinfo)SpringBoot:2.1.4.RELEASEweixin-java-mp:3.4.0引言

這里我們開發(fā)微信公眾號(hào)使用了第三方SDK何為第三方SDK呢?

????前人封裝了一系列的API調(diào)用方法我們只需引入就可快速開發(fā)微信端。

我們?nèi)绾握{(diào)試本地微信的授權(quán)呢?或者微信其他相關(guān)的API接口?

????由于項(xiàng)目在本地微信是外部,微信外部無法訪問我們本地的接口所以這時(shí)候我們需要使用一款內(nèi)網(wǎng)穿透工具Natapp,這樣我們的項(xiàng)目就可以供外部訪問。

沒有公眾號(hào)怎么辦?

微信提供了測(cè)試公眾號(hào)給開發(fā)者調(diào)試對(duì)于普通公眾號(hào)來講少了支付好像其他的都支持。

測(cè)試賬號(hào)

開發(fā)文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

由于我這邊申請(qǐng)過了所以不做過多演示,這里我們需要注意幾個(gè)地方,我們?nèi)绻贿m用JDSK的話只需要關(guān)注紅色方框的地方,如果需要使用JSDK如調(diào)用相機(jī)、分享等。

其次測(cè)試號(hào)微信授權(quán)需要配置回調(diào)域名所以我們需要配置Natapp映射的域名,這里配置的地址只需要域名,配置在頁面服務(wù)->網(wǎng)頁賬號(hào)->修改。

項(xiàng)目配置<dependency> <groupId>com.github.binarywanggroupId> <artifactId>weixin-java-mpartifactId> <version>3.4.0version>dependency>wechat: appId: #appId??appSecret:?#appSecret??token:?#服務(wù)器消息token??aesKey:?#aesKeyprojecturl:??projectUrl:?#natapp調(diào)試地址項(xiàng)目代碼

1、配置類

/***?可以放一些微信相關(guān)的配置屬性*/@Component@ConfigurationProperties(prefix = "wechat")@Datapublic?class?WeChatAccountConfig?{ /** * 設(shè)置微信公眾號(hào)的appid */????private?String?appId; /** * 設(shè)置微信公眾號(hào)的app secret */????private?String?appSecret; /** * 設(shè)置微信公眾號(hào)的token */????private?String?token; /** * 設(shè)置微信公眾號(hào)的EncodingAESKey */????private?String?aesKey;}/***?項(xiàng)目公用d 一些API地址*/@Component@ConfigurationProperties(prefix = "projecturl")@Datapublic?class?ProjectUrlConfig?{ /** * 項(xiàng)目訪問URL */????private?String?projectUrl;}

以上配置類@Data使用了Lombok文章中沒有說明配置的話自己百度或者自己寫GetSet。

2、SDK配置類

@Componentpublic?class?WeChatMpServerConfig?{ @Autowired????private?WeChatAccountConfig?weChatAccountConfig; @Bean public WxMpService wxMpService(){ WxMpService wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(wxMpConfigStorage()); return wxMpService;????} @Bean public WxMpConfigStorage wxMpConfigStorage(){ WxMpInMemoryConfigStorage wxMpConfigStorage = new WxMpInMemoryConfigStorage(); wxMpConfigStorage.setAppId(weChatAccountConfig.getAppId()); wxMpConfigStorage.setSecret(weChatAccountConfig.getAppSecret()); return wxMpConfigStorage;????}}

這個(gè)配置類的由來主要是因?yàn)閃xMpService接口有多個(gè)實(shí)現(xiàn)類自動(dòng)注入的話IOC不知道使用哪個(gè)實(shí)現(xiàn)類,還有就是每次調(diào)用API接口如查用戶、素材之類。每次之前都要設(shè)置一個(gè)wxMpConfigStorage,所以我們這里使用了一個(gè)組件來管理相關(guān)的Bean配置。

3、控制層

@Controller@RequestMapping("/oauth/")public?class?WeChatOAuthController?{ @Autowired????private?ProjectUrlConfig?projectUrlConfig; @Autowired????private?WxMpService?wxMpService; /** * 構(gòu)造網(wǎng)頁授權(quán)URL * https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect * * @Param returnUrl 可以傳入微信端應(yīng)用地址 */ @GetMapping("authorization") public String authorizationUrl(@RequestParam(value = "returnUrl",defaultValue = "STATE") String returnUrl){ String url = projectUrlConfig.getProjectUrl()+"/oauth/userInfo"; String redirectUrl = wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAuth2Scope.SNSAPI_USERINFO, URIUtil.encodeURIComponent(returnUrl)); return "redirect:"+redirectUrl;????} @GetMapping("userInfo") @ResponseBody public String userInfo(@RequestParam("code") String code,@RequestParam("state") String state){ WxMpOAuth2AccessToken auth2AccessToken; WxMpUser wxMpUser; try { auth2AccessToken = wxMpService.oauth2getAccessToken(code); wxMpUser = wxMpService.oauth2getUserInfo(auth2AccessToken,null); } catch (WxErrorException e) { e.printStackTrace(); throw new ProjectException(ResultEnum.WECHAT_ERROR.getCode(),e.getMessage()); } return "你好!"+wxMpUser.getNickname()+",openId="+auth2AccessToken.getOpenId();????}}其中我們大體的可以看出authorizationUrl接口是用戶在微信端點(diǎn)擊的授權(quán)API其次方法中才是構(gòu)建微信授權(quán)鏈接讓項(xiàng)目自己去重定向之后會(huì)到回調(diào)地址userInfo接口這里大家可以自由發(fā)揮返回前端頁面也可以。項(xiàng)目測(cè)試

下方就是微信授權(quán)訪問接口中的方法和官方參數(shù)解析。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect項(xiàng)目啟動(dòng)之后我們需要把外部訪問請(qǐng)求發(fā)送到自己的測(cè)試公眾號(hào)前提需要關(guān)注。

以上就是用戶授權(quán)的操作一般在公眾號(hào)開發(fā)嵌入H5網(wǎng)頁常用的第一步還有就是jdsk驗(yàn)證也需要這里不細(xì)講可以百度相關(guān)教程,使用了此SDK之后不需要自己去封裝一些API操作簡(jiǎn)便了微信開發(fā)。

總結(jié)

以上是生活随笔為你收集整理的挂代理无法访问网页了怎么办_微信H5网页授权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。