您现在的位置:   首页 >> 新闻中心 >> 行业动态

支付宝服务商ISV 发起授权邀请

发布人:admin 发布时间:2021-07-29 700 次浏览

支付宝服务商ISV 发起授权邀请


授权方式说明

模板审核通过后,系统服务商(ISV)的第三方应用还需得到商家的小程序授权,才能代商家去构建商家小程序版本。系统服务商(ISV)有两种方式获得商家小程序的授权。

本文档介绍 ISV 发起授权邀请 方式的授权操作流程。

授权方式

流程

适配场景

说明
ISV 发起授权邀请

系统服务商(ISV)线下发送向商家发送授权邀请链接,商家点击链接,选择小程序应用授权给系统服务商(ISV)的第三方应用。

系统服务商(ISV)已和商家沟通清楚业务内容并且商家已创建商家小程序

该方式的门槛较高,需要商家入驻开放平台,创建小程序应用。

ISV 发布模板至服务市场

系统服务商(ISV)将第三方应用下的模板发布为服务,商家在服务市场订购该服务,商家完成订购即完成授权。

无特殊要求,适配普通的场景,官方推荐

系统服务商(ISV)可以选择发布到支付宝服务市场售卖模板;也可以在发布到线下渠道进行推广。

  • 服务市场:吸引更多有意向的商家和方便商家预览小程序模板。

  • 线下渠道:商家订购模板、创建和授权小程序操作一体化。

操作流程

商家小程序授权系统服务商(ISV)第三方应用主要流程示意图如下:

image


image

前提条件

  • 系统服务商(ISV)已创建第三方应用且已上线,创建第三方应用的操作请参见 创建第三方应用

  • 商家已创建小程序,创建小程序的操作请参见 创建小程序

ISV 发起授权邀请

  1. 系统服务商(ISV)登录 开放平台控制台 ,选择 我的应用 > 三方服务 > 选择需要的第三方应用 > 商家授权应用点击 发起授权 

image

  1. 获取授权二维码和链接,并发送给商家,引导商家使用支付宝扫描二维码或在浏览器中访问链接。 
    image 

商家确认授权

商家在浏览器中打开链接或打开支付宝 APP 扫描二维码,勾选 所需小程序 并同意相关协议,点击 确认授权

image

获取授权 app_auth_token

  1. 获取 app_auth_code。
    商家授权成功后,商家的界面会跳转至系统服务商(ISV)定义的回调页面(即授权链接中的 redirect_uri 参数对应的 url ),在回调页面请求中会带上当次授权的授权码 app_auth_code 和 app_id,示例如下:
    http://example.com/doc/toAuthPage.html?app_id=2015101400446982&app_auth_code=ca34ea491e7146cc87d25fca24c4cD11

  2. 使用 app_auth_code 换取 app_auth_token。系统服务商(ISV)解析出 app_auth_code,调用 alipay.open.auth.token.app 接口换取 app_auth_token。通过 app_auth_code 可以 单个/批量 换取 app_auth_token、授权商家的 UID 以及授权商家的 APPID。注意:

    • 应用授权的 app_auth_code 是唯一的。

    • app_auth_code 使用一次后失效,单个授权的有效期为 1 天(从生成 app_auth_code 开始的 24 小时)未被使用自动过期;批量授权的有效期为 10 分钟。

    • 没有重新授权或刷新授权的情况下,app_auth_token 永久有效。


AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", 第三方应用 APP_ID,第三方应用APP_PRIVATE_KEY, "json", CHARSET, 第三方应用ALIPAY_PUBLIC_KEY,"RSA2"); 
AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest(); 
request.setBizContent(    "{" +"\"grant_type\":\"authorization_code\"," +"              \"code\":\"1cc19911172e4f8aaa509c8fb5d12F56\""+ "     }");AlipayOpenAuthTokenAppResponse response =alipayClient.execute(request);

同步响应参数说明:

参数

名称

类型

必填

描述

code

错误码

String

错误码

msg

消息

String

错误消息

tokens

授权令牌列表

String

格式请参见下方列表 tokens 对应的 value 值说明。

tokens 对应的 value 值说明:

参数

名称

类型

必填

描述

app_auth_token

令牌信息

String

授权令牌信息,未重新授权时永久有效。

app_refresh_token

刷新令牌

String

刷新令牌

auth_app_id

授权方应用 ID

String

授权方应用 ID

expires_in

令牌有效期

String

有效期

re_expires_in

刷新令牌有效时间

String

刷新令牌有效期

userid

支付宝用户标识

String

支付宝用户标识

同步响应结果示例:
说明:单个授权通过 alipay.open.auth.token.app 接口只能换取一个授权令牌 app_auth_token,批量授权能换取多个授权令牌 app_auth_token,如下为批量授权情况下的结果示例。

