微信开发转 | 微信小程序最新API接口与插件大全微信小程序API接口与插件大全 下面对其进行详细介绍: 预授权码是第三方平台方实现授权托管的必备信息,可以通过本文 第三方平台方可以在自己的网站:中放置“微信公众号授权”或者“小程序授权”的入口,引导公众号和小程序管理员进入授权页。 https://mp.weixin.qq.com/cgi-bin/componentloginpage?component\_作者王明昌发布时间2019-07-08最后更新2019-07-08微信小程序API接口与插件大全 插件管理权限集用于第三方代小程序管理插件,具体包括:添加插件、查询已添加的插件及删除插件。具体接口列表如下: 1.申请使用插件 2.查询已添加的插件 3.删除已添加的插件 1.申请使用插件接口 此接口用于小程序向插件开发者发起使用插件的申请。 请求方式: POST(请使用https协议) https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN POST数据示例 复制{ "action":"apply", "plugin_appid":"aaaa", }参数说明参数说明action填写applyplugin_appid插件appid返回说明复制{ "errcode":0, "errmsg":"ok", }参数说明参数说明errcode错误码errmsg错误信息错误码说明错误码说明0成功-1系统错误89236该插件不能申请89237已经添加该插件89238申请或使用的插件已经达到上限89239该插件不存在2. 查询已添加的插件 此接口用于查询小程序目前已添加的插件(包括确认中、已通过、已拒绝、已超时状态) 请求方式: POST(请使用https协议) https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN POST数据示例: 复制{ "action":"list", }参数说明参数说明action填写list返回说明(正常时返回的json示例)复制{ "errcode":0, "errmsg":"ok", "plugin_list":[ "appid":"aaaa", "status":1, "nickname":"插件昵称", "headimgurl":"http://plugin.qq.com", ], }参数说明参数说明errcode错误码errmsg错误信息plugin_list申请或使用中的插件列表appid插件appidstatus插件状态(1:申请中,2:申请通过,3:被拒绝;4:已超时)nickname插件昵称headimgurl插件头像错误码说明错误码说明0成功-1系统错误 3. 删除已添加的插件 此接口用户小程序删除当前已添加的插件(包括已通过和已拒绝) 请求方式: POST(请使用https协议) https://api.weixin.qq.com/wxa/plugin?access_token=TOKEN POST数据示例复制{ "action":"unbind" "plugin_appid":"aaaa" }参数说明参数说明action填写listplugin_appid插件appid返回说明(正常时返回的json示例)复制{ "errcode":0, "errmsg":"ok", }错误码说明错误码说明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是第三方平台方appidpre_auth_code是预授权码redirect_uri是回调URIauth_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数据示例复制 1413192605 字段说明字段名称字段描述AppId第三方平台appidCreateTime时间戳InfoTypecomponent_verify_ticketComponentVerifyTicketTicket内容注意: 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分)再进行刷新。接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_component_tokenPOST数据示例:复制{ "component_appid":"appid_value" , "component_appsecret": "appsecret_value", "component_verify_ticket": "ticket_value" }请求参数说明参数说明component_appid第三方平台appidcomponent_appsecret第三方平台appsecretcomponent_verify_ticket微信后台推送的ticket,此ticket会定时推送,具体请见本页的推送说明返回结果示例复制{"component_access_token":"61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA", "expires_in":7200}结果参数说明参数说明component_access_token第三方平台access_tokenexpires_in有效期3、获取预授权码pre_auth_code该API用于获取预授权码。预授权码用于公众号或小程序授权时的第三方平台方安全验证。接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxxPOST数据示例:复制{ "component_appid":"appid_value" }请求参数说明参数说明component_appid第三方平台方appid返回结果示例复制{"pre_auth_code":"Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw","expires_in":600}结果参数说明参数说明pre_auth_code预授权码expires_in有效期,为10分钟4、使用授权码换取公众号或小程序的接口调用凭据和授权信息该API用于使用授权码换取授权公众号或小程序的授权信息,并换取authorizer_access_token和authorizer_refresh_token。 授权码的获取,需要在用户在第三方平台授权页中完成授权流程后,在回调URI中通过URL参数提供给第三方平台方。请注意,由于现在公众号或小程序可以自定义选择部分权限授权给第三方平台,因此第三方平台开发者需要通过该接口来获取公众号或小程序具体授权了哪些权限,而不是简单地认为自己声明的权限就是公众号或小程序授权的权限。接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxxxPOST数据示例:复制{ "component_appid":"appid_value" , "authorization_code": "auth_code_value" }请求参数说明参数说明component_appid第三方平台appidauthorization_code授权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 } } ] }}结果参数说明参数说明authorization_info授权信息authorizer_appid授权方appidauthorizer_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后建议保存。接口调用请求说明复制http请求方式: POST(请使用https协议) https:// api.weixin.qq.com /cgi-bin/component/api_authorizer_token?component_access_token=xxxxxPOST数据示例:复制{ "component_appid":"appid_value", "authorizer_appid":"auth_appid_value", "authorizer_refresh_token":"refresh_token_value", }请求参数说明参数说明component_appid第三方平台appidauthorizer_appid授权方appidauthorizer_refresh_token授权方的刷新令牌,刷新令牌主要用于第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌返回结果示例复制{ "authorizer_access_token": "aaUl5s6kAByLwgV0BhXNuIFFUqfrR8vTATsoSHukcIGqJgrc4KmMJ-JlKoC_-NKCLBvuU1cWPv4vDcLN8Z0pn5I45mpATruU0b51hzeT1f8", "expires_in": 7200, "authorizer_refresh_token": "BstnRqgTJBXb9N2aJq6L5hzfJwP406tpfahQeLNxX0w" }结果参数说明参数说明authorizer_access_token授权方令牌expires_in有效期,为2小时authorizer_refresh_token刷新令牌6、获取授权方的帐号基本信息该API用于获取授权方的基本信息,包括头像、昵称、帐号类型、认证类型、微信号、原始ID和二维码图片URL。需要特别记录授权方的帐号类型,在消息及事件推送时,对于不具备客服接口的公众号,需要在5秒内立即响应;而若有客服接口,则可以选择暂时不响应,而选择后续通过客服接口来发送消息触达粉丝。(1)公众号获取方法如下:接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=xxxxPOST数据示例:复制{ "component_appid":"appid_value" , "authorizer_appid": "auth_appid_value" }请求参数说明参数说明component_appid第三方平台appidauthorizer_appid授权方appid返回结果示例复制{ "authorizer_info": { "nick_name": "微信SDK Demo Special", "head_img": "http://wx.qlogo.cn/mmopen/GPy", "service_type_info": { "id": 2 }, "verify_type_info": { "id": 0 }, "user_name":"gh_eb5e3a772040", "principal_name":"腾讯计算机系统有限公司", "business_info": {"open_store": 0, "open_scan": 0, "open_pay": 0, "open_card": 0, "open_shake": 0}, "alias":"paytest01" "qrcode_url":"URL", }, "authorization_info": { "authorization_appid": "wxf8b4f85f3a794e77", "func_info": [ { "funcscope_category": { "id": 1 } }, { "funcscope_category": { "id": 2 } }, { "funcscope_category": { "id": 3 } } ] } }结果参数说明参数说明nick_name授权方昵称head_img授权方头像service_type_info授权方公众号类型,0代表订阅号,1代表由历史老帐号升级后的订阅号,2代表服务号verify_type_info授权方认证类型,-1代表未认证,0代表微信认证,1代表新浪微博认证,2代表腾讯微博认证,3代表已资质认证通过但还未通过名称认证,4代表已资质认证通过、还未通过名称认证,但通过了新浪微博认证,5代表已资质认证通过、还未通过名称认证,但通过了腾讯微博认证user_name授权方公众号的原始IDprincipal_name公众号的主体名称alias授权方公众号所设置的微信号,可能为空business_info用以了解以下功能的开通状况(0代表未开通,1代表已开通): open_store:是否开通微信门店功能 open_scan:是否开通微信扫商品功能 open_pay:是否开通微信支付功能 open_card:是否开通微信卡券功能 open_shake:是否开通微信摇一摇功能qrcode_url二维码图片的URL,开发者最好自行也进行保存authorization_info授权信息authorization_appid授权方appidfunc_info公众号授权给开发者的权限集列表,ID为1到15时分别代表: 1.消息管理权限 2.用户管理权限 3.帐号服务权限 4.网页服务权限 5.微信小店权限 6.微信多客服权限 7.群发与通知权限 8.微信卡券权限 9.微信扫一扫权限 10.微信连WIFI权限 11.素材管理权限 12.微信摇周边权限 13.微信门店权限 14.微信支付权限 15.自定义菜单权限 请注意: 1)该字段的返回不会考虑公众号是否具备该权限集的权限(因为可能部分具备),请根据公众号的帐号类型和认证情况,来判断公众号的接口权限。(2)小程序获取方法如下接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=xxxxPOST数据示例:复制{ "component_appid":"appid_value" , "authorizer_appid": "auth_appid_value" }请求参数说明参数说明component_appid第三方平台appidauthorizer_appid授权方appid返回结果示例:复制{ "authorizer_info": { "nick_name": "微信SDK Demo Special", "head_img": "http://wx.qlogo.cn/mmopen/GPy", "service_type_info": { "id": 2 }, "verify_type_info": { "id": 0 }, "user_name":"gh_eb5e3a772040", "principal_name":"腾讯计算机系统有限公司", "business_info": {"open_store": 0, "open_scan": 0, "open_pay": 0, "open_card": 0, "open_shake": 0}, "qrcode_url":"URL", "signature": "时间的水缓缓流去", "MiniProgramInfo": { "network": { "RequestDomain":["https://www.qq.com","https://www.qq.com"], "WsRequestDomain":["wss://www.qq.com","wss://www.qq.com"], "UploadDomain":["https://www.qq.com","https://www.qq.com"], "DownloadDomain":["https://www.qq.com","https://www.qq.com"], }, "categories":[{"first":"资讯","second":"文娱"},{"first":"工具","second":"天气"}], "visit_status": 0, } }, "authorization_info": { "authorization_appid": "wxf8b4f85f3a794e77", "func_info": [ { "funcscope_category": { "id": 17 } }, { "funcscope_category": { "id": 18 } }, { "funcscope_category": { "id": 19 } } ] } }返回参数说明参数说明nick_name授权方昵称head_img授权方头像service_type_info默认为0verify_type_info授权方认证类型,-1代表未认证,0代表微信认证user_name小程序的原始IDsignature帐号介绍principal_name小程序的主体名称business_info用以了解以下功能的开通状况(0代表未开通,1代表已开通): open_store:是否开通微信门店功能 open_scan:是否开通微信扫商品功能 open_pay:是否开通微信支付功能 open_card:是否开通微信卡券功能 open_shake:是否开通微信摇一摇功能qrcode_url二维码图片的URL,开发者最好自行也进行保存authorization_info授权信息authorization_appid授权方appidminiprograminfo可根据这个字段判断是否为小程序类型授权network小程序已设置的各个服务器域名func_info小程序授权给开发者的权限集列表,ID为17到19时分别代表: 17.帐号管理权限 18.开发管理权限 19.客服消息管理权限 请注意: 1)该字段的返回不会考虑小程序是否具备该权限集的权限(因为可能部分具备)。7、获取授权方的选项设置信息该API用于获取授权方的公众号或小程序的选项设置信息,如:地理位置上报,语音识别开关,多客服开关。注意,获取各项选项设置信息,需要有授权方的授权,详见权限集说明。接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/ api_get_authorizer_option?component_access_token=xxxxPOST数据示例复制{ "component_appid":"appid_value", "authorizer_appid": " auth_appid_value ", "option_name": "option_name_value" }请求参数说明参数说明component_appid第三方平台appidauthorizer_appid授权公众号或小程序的appidoption_name选项名称返回结果示例复制{ "authorizer_appid":"wx7bc5ba58cabd00f4", "option_name":"voice_recognize", "option_value":"1" }结果参数说明参数说明authorizer_appid授权公众号或小程序的appidoption_name选项名称option_value选项值8、设置授权方的选项信息该API用于设置授权方的公众号或小程序的选项信息,如:地理位置上报,语音识别开关,多客服开关。注意,设置各项选项设置信息,需要有授权方的授权,详见权限集说明。接口调用请求说明复制http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/ api_set_authorizer_option?component_access_token=xxxxPOST数据示例复制{ "component_appid":"appid_value", "authorizer_appid": " auth_appid_value ", "option_name": "option_name_value", "option_value":"option_value_value" }请求参数说明参数说明component_appid第三方平台appidauthorizer_appid授权公众号或小程序的appidoption_name选项名称option_value设置的选项值返回结果示例复制{ "errcode":0, "errmsg":"ok" }结果参数说明参数说明errcode错误码errmsg错误信息选项名和选项值表option_nameoption_value选项值说明location_report(地理位置上报选项)0无上报1进入会话时上报2每5s上报voice_recognize(语音识别开关选项)0关闭语音识别1开启语音识别customer_service(多客服开关选项)0关闭多客服1开启多客服9、推送授权相关通知当公众号对第三方平台进行授权、取消授权、更新授权后,微信服务器会向第三方平台方的授权事件接收URL(创建第三方平台时填写)推送相关通知。POST数据示例(授权成功通知)复制 第三方平台appid 1413192760 authorized 公众号appid 授权码(code) 过期时间 预授权码 POST数据示例(取消授权通知)复制 第三方平台appid 1413192760 unauthorized 公众号appid POST数据示例(授权更新通知)复制 第三方平台appid 1413192760 updateauthorized 公众号appid 授权码(code) 过期时间 预授权码 第三方平台方在收到授权相关通知后也需进行解密(详细请见【消息加解密接入指引】),接收到后之后只需直接返回字符串success。为了加强安全性,postdata中的xml将使用服务申请时的加解密key来进行加密,具体请见【公众号第三方平台的加密解密技术方案】字段说明:字段名称字段描述AppId第三方平台appidCreateTime时间戳InfoTypeunauthorized是取消授权,updateauthorized是更新授权,authorized是授权成功通知AuthorizerAppid公众号或小程序AuthorizationCode授权码,可用于换取公众号的接口调用凭据,详细见上面的说明AuthorizationCodeExpiredTime授权码过期时间PreAuthCode预授权码
2019-02-25微信接口调用返回码一览表公众号每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误。 返回码 说明 -1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 获取 access_tok
2019-03-02微信分享 demoindex.html wx.config({ debug: false, appId: '', timestamp: '', nonceStr: '', signature: '', jsApiLis
2021-11-22网站实现使用公众号信息授权登录,不用开通开放平台网站实现使用公众号信息登录,不使用开放平台 如下效果 做下记录,后续使用直接复制即可 首先在开放平台绑定域名 然后就是代码部分 使用类 use EasyWeChat\Factory; use Easy