挂代理无法访问网页了怎么办_微信H5网页授权
生活随笔
收集整理的這篇文章主要介紹了
挂代理无法访问网页了怎么办_微信H5网页授权
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 第一步:用戶同意授權,獲取code2 第二步:通過code換取網頁授權access_token3 第三步:拉取用戶信息(需scope為 snsapi_userinfo)SpringBoot:2.1.4.RELEASEweixin-java-mp:3.4.0引言
下方就是微信授權訪問接口中的方法和官方參數解析。https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect項目啟動之后我們需要把外部訪問請求發送到自己的測試公眾號前提需要關注。以上就是用戶授權的操作一般在公眾號開發嵌入H5網頁常用的第一步還有就是jdsk驗證也需要這里不細講可以百度相關教程,使用了此SDK之后不需要自己去封裝一些API操作簡便了微信開發。
這里我們開發微信公眾號使用了第三方SDK何為第三方SDK呢?
????前人封裝了一系列的API調用方法我們只需引入就可快速開發微信端。
我們如何調試本地微信的授權呢?或者微信其他相關的API接口?
????由于項目在本地微信是外部,微信外部無法訪問我們本地的接口所以這時候我們需要使用一款內網穿透工具Natapp,這樣我們的項目就可以供外部訪問。
沒有公眾號怎么辦?
微信提供了測試公眾號給開發者調試對于普通公眾號來講少了支付好像其他的都支持。
測試賬號開發文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
由于我這邊申請過了所以不做過多演示,這里我們需要注意幾個地方,我們如果不適用JDSK的話只需要關注紅色方框的地方,如果需要使用JSDK如調用相機、分享等。其次測試號微信授權需要配置回調域名所以我們需要配置Natapp映射的域名,這里配置的地址只需要域名,配置在頁面服務->網頁賬號->修改。項目配置<dependency> <groupId>com.github.binarywanggroupId> <artifactId>weixin-java-mpartifactId> <version>3.4.0version>dependency>wechat: appId: #appId??appSecret:?#appSecret??token:?#服務器消息token??aesKey:?#aesKeyprojecturl:??projectUrl:?#natapp調試地址項目代碼1、配置類
/***?可以放一些微信相關的配置屬性*/@Component@ConfigurationProperties(prefix = "wechat")@Datapublic?class?WeChatAccountConfig?{ /** * 設置微信公眾號的appid */????private?String?appId; /** * 設置微信公眾號的app secret */????private?String?appSecret; /** * 設置微信公眾號的token */????private?String?token; /** * 設置微信公眾號的EncodingAESKey */????private?String?aesKey;}/***?項目公用d 一些API地址*/@Component@ConfigurationProperties(prefix = "projecturl")@Datapublic?class?ProjectUrlConfig?{ /** * 項目訪問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;????}}這個配置類的由來主要是因為WxMpService接口有多個實現類自動注入的話IOC不知道使用哪個實現類,還有就是每次調用API接口如查用戶、素材之類。每次之前都要設置一個wxMpConfigStorage,所以我們這里使用了一個組件來管理相關的Bean配置。
3、控制層
@Controller@RequestMapping("/oauth/")public?class?WeChatOAuthController?{ @Autowired????private?ProjectUrlConfig?projectUrlConfig; @Autowired????private?WxMpService?wxMpService; /** * 構造網頁授權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 可以傳入微信端應用地址 */ @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接口是用戶在微信端點擊的授權API其次方法中才是構建微信授權鏈接讓項目自己去重定向之后會到回調地址userInfo接口這里大家可以自由發揮返回前端頁面也可以。項目測試下方就是微信授權訪問接口中的方法和官方參數解析。https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect項目啟動之后我們需要把外部訪問請求發送到自己的測試公眾號前提需要關注。以上就是用戶授權的操作一般在公眾號開發嵌入H5網頁常用的第一步還有就是jdsk驗證也需要這里不細講可以百度相關教程,使用了此SDK之后不需要自己去封裝一些API操作簡便了微信開發。
總結
以上是生活随笔為你收集整理的挂代理无法访问网页了怎么办_微信H5网页授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ups容量计算和配置方法_干货:UPS电
- 下一篇: 会签是什么意思_后宫为什么要争宠·六