{"alipay_open_auth_token_app_response":{“code”:”10000”,“msg”:”Success”,"tokens":[{"app_auth_token":"201712BB_D0804adb2e743078d1822d536956X34","app_refresh_token":"201712BB_d5b15d53f7b4fd5aa649f176ca97X34","auth_app_id": "2017120501354689","expires_in": 31536000,"re_expires_in": 32140800,"user_id": "2088302181262340"},{"app_auth_token":"201712BB_D0d8c15dc7e4c9dba5e5767b3b37X34","app_refresh_token":"201712BB_d96f65e20c745c3998a8452baae5X34","auth_app_id": "2017120501354690","expires_in": 31536000,"re_expires_in": 32140800,"user_id": "2088302181262340"},{"app_auth_token":"201712BB_D335c7b153345a9915a851cf9bd9X34","app_refresh_token":"201712BB_ddeeb32d9d145948a488b1058e08X34","auth_app_id": "2017120501354688","expires_in": 31536000,"re_expires_in": 32140800,"user_id": "2088302181262340"}]},     
"sign":"TR5xJkWX65vRjwnNNic5n228DFuXGFOCW4isWxx5iLN8EuHoU2OTOeh1SOzRredhnJ6G9eOXFMxHWl7066KQqtyxVq2PvW9jm94QOuvx3TZu7yFcEhiGvAuDSZXcZ0sw4TyQU9+/cvo0JKt4m1M91/Quq+QLOf+NSwJWaiJFZ9k="}
  1. 代商家调用接口。系统服务商(ISV)代替商家发起请求时请务必带上 app_auth_token,否则支付宝将认为是本应用替自己发起的请求。请注意 app_auth_token 是 POST 请求参数,不是 biz_content 的子参数。在 SDK 中带上 app_auth_token 代码示例:request.putOtherTextParam("app_auth_token","201611BB888ae9acd6e44fec9940d09201abfE16");系统服务商(ISV)代替商家发起请求时,POST 公共请求参数中的 app_id 应填写第三方应用的 APPID。代调用接口的参数详情说明,请参见 代调用 OPEN API 说明。以系统服务商(ISV)代替商家构建小程序版本,代商家调用 alipay.open.mini.version.upload 接口为例,示例代码如下:


AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","第三方应用 app_id","your private_key","json","GBK","alipay_public_key","RSA2");AlipayOpenMiniVersionUploadRequest request = new AlipayOpenMiniVersionUploadRequest();request.putOtherTextParam("app_auth_token", "201912BXXXXXX");  //此处传入第三方应用在步骤六中获取的 app_auth_tokenrequest.setBizContent("{" +"\"template_version\":\"0.0.1\"," +"\"ext\":\"{\\\"extEnable\\\": true, \\\"extPages\\\": {\\\"pages/face/index\\\": {\\\"defaultTitle\\\": \\\"哈哈哈哈\\\"}},\\\"window\\\": {\\\"defaultTitle\\\": \\\"AI2\\\"}}\"," +"\"template_id\":\"1\"," +"\"app_version\":\"0.0.1\"," +"\"bundle_id\":\"com.alipay.alipaywallet\"" +"  }");AlipayOpenMiniVersionUploadResponse response = alipayClient.execute(request);if(response.isSuccess()){System.out.println("调用成功");} else {System.out.println("调用失败");}

刷新授权 app_auth_token

若业务中需要刷新商家授权第三方应用的 app_auth_token,需调用接口 alipay.open.auth.token.app 接口,刷新 app_auth_token。

接口请求示例(grant_type 传入参数 authorization_code)请参见 SDK 接入说明


AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", 第三方应用APP_ID,第三方应用 APP_PRIVATE_KEY, "json", CHARSET, 第三方应用ALIPAY_PUBLIC_KEY, "RSA2");AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();request.setBizContent("{" + "\"grant_type\":\"refresh_token \"," +"    \"refresh_token\":\"201509BBdcba1e3347de4e75ba3fed2c9abebE36\"" + "  }");AlipayOpenAuthTokenAppResponse response = alipayClient.execute(request);

同步响应参数说明同步响应参数说明:

参数

名称

类型

必填

描述

code

消息码

String

错误码

msg

消息

String

错误消息

app_auth_token

令牌信息

String

授权令牌信息

app_refresh_token

刷新令牌

String

刷新令牌

auth_app_id

授权方应用 ID

String

授权方应用 ID

expires_in

令牌有效期

String

有效期

re_expires_in

刷新令牌有效时间

String

刷新令牌有效期

userid

支付宝用户标识

String

支付宝用户标识

同步响应结果示例:


{  "alipay_open_auth_token_app_response": {    "code": "10000",    "msg": "Success",    "app_auth_token": "201712BB_D179ffeb8dd48f89f81952768ca1B34",    "app_refresh_token": "201712BB_d42f729c267473cad3ab89b5ba63C34",    "auth_app_id": "2017120501354688",    "expires_in": 31536000,    "re_expires_in": 32140800,    "user_id": "2088302181262340"  },  "sign": "KvbI8Z/KgM/QSt76OyBuQLyUSCnSiwcaXLaBdnH9hYZgmx2rnW5aiGX11W6Yu0HdRt0ckscgr7Ymy5Ux5X4xA0UxxTmvNWUU0/lZ8wu+2jX+tFU1OMV/dEKgcBGqaTGPhYqEKndXAmpHgKc/LMD62ump2BmeM2V8R5zLe0fGz8E="}

刷新 app_auth_token 后,请在第三方应用代调用 OpenAPI 时,在 app_auth_token 参数中传入当前返回的 app_refresh_token 的值。

request.putOtherTextParam("app_auth_token", "201712BB_d42f729c267473cad3ab89b5ba63C34");

快速查看授权 app_auth_token

完成授权后,系统服务商(ISV)可在 开放平台控制台 > 我的应用 > 三方服务 > 第三方应用 > 商家授权应用 页面,快速查看 app_auth_token。

image



我司为 支付宝支付服务商 支付宝开发服务商微信支付服务商微信开发服务商如您有小程序开发需求,小程序开发系统加盟请联系我们
最新资讯
在线咨询
电话咨询
扫一扫

微信扫一扫
咨询最新优惠活动

联系微信
www46kaicn

返回顶部
易客多小程序saas系统__微信小程序开发_餐饮外卖小程序开发_商城小程序开发代理加盟_小程序开发系统源码部署
3分钟快速拥有自己的小程序! 四六开科技,以创新技术引领行业未来
免费试用