> 微信公众号开发手册 > 第三方开发者模式

第三方开发者模式

第三方开发者模式

更新通知

版本号 更新内容 更新时间
V1.0

第三方代制模式,支持第三方为子商户代创建会员卡

2016-3-20
     V1.1

  第三方代制模式,支持开发者创建有app_id的子商户,创建有app_id的子商户卡券时,领卡页面及卡券详情页支持关联配置子商户公众号,但卡券数据仍归属第三方账号

     2016-4-28

     V1.2

第三方开发者代制(有公众号模式)名称逐步规范为“第三方强授权模式”;

第三方开发者代制(无公众号模式)名称逐步规范为“第三方代制模式”;

第三方普通授权模式、强授权模式、代制模式,统称第三方开发者模式。

      2016-5-17











第三方开发者模式

第三方开发者模式

1、具备认证公众号的商家,可用商家自己公众号申请卡券功能后,通过微信开放平台“公众号登陆授权”授权给开发者,代为开发和应用卡券功能,卡券数据及会员归属在商家自己公众号下。该模式简称为“普通授权”,无额外开发接口,参考卡券整套基础接口即可。

2、针对没有公众号或未认证的公众号,或者有认证公众号但不想自己运营公众号的商家,为了降低商户接入成本,可由第三方背书接入。子商户将卡券制作权限授权给开发者所在企业,由开发者所在企业为子商户作为信用背书,并可以帮助 没有能力制作卡券的商户制作卡券。

目前,这种降低商户门槛,由第三方背书接入的开发者模式分为:第三方代制模式(查看介绍及指引文档)和第三方强授权模式(查看介绍及指引文档)。这两种模式需额外接口。参考如下接口文档。

上传logo接口获取。该logo将在制券时填入并显示在卡券页面上 protocol String(36) mdasdfkl : 授权函ID,即通过上传临时素材接口上传授权函后获得的meida_id end_time unsigned int 15300000 授权函有效期截止时间(东八区时间,单位为秒),需要与提交的扫描件一致 primary_category_id int 2 一级类目id,可以通过本文档中接口查询 secondary_category_id int 2 二级类目id,可以通过本文档中接口查询 agreement_media_id string(36) 2343343424 营业执照或个体工商户营业执照彩照或扫描件 operator_media_id string(36) 2343343424 营业执照内登记的经营者身份证彩照或扫描件


备注:授权函请在《第三方代制模式指引文档》内下载,手填并加盖鲜章后,上传彩色扫描件或彩照。

1、授权函必须加盖企业公章,或个体户店铺章、发票专用章、财务章、合同章等具备法律效力的盖章,不可使用个人私章;

2、若子商户是个体工商户,且无上述公章,授权函可用个体工商户经营者手印代替公章,且须同时额外上传《个体工商户营业执照》及该执照内登记的经营者的身份证彩照。(本方案仅适用于子商户是个体工商户,且无公章的场景。其他场景必须在授权函加盖公章)

返回数据

{
"info": {
 "merchant_id": 12,
 "app_id":"xxxxxxxxxxxxx",
 "create_time": 1438790559,
 "update_time": 1438790559,
 "brand_name": "aaaaaa",
 "logo_url": "http://mmbiz.xxxx",
 "status": "CHECKING",
 "begin_time": 1438790559,
 "end_time": 1438990559,
 "primary_category_id": 1,
 "secondary_category_id": 101
}
}

特别注意:

参数名 描述
merchant_id 子商户id,对于一个母商户公众号下唯一
create_time 子商户信息创建时间
update_time 子商户信息更新时间
brand_name 子商户名称(12个汉字内),该名称将在制券时填入并显示在卡券页面上。
logo_url 子商户logo,可通过上传logo接口获取。该logo将在制券时填入并显示在卡券页面上
status 子商户状态,"CHECKING" 审核中, "APPROVED" , 已通过;"REJECTED"被驳回, "EXPIRED"协议已过期
bengin_time 创建时间(非协议开始时间)
end_time 授权函有效期截止时间(东八区时间,单位为秒)
primary_category_id 子商户一级类目
secondary_category_id 子商户二级类目

若子商户资料通过微信公众平台提交,可在微信公众平台卡券功能-子商户管理-子商户详情里查看子商户ID,或通过子商户创建接口返回子商户ID,或通过子商户信息拉取接口获取子商户ID。

上传logo接口获取。该logo将在制券时填入并显示在卡券页面上 protocol String(36) mdasdfkl : 授权函ID ,即通过上传临时素材接口上传授权函后获得的meida_id end_time unsigned int 15300000 授权函有效期截止时间(东八区时间,单位为秒),需要与提交的扫描件一致 agreement_media_id string(36) dhskdjklfjk 营业执照或个体工商户营业执照彩照或扫描件 operator_media_id string(36) dhskdjklfjk 营业执照内登记的经营者身份证彩照或扫描件 primary_category_id int 2 一级类目id,可以通过本文档中接口查询 secondary_category_id int 2 二级类目id,可以通过本文档中接口查询

