027-87227388

微信第三方授权方法

发布时间:2021-03-17 浏览:707

  最近在搞微信开放平台,记录一下微信开放平台第三方授权的流程。

  后端:Delphi10.3.3(DelphiWebMvc)

  前端:jQuery (Ajax + HTML)

  缓存:Redis服务器

  授权流程:

  第三方平台开发者可以通过调用微信开放平台的接口能力,为公众号或小程序的运营者提供账号申请、小程序创建、技术开发、行业方案、活动营销、插件能力等全方位服务。同一个账号的运营者可以选择多家适合自己的第三方为其提供产品能力或委托运营。(官方抄的)

  1.获取验证票据(component_verify_ticket)

  存储在Redis,供其他请求取值。(获取令牌时使用)。

  程序被动接收,每10分钟(600s)被推送一次(component_verify_ticket),每次都将新值存入Redis。

  2.获取令牌(component_access_token)

  存储在Redis中,供其他请求取值。(获取预授权码时使用)

  需要后端程序主动发送POST请求,单个令牌有效期为2个小时(7200s),在令牌快过期时(比如1小时50分),重新调用接口获取。

  3.获取预授权码(pre_auth_code)

  将其存储在Redis中,供其他请求取值。(生成授权页使用)

  后端程序主动发送POST请求,每个预授权码有效期为10分钟(600s)

  4.生成授权页,写个Html

  第三方平台根据之前获取到的参数,按照官方文档生成被授权页。

  用户打开第三方平台授权页后,扫描二维码,确认并同意将自己的公众号或小程序授权给第三方平台方,完成授权。

  5.获取授权码(auth_code)

  授权后,回调URI,后端会接收授权码信息和过期时间(redirect_url?auth_code=xxx&expires_in=600)(获取接口调用凭据时使用)

  6.获取接口调用凭据(authorizer_access_token)

  将其存储在Redis中,通过authorizer_access_token,去调用公众号或小程序相关 API。

  每个接口调用令牌有效期为2小时(7200s),每天有调用限制