微信小程序API接口与插件大全
插件管理权限集用于第三方代小程序管理插件,具体包括:添加插件、查询已添加的插件及删除插件。具体接口列表如下:
1.申请使用插件
2.查询已添加的插件
3.删除已添加的插件
1.申请使用插件接口
此接口用于小程序向插件开发者发起使用插件的申请。
请求方式: POST(请使用https协议)
https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN
POST数据示例
参数说明
参数 | 说明 |
---|---|
action | 填写apply |
plugin_appid | 插件appid |
返回说明
参数说明
参数 | 说明 |
---|---|
errcode | 错误码 |
errmsg | 错误信息 |
错误码说明
错误码 | 说明 |
---|---|
0 | 成功 |
-1 | 系统错误 |
89236 | 该插件不能申请 |
89237 | 已经添加该插件 |
89238 | 申请或使用的插件已经达到上限 |
89239 | 该插件不存在 |
2. 查询已添加的插件
此接口用于查询小程序目前已添加的插件(包括确认中、已通过、已拒绝、已超时状态)
请求方式: POST(请使用https协议)
https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN
POST数据示例:
参数说明
参数 | 说明 |
---|---|
action | 填写list |
返回说明(正常时返回的json示例)
参数说明
参数 | 说明 |
---|---|
errcode | 错误码 |
errmsg | 错误信息 |
plugin_list | 申请或使用中的插件列表 |
appid | 插件appid |
status | 插件状态(1:申请中,2:申请通过,3:被拒绝;4:已超时) |
nickname | 插件昵称 |
headimgurl | 插件头像 |
错误码说明
错误码 | 说明 |
---|---|
0 | 成功 |
-1 | 系统错误 |
3. 删除已添加的插件
此接口用户小程序删除当前已添加的插件(包括已通过和已拒绝)
请求方式: POST(请使用https协议)
https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN
POST数据示例
参数说明
参数 | 说明 |
---|---|
action | 填写list |
plugin_appid | 插件appid |
返回说明(正常时返回的json示例)
错误码说明
错误码 | 说明 |
---|---|
0 | 成功 |
-1 | 系统错误 |
89243 | 该申请为“待确认”状态,不可删除 |
89244 | 不存在该插件appid |
下面对其进行详细介绍:
步骤1:第三方平台方获取预授权码(pre_auth_code)
预授权码是第三方平台方实现授权托管的必备信息,可以通过本文
步骤2:引入用户进入授权页
第三方平台方可以在自己的网站:中放置“微信公众号授权”或者“小程序授权”的入口,引导公众号和小程序管理员进入授权页。
授权页网址为:
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component\_appid=xxxx&pre\_auth\_code=xxxxx&redirect\_uri=xxxx&auth\_type=xxx。
参数 | 是否必填 | 参数说明 |
---|---|---|
component_appid | 是 | 第三方平台方appid |
pre_auth_code | 是 | 预授权码 |
redirect_uri | 是 | 回调URI |
auth_type | 否 | 要授权的帐号类型, 1则商户扫码后,手机端仅展示公众号、2表示仅展示小程序,3表示公众号和小程序都展示。如果为未制定,则默认小程序和公众号都展示。第三方平台开发者可以使用本字段来控制授权的帐号类型。 |
步骤3:用户确认并同意登录授权给第三方平台方
用户进入第三方平台授权页后,需要确认并同意将自己的公众号或小程序授权给第三方平台方,完成授权流程。
步骤4:授权后回调URI,得到授权码(authorization_code)和过期时间
授权流程完成后,授权页会自动跳转进入回调URI,并在URL参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)
步骤5:利用授权码调用公众号或小程序的相关API
在得到授权码后,第三方平台方可以使用授权码换取授权公众号或小程序的接口调用凭据(authorizer_access_token,也简称为令牌),再通过该接口调用凭据,按照公众号开发者文档或小程序开发文档的说明,去调用公众号或小程序相关API。
(能调用哪些API,取决于用户将哪些权限集授权给了第三方平台方,也取决于公众号或小程序自身拥有哪些接口权限),使用JS SDK等能力。具体请见【公众号第三方平台的接口说明】
下面对各API和机制进行介绍(特别注意,所有API调用需要验证调用者IP地址。只有在第三方平台申请时填写的白名单IP地址列表内的IP地址,才能合法调用,其他一律拒绝):
功能 | API的作用 |
---|---|
1、推送component_verify_ticket | 出于安全考虑,在第三方平台创建审核通过后,微信服务器 每隔10分钟会向第三方的消息接收地址推送一次component_verify_ticket,用于获取第三方平台接口调用凭据。 |
2、获取第三方平台component_access_token | 第三方平台通过自己的component_appid(即在微信开放平台管理中心的第三方平台详情页中的AppID和AppSecret)和component_appsecret,以及component_verify_ticket(每10分钟推送一次的安全ticket)来获取自己的接口调用凭据(component_access_token) |
3、获取预授权码pre_auth_code | 第三方平台通过自己的接口调用凭据(component_access_token)来获取用于授权流程准备的预授权码(pre_auth_code) |
4、使用授权码换取公众号或小程序的接口调用凭据和授权信息 | 通过授权码和自己的接口调用凭据(component_access_token),换取公众号或小程序的接口调用凭据(authorizer_access_token和用于前者快过期时用来刷新它的authorizer_refresh_token)和授权信息(授权了哪些权限等信息) |
5、获取(刷新)授权公众号或小程序的接口调用凭据 | 通过authorizer_refresh_token来刷新公众号或小程序的接口调用凭据 |
6、获取授权公众号或小程序基本信息 | 在需要的情况下,第三方平台可以获取公众号或小程序的帐号基本信息,包括帐号名、帐号类型等 |
7、获取授权方的选项设置信息 | 在需要的情况下,第三方平台可以获取公众号或小程序的选项设置,包括地理位置上报设置、语音识别开关设置、微信多客服功能开关设置 |
8、设置授权方的选项信息 | 在需要的情况下,第三方平台可以修改上述公众号或小程序的选项设置,包括地理位置上报设置、语音识别开关设置、微信多客服功能开关设置 |
9、推送授权相关通知 | 当公众号或小程序对第三方进行授权、取消授权、更新授权时,将通过事件推送告诉开发者 |
接下来:代替公众号或小程序调用接口 | 取在完成授权后,第三方平台可通过公众号或小程序的接口调用凭据(authorizer_access_token)来代替它调用接口,具体请见“代公众号实现业务”和“代小程序实现业务”文件夹中的内容 |
1、推送component_verify_ticket协议
在第三方平台创建审核通过后,微信服务器会向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket。第三方平台方在收到ticket推送后也需进行解密(详细请见【消息加解密接入指引】),接收到后必须直接返回字符串success。
POST数据示例
字段说明
字段名称 | 字段描述 |
---|---|
AppId | 第三方平台appid |
CreateTime | 时间戳 |
InfoType | component_verify_ticket |
ComponentVerifyTicket | Ticket内容 |
注意:
component_verify_ticket的有效时间较component_access_token更长,建议保存最近可用的component_verify_ticket,在component_access_token过期之前使用该ticket进行更新,避免出现因为ticket接收失败而无法更新component_access_token的情况。
2、获取第三方平台component_access_token
第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
component_appsecret | 第三方平台appsecret |
component_verify_ticket | 微信后台推送的ticket,此ticket会定时推送,具体请见本页的推送说明 |
返回结果示例
{"component_access_token":"61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA", "expires_in":7200}
结果参数说明
参数 | 说明 |
---|---|
component_access_token | 第三方平台access_token |
expires_in | 有效期 |
3、获取预授权码pre_auth_code
该API用于获取预授权码。预授权码用于公众号或小程序授权时的第三方平台方安全验证。
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台方appid |
返回结果示例
结果参数说明
参数 | 说明 |
---|---|
pre_auth_code | 预授权码 |
expires_in | 有效期,为10分钟 |
4、使用授权码换取公众号或小程序的接口调用凭据和授权信息
该API用于使用授权码换取授权公众号或小程序的授权信息,并换取authorizer_access_token和authorizer_refresh_token。 授权码的获取,需要在用户在第三方平台授权页中完成授权流程后,在回调URI中通过URL参数提供给第三方平台方。请注意,由于现在公众号或小程序可以自定义选择部分权限授权给第三方平台,因此第三方平台开发者需要通过该接口来获取公众号或小程序具体授权了哪些权限,而不是简单地认为自己声明的权限就是公众号或小程序授权的权限。
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorization_code | 授权code,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明 |
返回结果示例
结果参数说明
参数 | 说明 |
---|---|
authorization_info | 授权信息 |
authorizer_appid | 授权方appid |
authorizer_access_token | 授权方接口调用凭据(在授权的公众号或小程序具备API权限时,才有此返回值),也简称为令牌 |
expires_in | 有效期(在授权的公众号或小程序具备API权限时,才有此返回值) |
authorizer_refresh_token | 接口调用凭据刷新令牌(在授权的公众号具备API权限时,才有此返回值),刷新令牌主要用于第三方平台获取和刷新已授权用户的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、获取(刷新)授权公众号或小程序的接口调用凭据(令牌)
该API用于在授权方令牌(authorizer_access_token)失效时,可用刷新令牌(authorizer_refresh_token)获取新的令牌。请注意,此处token是2小时刷新一次,开发者需要自行进行token的缓存,避免token的获取次数达到每日的限定额度。缓存方法可以参考:http://mp.weixin.qq.com/wiki/2/88b2bf1265a707c031e51f26ca5e6512.html
当换取authorizer_refresh_token后建议保存。
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorizer_appid | 授权方appid |
authorizer_refresh_token | 授权方的刷新令牌,刷新令牌主要用于第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌 |
结果参数说明
参数 | 说明 |
---|---|
authorizer_access_token | 授权方令牌 |
expires_in | 有效期,为2小时 |
authorizer_refresh_token | 刷新令牌 |
6、获取授权方的帐号基本信息
该API用于获取授权方的基本信息,包括头像、昵称、帐号类型、认证类型、微信号、原始ID和二维码图片URL。
需要特别记录授权方的帐号类型,在消息及事件推送时,对于不具备客服接口的公众号,需要在5秒内立即响应;而若有客服接口,则可以选择暂时不响应,而选择后续通过客服接口来发送消息触达粉丝。
(1)公众号获取方法如下:
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorizer_appid | 授权方appid |
返回结果示例
结果参数说明
参数 | 说明 |
---|---|
nick_name | 授权方昵称 |
head_img | 授权方头像 |
service_type_info | 授权方公众号类型,0代表订阅号,1代表由历史老帐号升级后的订阅号,2代表服务号 |
verify_type_info | 授权方认证类型,-1代表未认证,0代表微信认证,1代表新浪微博认证,2代表腾讯微博认证,3代表已资质认证通过但还未通过名称认证,4代表已资质认证通过、还未通过名称认证,但通过了新浪微博认证,5代表已资质认证通过、还未通过名称认证,但通过了腾讯微博认证 |
user_name | 授权方公众号的原始ID |
principal_name | 公众号的主体名称 |
alias | 授权方公众号所设置的微信号,可能为空 |
business_info | 用以了解以下功能的开通状况(0代表未开通,1代表已开通): open_store:是否开通微信门店功能 open_scan:是否开通微信扫商品功能 open_pay:是否开通微信支付功能 open_card:是否开通微信卡券功能 open_shake:是否开通微信摇一摇功能 |
qrcode_url | 二维码图片的URL,开发者最好自行也进行保存 |
authorization_info | 授权信息 |
authorization_appid | 授权方appid |
func_info | 公众号授权给开发者的权限集列表,ID为1到15时分别代表: 1.消息管理权限 2.用户管理权限 3.帐号服务权限 4.网页服务权限 5.微信小店权限 6.微信多客服权限 7.群发与通知权限 8.微信卡券权限 9.微信扫一扫权限 10.微信连WIFI权限 11.素材管理权限 12.微信摇周边权限 13.微信门店权限 14.微信支付权限 15.自定义菜单权限 请注意: 1)该字段的返回不会考虑公众号是否具备该权限集的权限(因为可能部分具备),请根据公众号的帐号类型和认证情况,来判断公众号的接口权限。 |
(2)小程序获取方法如下
接口调用请求说明
POST数据示例:
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorizer_appid | 授权方appid |
返回结果示例:
返回参数说明
参数 | 说明 |
---|---|
nick_name | 授权方昵称 |
head_img | 授权方头像 |
service_type_info | 默认为0 |
verify_type_info | 授权方认证类型,-1代表未认证,0代表微信认证 |
user_name | 小程序的原始ID |
signature | 帐号介绍 |
principal_name | 小程序的主体名称 |
business_info | 用以了解以下功能的开通状况(0代表未开通,1代表已开通): open_store:是否开通微信门店功能 open_scan:是否开通微信扫商品功能 open_pay:是否开通微信支付功能 open_card:是否开通微信卡券功能 open_shake:是否开通微信摇一摇功能 |
qrcode_url | 二维码图片的URL,开发者最好自行也进行保存 |
authorization_info | 授权信息 |
authorization_appid | 授权方appid |
miniprograminfo | 可根据这个字段判断是否为小程序类型授权 |
network | 小程序已设置的各个服务器域名 |
func_info | 小程序授权给开发者的权限集列表,ID为17到19时分别代表: 17.帐号管理权限 18.开发管理权限 19.客服消息管理权限 请注意: 1)该字段的返回不会考虑小程序是否具备该权限集的权限(因为可能部分具备)。 |
7、获取授权方的选项设置信息
该API用于获取授权方的公众号或小程序的选项设置信息,如:地理位置上报,语音识别开关,多客服开关。注意,获取各项选项设置信息,需要有授权方的授权,详见权限集说明。
接口调用请求说明
POST数据示例
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorizer_appid | 授权公众号或小程序的appid |
option_name | 选项名称 |
返回结果示例
结果参数说明
参数 | 说明 |
---|---|
authorizer_appid | 授权公众号或小程序的appid |
option_name | 选项名称 |
option_value | 选项值 |
8、设置授权方的选项信息
该API用于设置授权方的公众号或小程序的选项信息,如:地理位置上报,语音识别开关,多客服开关。注意,设置各项选项设置信息,需要有授权方的授权,详见权限集说明。
接口调用请求说明
POST数据示例
请求参数说明
参数 | 说明 |
---|---|
component_appid | 第三方平台appid |
authorizer_appid | 授权公众号或小程序的appid |
option_name | 选项名称 |
option_value | 设置的选项值 |
返回结果示例
结果参数说明
参数 | 说明 |
---|---|
errcode | 错误码 |
errmsg | 错误信息 |
选项名和选项值表
option_name | option_value | 选项值说明 |
---|---|---|
location_report(地理位置上报选项) | 0 | 无上报 |
1 | 进入会话时上报 | |
2 | 每5s上报 | |
voice_recognize(语音识别开关选项) | 0 | 关闭语音识别 |
1 | 开启语音识别 | |
customer_service(多客服开关选项) | 0 | 关闭多客服 |
1 | 开启多客服 |
9、推送授权相关通知
当公众号对第三方平台进行授权、取消授权、更新授权后,微信服务器会向第三方平台方的授权事件接收URL(创建第三方平台时填写)推送相关通知。
POST数据示例(授权成功通知)
POST数据示例(取消授权通知)
POST数据示例(授权更新通知)
第三方平台方在收到授权相关通知后也需进行解密(详细请见【消息加解密接入指引】),接收到后之后只需直接返回字符串success。为了加强安全性,postdata中的xml将使用服务申请时的加解密key来进行加密,具体请见【公众号第三方平台的加密解密技术方案】
字段说明:
字段名称 | 字段描述 |
---|---|
AppId | 第三方平台appid |
CreateTime | 时间戳 |
InfoType | unauthorized是取消授权,updateauthorized是更新授权,authorized是授权成功通知 |
AuthorizerAppid | 公众号或小程序 |
AuthorizationCode | 授权码,可用于换取公众号的接口调用凭据,详细见上面的说明 |
AuthorizationCodeExpiredTime | 授权码过期时间 |
PreAuthCode | 预授权码 |