1. 获取授权链接
ISV 可以在 我的服务 查看 服务 ID 和 服务授权链接拼接规则。
授权地址参数说明:
标识符:由 ISV 自定义。商家授权完成以后,平台通过 订购通知 向 ISV 返回授权链接中所填写的标识符(isv_ticket),请保证每次传入的“标识符”不重复。
商家授权完成以后跳转地址:商家完成授权以后页面自动跳转到传入的callback地址,填入链接中的地址需要 Encode 处理。
2. 拼写并发送授权地址
点击 复制链接,按照规则拼写链接,确认无误后发送给商家。
3. 商家扫码
商家打开链接,使用支付宝(登录需要开通服务的账号)扫描二维码。
4. 商家填写小程序名称、同意授权
选择小程序小程序,进行授权。若商家没有小程序,可新建一个小程序。
注意:如果商家选择的小程序已构建过版本,小程序模板实施后将会覆盖商家小程序之前的版本,原来的数据将丢失,请确保不会影响商家的业务。
5. 配置后台
授权完成后,点击 进入服务,小程序跳转到授权链接上提供的重定向地址(callback 地址)。
6. ISV获取授权 token
商家完成订购后,ISV 获取商家小程序授权给 ISV 的第三方应用的 token(app_auth_token),代商家小程序调用 OpenAPI。
获取 app_auth_token 有以下两种方式:
解析授权通知
解析访问请求
解析授权通知
订购成功后,第三方应用配置的应用网关会收到平台下发的 授权通知,其中包含 app_auth_token。
授权通知示例:
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}
避坑 Tips:授权通知请使用 rsaCheckV1 方法验签,验签操作详情,请参见 使用支付宝公钥验签。
解析访问请求
订购成功后,页面将自动跳转至授权链接中传入的callback地址,在访问请求中包含当次授权的 auth_code,示例如下:
http://example.com/doc/toAuthPage.html?auth_code=Pf3d30ad211e021d1b70066b94701400
ISV 解析出 auth_code,调用 alipay.open.auth.token.app 接口换取 app_auth_token。
说明:
应用授权的 auth_code 是唯一的。
auth_code 使用一次后失效,单个授权的有效期为 24 小时,批量授权的有效期为 10 分钟。app_auth_token 在没有重新授权或取消授权的情况下永久有效。
在商家订购模板服务后,系统会向第三方应用配置的应用网关会先发送 订购通知,再发送 授权通知。收到通知后,向系统返回
success
,会停止之后的重复通知,详情参见 重复收到异步通知。