微信小程序> 快速搭建微信小程序第三方平台基础教程二授权流程技术说明-微信小程序授权第三方管理-小程序第三方授权管理

快速搭建微信小程序第三方平台基础教程二授权流程技术说明-微信小程序授权第三方管理-小程序第三方授权管理

浏览量:1918 时间: 来源:zpzxgcr
1、获取component_access_tokenhttp请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/component/api_component_token{"component_appid":"appid_value",//第三方平台的appid"component_appsecret":"appsecret_value",//第三方平台的secret"component_verify_ticket":"ticket_value"/*微信服务器会向你在后台设置的“授权事件接收URL”定时推送component_verify_ticket(每隔10分钟)在收到ticket推送后也需进行解密,接收到后必须直接返回字符串success*/}1.

第三方平台component_access_token是第三方平台的接口调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如2小时)再进行刷新在这里我自己封装了一个比较过期的方案

/**@paramsold:过去的时间expire:过期时间直接取返回的expire就可以*我们在计算过期时间的时候可以提前五分钟判断过期重新获取*第一次获取到token的时候我们可以保存到localStorage时间就保存时间戳就可以这样方便比较*/letcontrast(old,expire){//时间对比提前五分钟对比true:过期false:未过期return((Date.now()-old)/1000)(expire-300)?true:false;}2.

结果参数说明

参数说明component_access_token接口的调用凭据expires_in过期时间单位(秒)2、获取预授权码pre_auth_code3.

获取pre_auth_code是接着上一个步骤的在我们成功获取到component_access_token可以通过component_access_token然后在post请求写入参数component_appid这样就可以获取到pre_auth_code流程和上面获取的方式一致保存方式保持一致,这样在component_access_token刷新的时我们也要刷新pre_auth_code

http请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_tokenxxxPOST数据示例:{"component_appid":"appid_value"}{"pre_auth_code":"Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw","expires_in":600}4.

结果参数说明

参数说明pre_auth_code预授权码expires_in过期时间单位(秒)3、引导进去授权页面方法一:授权注册页面扫码授权“`https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appidxxxxpre_auth_codexxxxxredirect_urixxxxauth_typexxx5.

“`

参数是否必填参数说明component_appid是第三方平台方appidpre_auth_code是第二个步骤获取的pre_auth_coderedirect_uri是回调url(用户成功授权给你的平台的时候会在你的参数后面加上?pre_auth_codexxxexpires_in3600)auth_type否要授权的帐号类型:1则商户点击链接后,手机端仅展示公众号、2表示仅展示小程序,3表示公众号和小程序都展示。如果为未指定,则默认小程序和公众号都展示。第三方平台开发者可以使用本字段来控制授权的帐号类型。biz_appid否指定授权唯一的小程序或公众号6.

注:、auth_typebiz_appid两个字段互斥还有一点需要前端同学特别注意的是如果你用了路由系统history模式加入你的路径中有/#/,http://www.abc.com/#/index,这样的话微信在成功授权的时候会把参数这样插入http://www.abc.com/#?redirect_url?auth_codexxxexpires_in3600/index下面是我的获取参数的方法注意我们在获取完参数之后需要改变当前页面的路径

7.

//获取完参数之后我们重定向路径location.replace('http://localhost:8080/#/version/codes');if(location.search){letobjlocation.search.slice(location.search.indexOf('?')+1).split("");auth_codeobj[0].split("")[1];}授权页面截图

4、使用授权码换取公众号或小程序的接口调用凭据和授权信息8.

该API用于使用授权码换取授权公众号或小程序的授权信息,并换取authorizer_access_token和authorizer_refresh_token

9.

authorizer_refresh_token这个就是我们在代小程序中需要的token

10.

接口调用请求说明http请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_tokenxxxx

11.

请求参数说明

请求参数说明component_appid第三方平台appidauthorization_code上一个步骤获得{"authorization_info":{"authorizer_appid":"wxf8b4f85f3a794e77","authorizer_access_token":"QXjUqNqfYVH0yBE1iI_7vuN_9gQbpjfK7hYwJ3P7xOa88a89-Aga5x1NMYJyB8G2yKt1KCl0nPC3W9GJzw0Zzq_dBxc8pxIGUNi_bFes0qM","expires_in":7200,"authorizer_refresh_token":"dTo-YCXPL4llX-u1W1pPpnp8Hgm4wpJtlR6iV0doKdY","func_info":[{"funcscope_category":{"id":1}},{"funcscope_category":{"id":2}},{"funcscope_category":{"id":3}}]}}12.

结果参数说明

参数说明authorization_info授权信息authorizer_appid授权方appidauthorizer_access_token授权方接口调用凭据(在授权的公众号或小程序具备API权限时,才有此返回值),也简称为令牌(这个就是我们最终要只用的token)expires_in有效期(在授权的公众号或小程序具备API权限时,才有此返回值)authorizer_refresh_token接口调用凭据刷新令牌(在授权的公众号具备API权限时,才有此返回值),刷新令牌主要用于第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌*(我们需要把这个token保存到对应用户数据库里面这样下次进来我们是不需要用户授权了除非用户取消授权,我们可以用这个去刷新authorizer_access_token)func_info授权给开发者的权限集列表,ID为1到26分别代表:1、消息管理权限2、用户管理权限3、帐号服务权限4、网页服务权限5、微信小店权限6、微信多客服权限7、群发与通知权限8、微信卡券权限9、微信扫一扫权限10、微信连WIFI权限11、素材管理权限12、微信摇周边权限13、微信门店权限14、微信支付权限15、自定义菜单权限16、获取认证状态及信息17、帐号管理权限(小程序)18、开发管理与数据分析权限(小程序)19、客服消息管理权限(小程序)20、微信登录权限(小程序)21、数据分析权限(小程序)22、城市服务接口权限23、广告管理权限24、开放平台帐号管理权限25、开放平台帐号管理权限(小程序)26、微信电子发票权限请注意:1)该字段的返回不会考虑公众号是否具备该权限集的权限(因为可能部分具备),请根据公众号的帐号类型和认证情况,来判断公众号的接口权限。5、获取(刷新)授权公众号或小程序的接口调用凭据(令牌)13.

该API用于在授权方令牌(authorizer_access_token)失效时,可用刷新令牌(authorizer_refresh_token)获取新的令牌。请注意,此处token是2小时刷新一次,开发者需要自行进行token的缓存,避免token的获取次数达到每日的限定额度。缓存方法可以自行保存到对应用户字段里面接口调用请求说明http请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_tokenxxxxx

14.

请求参数说明

参数说明component_appid第三方平台appidauthorizer_appid授权方appidauthorizer_refresh_token授权方的刷新令牌,刷新令牌主要用于第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌15.

结果参数说明

参数说明authorizer_access_token有效期,为2小时expires_in授权方appidauthorizer_refresh_token刷新令牌16.

*这里有一点需要注意点是我们每次通过该结构获取到authorizer_access_token要注意authorizer_refresh_token需要更新到数据库的字段里面不然下次就无法刷新啦

17.

以上就是我对授权流程的总结路线是对着官方文档在加上自己遇到的坑总结出来的有哪一点不知道的可以在下方留言

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