返回数据

{
"info": {
 "merchant_id": 12,
 "create_time": 1438790559,
 "update_time": 1438790559,
 "brand_name": "aaaaaa",
 "logo_url": "http://mmbiz.xxxx",
 "status": "CHECKING",
 "begin_time": 1438790559,
 "end_time": 1438990559,
 "primary_category_id": 1,
 "secondary_category_id": 101
 }
}
参数名 描述
merchant_id 子商户id,对于一个母商户公众号下唯一。创建卡券时需填入该id号,字段结构如下:

base_info:{sub_merchant_info:{merchant_id:}},详情见创建卡券接口

create_time 子商户信息创建时间
update_time 子商户信息更新时间
brand_name 子商户名称(12个汉字内),该名称将在制券时填入并显示在卡券页面上。
logo_url 子商户logo,可通过上传logo接口获取。该logo将在制券时填入并显示在卡券页面上
status 子商户状态,"CHECKING" 审核中, "APPROVED" , 已通过;"REJECTED"被驳回, "EXPIRED"协议已过期
bengin_time 创建时间(非协议开始时间)
end_time 授权函有效期截止时间(东八区时间,单位为秒)
primary_category_id 子商户一级类目
secondary_category_id 子商户二级类目

特别注意:

若子商户资料通过微信公众平台提交,可在微信公众平台卡券功能-子商户管理-子商户详情里查看子商户ID,或通过子商户创建接口返回子商户ID,或通过子商户信息拉取接口获取子商户ID。

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318587&lang=zh_CN

3.强授权,即公众号本身无某接口或业务的权限,但第三方获取了该接口或业务的权限后,通过强授权过程,公众号也额外获得该权限。

4.强授权过程变更2个API,并增加了1个第三方平台确认授权的API。api_query_auth, 增加返回字段:need_confirm, already_confirm, 分别表示是否需要确认,是否已经确认。api_getauthorizer_info,增加返回字段:need_confirm, already_confirm, 分别表示是否需要确认,是否已经确认。api_confirm_authorization, 第三方平台确认授权API。

注意: 若子商户公众号本身有卡券功能,不用调用强授权确认接口,直接可调用卡券接口。 建议在进行强授权接口确认前,通过普通授权接口内的“5、获取授权方的账户信息“接口查询该公众号是否具备“卡券功能”。

【强授权权限集,必须调接口进行授权确认,才能真正获得强授权特性】

2.10.1 使用授权码换取公众号的授权信息

接口说明

该API用于使用授权码换取授权公众号的授权信息,并换取authorizer_access_token和authorizer_refresh_token。 授权码的获取,需要在用户在第三方平台授权页中完成授权流程后,在回调URI中通过URL参数提供给第三方平台方。

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=TOKEN

参数说明

参数 是否必须 说明
access_token 调用接口凭证
POST数据 Json数据

POST数据示例

{  "component_appid":"appid_value",  "authorization_code": "auth_code_value" }

字段说明

参数名 描述
component_appid 第三方平台appid
authorization_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},confirm_info”:{"need_confirm":      1,"already_confirm":0}}, 
 {"funcscope_category": {"id": 2},confirm_info”:{"need_confirm": 1,"already_confirm":0}}, 
 {"funcscope_category": {"id": 50},confirm_info”:{"need_confirm": 1,"already_confirm":1}}
]
}
参数名 描述
authorization_info 授权信息
authorization_appid 授权方appid
authorizer_access_token 授权方令牌(在授权的公众号具备API权限时,才有此返回值)。
expires_in 有效期(在授权的公众号具备API权限时,才有此返回值)
authorizer_refresh_token 刷新令牌(在授权的公众号具备API权限时,才有此返回值),刷新令牌主要用于公众号第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。 一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌
func_info 公众号授权给开发者的权限集列表(请注意,当出现用户已经将消息与菜单权限集授权给了某个第三方,再授权给另一个第三方时,由于该权限集是互斥的,后一个第三方的授权将去除此权限集,开发者可以在返回的func_info信息中验证这一点,避免信息遗漏), id位对应的权限集编号。 confirm_info是强授权相关字段。 其中need_confirm:是否需要第三方平台确认(0,不需确认,1,需要认), already_confirm:是否已经确认。(0,未确认,1,已经确认)。
funcscope_category_id 权限集说明
1 消息与菜单权限集
2 用户管理权限集
3 账号管理权限集
4 网页授权权限集
5 微信小店权限集
6 多客服权限集
7 业务通知权限集
8 微信卡券权限集
9 扫一扫权限集
10 Wi-Fi权限集
11 素材管理权限集
12 摇周边权限集
13 离线数据权限集

