开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开始使用
ampe
多端开发
鸿蒙
插件
插件获取与使用
插件开发
插件发布
插件管理
插件技术知识汇总
附录
安全
openid 开发指南
扩展能力
开发 > 指南 > 插件 > 插件管理 > 插件授权
收藏
订阅更新
我的文档
设置
插件授权的说明
第三方应用授权 场景下由服务商主动引导商家进行授权流程不同,小程序插件场景下的授权动作由商家在插件中心的订购行为触发。在商家订购后支付宝服务端会通过 http 协议发送一个授权消息到插件应用所配置的应用网关地址上,该授权主要为应用网关配送。请按照本文的要求正确处理该通知,处理完后可查看 插件后端开发 获取 app_auth_token
插件授权消息说明
报文示例
注意: 实际收到的是 post 请求,参数在 post body 中。
javascript
复制代码
isv_gateway_url?****&data={"headers":{"user-agent":"mozilla/4.0","content-type":"application/x-www-form-urlencoded; charset=utf-8"},"data":{"notify_type":"open_app_auth_notify","charset":"utf-8","biz_content":"{\\"notify_context\\":{\\"trigger\\":\\"appstore\\"},\\"detail\\":{\\"app_auth_token\\":\\"202004bb9d3901a7d39d4350a49fb00000000001\\",\\"user_id\\":\\"20881200000000002\\",\\"re_expires_in\\":32140800,\\"auth_time\\":1587573752655,\\"app_refresh_token\\":\\"202004bb81e2730b7ecc4295a551e00000000001\\",\\"auth_app_id\\":\\"20210000002\\",\\"app_id\\":\\"20190000000\\",\\"expires_in\\":31536000,\\"app_auth_code\\":\\"fa861f9d7032404bae53f54247000001\\"},\\"error\\":{}}","notify_time":"2020-04-23 00:42:32","sign":"****","auth_app_id":"2021000000000002","app_id":"2019000000000000","version":"1.0","sign_type":"rsa2","notify_id":"2020042300222004232009800000000007","status":"execute_auth"},"method":"post","pid":"2088500000000002","url":"https://*****/gateway.do","timeout":16000}
协议参数说明
字段名
必填
字段说明
备注
notify_id

通知校验 id,唯一标识一笔通知。
相同 notify_id 称之为同一笔通知
notify_type

通知类型
插件授权时的值固定为:open_app_auth_notify
status

业务状态
插件授权时值固定为:execute_auth
notify_time

通知发送时间
utc 8,格式为 yyyy-mm-dd hh:mm:ss。若为其它时区的服务器时间请自行转换。
charset

字符集
该字符集用于开发者对收到的报文进行验签使用
version

版本号
目前固定为 1.0,商家仅应该识别 version 参数为空或者 version=1.0 的通知报文,其它应该拒绝。
app_id

接收通知的 app_id
该 app_id 是本消息的接收方。
auth_app_id

授权业务主体的 appid
商家的 appid。
sign

签名
支付宝的签名值
sign_type

签名类型
签名算法,目前支持 rsa2 签名算法。 注意: 该参数不参与验签。
biz_content

该笔通知的业务内容
本次授权动作的详细信息。详细说明查看下文对于 biz_content 的说明。
biz_content 说明
示例如下(为了展示方便,示例对 json 展示进行了格式化处理)
detail
授权的详细信息
参数名
类型
最大长度
必填
描述
范例
app_id
string
32

被授权方应用 id,在插件授权场景下为插件的 id。
2015072100001111
auth_app_id
string
32

授权方的应用 id,在插件授权场景下指商家的 app_id。
2014072300002222
auth_time
long
20

授权发生时间(自 1970 年 1 月 1 日零点算起的毫秒数),在插件授权场景下指商家订购时触发授权的时间。通知接受方需要根据 auth_time
做令牌幂等。
1491746302568
app_auth_code
string
32

(兼容用)应用授权码,该参数提供给开发者用于兼容开发者页面授权的换码逻辑,新接入方推荐直接使用报文中的 app_auth_token 即可。
252a889e49af4e6cbtests17ae053x80
app_auth_token
string
40

应用授权令牌。
201603bb6e8df928test473d9d4c94d57d5c0x00
expires_in
string
16

(废弃字段)目前应用授权访问令牌的有效期为永久(商家主动取消授权的情况下仍未将令牌置为无效)。刷新机制继续保留,开发者根据自己的存储安全性自行决定刷新时间。
123456
app_refresh_token
string
40

刷新令牌。开发者可以通过调用 alipay.open.auth.token.app
接口进行 app_auth_token 的刷新。
201603bbdeb7d0ab1testbe898432a6490dfbx00
re_expires_in
string
16

(废弃字段)目前应用授权的刷新令牌有效期为永久(商家主动取消授权的情况下仍未将令牌置为无效)。
123456
user_id
string
16

授权商家的 user_id。
授权商家的 user_id
agent_app_id
string
32

三方应用 id。插件授权的场景下有值,是插件归属的三方应用的 id。
2014072300003333
notify_context
本次授权关联的一些上下文信息(开发者可以忽略)
参数名
类型
最大长度
必填
描述
范例
trigger
string
30

授权触发环境,插件订购场景下为 appstore,开发者无需关注
appstore
trigger_context
string
1000

trigger_contexttrigger 相关联的上下文,开发者无需关注
目前值为空
error
授权过程中出现的异常情况(开发者可忽略,后续该字段会废弃)
参数名
类型
最大长度
必填
描述
范例
appstore_online_pay
string
20

特殊情况下的错误信息,大部分开发者无需关心。若服务商签约了“在线购买/口碑商品”产品且该产品的授权前置条件不满足则会有该值。
lack_face_to_face
appstore_online_pay 的可选取值如下:
错误码
服务商
服务商该怎么做
fail
系统错误,由于未知原因导致的系统错误
建议联系引导商家重新授权解决来解决
unexpected_certify_grade
商家的个人认证等级不够
通知联系引导商家完成实名认证,再重新授权。 注意: 个人用户完成个人实名认证,企业用户完成企业实名认证。
merchant_discard
商家已经被清退;被清退的商家无法进行开通和发布商品。
-
lack_face_to_face
商家未开通当面付
建议联系引导商家完成口碑开店流程之后,再重新授权。
开发者处理逻辑说明
根据授权主体进行授权令牌存储
授权主体表示授权令牌的参与方,区别于 第三方应用授权 的授权主体(授权关系建立在商家 app_id 和三方应用的 app_id 的二者),插件授权的授权主体新增了插件维度的信息,即:商家 app_id、和插件 id 两者之间的授权关系。开发者保存插件授权令牌的情况下特别需要注意以下几点:
1令牌存储(包括访问令牌和刷新令牌)需要有商家 app_id 维度的信息,不能用商家 uid,否则若商家名下多个小程序同时使用同一个插件的时候,会出现商家不同商家小程序的令牌相互覆盖的问题。
2令牌存储需要存储 auth_time,用于保证授权令牌的最终一致性。
授权消息处理
1消息处理。参考 处理 from 蚂蚁消息 说明进行验签和 notify_id 处理。插件授权消息为老版本的开放平台消息,通过以下方式确认为插件授权消息(同时满足以下条件)。
notify_type=open_app_auth_notify
status=execute_auth
agent_app_id 非空
授权消息的最终一致性
2考虑下述原因,若 授权主体 一致,开发者需要根据 auth_time 保证令牌的最终一致性。
在极少的特殊操作情况下存在商家短时间进行多次授权的情况;
由于网络延迟原因开发者接受到授权消息的时间并不一定是授权发生。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图