挂代理无法访问网页了怎么办_微信H5网页授权
這里我們開發(fā)微信公眾號(hào)使用了第三方SDK何為第三方SDK呢?
????前人封裝了一系列的API調(diào)用方法我們只需引入就可快速開發(fā)微信端。
我們?nèi)绾握{(diào)試本地微信的授權(quán)呢?或者微信其他相關(guān)的API接口?
????由于項(xiàng)目在本地微信是外部,微信外部無(wú)法訪問(wèn)我們本地的接口所以這時(shí)候我們需要使用一款內(nèi)網(wǎng)穿透工具Natapp,這樣我們的項(xiàng)目就可以供外部訪問(wèn)。
沒(méi)有公眾號(hào)怎么辦?
微信提供了測(cè)試公眾號(hào)給開發(fā)者調(diào)試對(duì)于普通公眾號(hào)來(lái)講少了支付好像其他的都支持。
測(cè)試賬號(hào)開發(fā)文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
由于我這邊申請(qǐng)過(guò)了所以不做過(guò)多演示,這里我們需要注意幾個(gè)地方,我們?nèi)绻贿m用JDSK的話只需要關(guān)注紅色方框的地方,如果需要使用JSDK如調(diào)用相機(jī)、分享等。其次測(cè)試號(hào)微信授權(quán)需要配置回調(diào)域名所以我們需要配置Natapp映射的域名,這里配置的地址只需要域名,配置在頁(yè)面服務(wù)->網(wǎng)頁(yè)賬號(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)目訪問(wèn)URL */????private?String?projectUrl;}以上配置類@Data使用了Lombok文章中沒(méi)有說(shuō)明配置的話自己百度或者自己寫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è)配置類的由來(lái)主要是因?yàn)閃xMpService接口有多個(gè)實(shí)現(xiàn)類自動(dòng)注入的話IOC不知道使用哪個(gè)實(shí)現(xiàn)類,還有就是每次調(diào)用API接口如查用戶、素材之類。每次之前都要設(shè)置一個(gè)wxMpConfigStorage,所以我們這里使用了一個(gè)組件來(lái)管理相關(guān)的Bean配置。
3、控制層
@Controller@RequestMapping("/oauth/")public?class?WeChatOAuthController?{ @Autowired????private?ProjectUrlConfig?projectUrlConfig; @Autowired????private?WxMpService?wxMpService; /** * 構(gòu)造網(wǎng)頁(yè)授權(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ā)揮返回前端頁(yè)面也可以。項(xiàng)目測(cè)試下方就是微信授權(quán)訪問(wè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)之后我們需要把外部訪問(wèn)請(qǐng)求發(fā)送到自己的測(cè)試公眾號(hào)前提需要關(guān)注。以上就是用戶授權(quán)的操作一般在公眾號(hào)開發(fā)嵌入H5網(wǎng)頁(yè)常用的第一步還有就是jdsk驗(yàn)證也需要這里不細(xì)講可以百度相關(guān)教程,使用了此SDK之后不需要自己去封裝一些API操作簡(jiǎn)便了微信開發(fā)。
總結(jié)
以上是生活随笔為你收集整理的挂代理无法访问网页了怎么办_微信H5网页授权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ups容量计算和配置方法_干货:UPS电
- 下一篇: 会签是什么意思_后宫为什么要争宠·六