2.10.2 确认授权

接口说明

该API用于使用授权码换取授权公众号的授权信息,并换取authorizer_access_token和authorizer_refresh_token。 授权码的获取,需要在用户在第三方平台授权页中完成授权流程后,在回调URI中通过URL参数提供给第三方平台方。

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/ cgi-bin/component/api_confirm_authorization?component_access_token =TOKEN

参数说明

参数 是否必须 说明
access_token 调用接口凭证
POST数据 Json数据

POST数据示例

{  "component_appid":"appid_value",  "authorizer_appid": "authorizer_appid_value",  "funcscope_category_id":8,  "confirm_value": 1 }

字段说明

参数名 描述 必填
component_appid 第三方平台appid
authorizer_appid 授权方appid
funscope_category_id 授权集id
confirm_value 是否确认,1为确认,2为取消

返回数据

{  "errcode":xxxx,  "errmsg":"xxxx" }
参数名 描述
errcode 错误码,0为正常。
errmsg 错误信息。

2.10.3 获取授权方的账户信息

接口说明

该API用于获取授权方的公众号基本信息,包括头像、昵称、帐号类型、认证类型、微信号、原始ID和二维码图片URL。 需要特别记录授权方的帐号类型,在消息及事件推送时,对于不具备客服接口的公众号,需要在5秒内立即响应;而若有客服接口,则可以选择暂时不响应,而选择后续通过客服接口来发送消息触达粉丝。

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/ cgi-bin/component/api_get_authorizer_info?component_access_token=TOKEN

参数说明

参数 是否必须 说明
access_token 调用接口凭证
POST数据 Json数据

POST数据示例

{  ”component_appid":"appid_value" ,  "authorizer_appid": "auth_appid_value"  }

字段说明

参数名 描述 必填
component_appid 第三方平台appid
authorizer_appid 授权方appid

返回数据

返回结果示例

{
  "authorizer_info": {
  "nick_name": "微信SDK Demo Special", 
  "head_img": "http://wx.qlogo.cn/mmopen/GPyw0pGicibl5Eda4GmSSbTguhjg9LZjumHmVjybjiaQXnE9XrXEts6ny9Uv4Fk6hOScWRDibq1fI0WOkSaAjaecNTict3n6EjJaC/0", 
  "service_type_info": { "id": 2 }, 
  "verify_type_info": { "id": 0 },
  "user_name":"gh_eb5e3a772040",
  "alias":"paytest01"
}, 
  "qrcode_url":"URL",    
  "authorization_info": {
  "appid": "wxf8b4f85f3a794e77", 
  "func_info": [
  {"funcscope_category": {"id": 1},confirm_info”:{"need_confirm": 1,"already_confirm":0}}, 
  {"funcscope_category": {"id": 2},confirm_info”:{"need_confirm": 1,"already_confirm":0}}, 
  {"funcscope_category": {"id":,8},confirm_info”:{"need_confirm": 1,"already_confirm":1}}
]
}
}
参数名 描述
errcode 错误码,0为正常。
errmsg 错误信息。
authorizer_info 授权方昵称。
head_img 授权方头像
service_type_info 授权方公众号类型,0代表订阅号,1代表由历史老帐号升级后的订阅号,2代表服务号
verify_type_info 授权方认证类型,-1代表未认证,0代表微信认证,1代表新浪微博认证,2代表腾讯微博认证,3代表已资质认证通过但还未通过名称认证,4代表已资质认证通过、还未通过名称认证,但通过了新浪微博认证,5代表已资质认证通过、还未通过名称认证,但通过了腾讯微博认证
user_name 授权方公众号原始id
alias 授权方公众号设置的微信号,可能为空。
qrcode_url 二维码图片链接,开发者最好保存
authorization_info 授权信息
appid 授权方appid
func_info 参见api_query_auth的返回结果func_info说明

2.11 错误码说明

错误码 描述
-1 系统错误。
-1000 系统错误
61017 子商户未发起授权,不能进行授权确认
61020 提交的参数错误,即不包含在接口字段范围内
61022 审核中和审核通过的商户资料均不能重提。仅审核驳回可重提
43014 母商户资料未提交、未审核或审核未通过(母商户资料提交并审核通过后,才能提交子商户资料)
41004 appid为空
40013 无效的appid,请检查提交的子商户账号是否正确。
40007 无效的media_id
61019 非强授权,不能用confirm确认
61018 已经confirm确认,无需重复确认
61021 尚未进行资料提交,不可confirm
43016 第三方平台账号需要完成认证
40035 不符合的图片大小

上一篇:
下一篇: