微信第三方平台接入

本文简述微信第三方平台接入

平台接入分三个阶段

1. 第一阶段 基础建设

根据需求申请第三方开发平台, 并配置权限以及开发资料等, 开发资料相关信息

2. 第二阶段 授权流程

授权流程如下:
授权流程

步骤一、前往微信开放平台-第三方平台-详情-开发配置,完成权限集与开发资料的配置。
步骤二、调用接口获取预授权码(pre_auth_code),接口详情请查看api_create_preauthcode

预授权码(pre_auth_code)是第三方平台方实现授权托管的必备信息,每个预授权码有效期为 1800秒。需要先获取令牌才能调用。

请求地址:
POST https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=COMPONENT_ACCESS_TOKEN
请求参数
{
  "component_appid": "appid_value" 
}
结果参数
{
  "pre_auth_code": "Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
  "expires_in": 600
}

其中请求参数 component_access_token, 需要令牌接口获取,接口详情请查看component_access_token

令牌(component_access_token)是第三方平台接口的调用凭据。令牌的获取是有限制的,每个令牌的有效期为 2 小时,请自行做好令牌的管理,在令牌快过期时(比如1小时50分),重新调用接口获取

请求地址
POST https://api.weixin.qq.com/cgi-bin/component/api_component_token
请求参数
{
  "component_appid":  "appid_value" ,
  "component_appsecret":  "appsecret_value",
  "component_verify_ticket": "ticket_value"
}
结果参数
{
  "component_access_token": "61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA",
  "expires_in": 7200
}

其中component_verify_ticket是由微信后台推送的 ticket,在第三方平台创建审核通过后,微信服务器会向其 “授权事件接收URL” 每隔 10 分钟以 POST 的方式推送 component_verify_ticket。 接口详情请查看验证票据component_verify_ticket

步骤三、准备“授权回调 URI”,然后按照官方文档规则生成PC端的授权二维码或者移动端的授权链接,详情请看下方说明

授权链接拼接方式

版本使用场景
PC版https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx
H5版-新版https://open.weixin.qq.com/wxaopen/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect
H5版-旧版https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect
步骤四、公众号/小程序管理员扫码或者访问移动端授权链接,确认同意授权给第三方平台。(如果该第三方平台账号尚未全网发布,则需要先将要用于测试的公众号或者小程序加入第三方平台-开发资料的“授权测试公众号/小程序列表”。)
步骤五、管理员授权确认之后,授权页会自动跳转进入回调 URI,并在 URL 参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)。
步骤六、调用接口生成authorizer_access_token,然后以该token调用公众号或小程序的相关 API

Step 1: 获得authorization_code后,按照使用授权码换取公众号或小程序的接口调用凭据和授权信息 接口文档 ,调接口获取authorizer_refresh_token

POST https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=COMPONENT_ACCESS_TOKEN
请求参数
{
"component_appid":"appid_value" ,
"authorization_code": "auth_code_value"
}
结果参数
{
  "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
        }
      }
    ]
  }
}

Step 2: 获得authorizer_refresh_token后,按照获取/刷新授权公众号或小程序的接口调用凭据 接口文档 ,调接口获取authorizer_access_token

请求地址
POST https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=COMPONENT_ACCESS_TOKEN
请求参数
{
  "component_appid": "appid_value",
  "authorizer_appid": "auth_appid_value",
  "authorizer_refresh_token": "refresh_token_value"
}
结果参数
{
  "authorizer_access_token": "some-access-token",
  "expires_in": 7200,
  "authorizer_refresh_token": "refresh_token_value"
}

注意: authorizer_access_token 有效期为 2 小时,开发者需要缓存 authorizer_access_token,避免获取/刷新接口调用令牌的 API 调用触发每日限额

第三阶段 代公众号(小程序)调用接口/代公众号网页授权

3.1 第三方平台代公众号/小程序调用接口指的是,第三方平台在获得公众号/小程序管理员的授权之后,第三方平台则可以以公众号/小程序的身份调用已获得权限的接口。
如何代商家调用接口
简单可以理解为公众号和小程序的api,服务商都可以调用,只是服务商调用的时候要使用authorizer_access_token,而不是access_token。

3.2 代公众号发起网页授权

参考文档 代公众号发起网页授权

注:网页授权不需要上面授权成功后获取的authorizer_access_token

附 注意点:

1.授权二维码,推荐使用授权链接H5的方式,放在公众号让需要授权的商家直接点击该链接生成。 如使用PC端链接,非直接拼接就可以使用, 微信会判断上游refer为同一一级域名,需将其放置一级域名下的PC网页。
2.加解密
参考:消息加解密技术介绍
异常 java.security.InvalidKeyException:illegal Key Size 的解决方案:在官方网站下载 JCE 无限制权限策略文件。
3. 网页授权请求CODE时报错“redirect_uri域名与后台配置不一致”
第三方平台在代公众号做网页授权时需要配置公众号开发域名, 同时需要将校验文件下载并放置在域名根目录下。

参考:

  1. 开发平台文档参考
  2. 授权流程文档参考
  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接入第三方平台的openapi是通过获取access_token和openid来实现的。首先,你需要申请开发者账号并创建应用,获得一组AppId和AppKey。然后,使用这些凭证去获取access_token和openid。access_token是访问第三方平台开放接口的令牌,而openid是用户在第三方平台的唯一标识。获取了这些凭证后,你就可以使用openapi来访问或修改用户信息了。具体的流程可能会因不同的第三方平台而有所差异,比如微信和支付宝的接入条件不同,但总体上都是基于这些凭证来进行操作的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [海康iSC平台测试第三方对接接收事件工具](https://download.csdn.net/download/weixin_47671482/13777744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑](https://download.csdn.net/download/weixin_38613154/13734050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot项目接入支付宝第三方登录](https://blog.csdn.net/qq_41057885/article/details/105789612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值