全部产品
云市场

应用软件(SaaS)SPI接入文档

更新时间:2019-06-28 10:42:07

1. 概述

1.1 简介

本文档描述了第三方应用接入到阿里云市场所须实现的接口定义,服务商通过提供以下接口,即可获得应用订购成功的信息,从而为购买者开通应用。文档中涉及到的所有接口都以HTTP GET方式调用,消息传输以JSON格式。

1.2 适用对象

适用主动推送SPI接口方式生产的应用软件SaaS类商品。

1.3 安全方案

每次接口调用都必须做安全校验,每次调用接口时候都会附加一个token,服务商拿到token以后应该对token进行校验。Token的生成方式是:取所有的http get请求参数(排除token),对参数名进行字典排序,在字符串的最后加上你的key,然后对整个字符串进行md5加密。上述安全Key在服务商入驻云市场成功后,在管理后台(msp.aliyun.com)中可以查看到。(云市场在调用接口时,可能会新增其它参数,因此在校验签名时,请接收所有的请求参数(排除token),再按照规则生成签名)

示例:http://www.isvwebsite.com?p1=1&p2=2&p3=3&token=xxxx

那么token的生成规则token=”p1=1&p2=2&p3=3&key=isvkey”.toMD5()

2. 接口说明

2.1 创建实例

2.1.1 描述

  • 用户购买商品并付款成功,云市场将调用本接口,通知服务商开始创建应用实例,每次创建的应用实例需要返回一个唯一的标识(instanceId),后续续费、过期等操作云市场会使用此标识。
  • instanceId的值建议直接使用云市场传入的orderBizId
  • 请不要阻塞此接口,若耗时较长,可使用队列做缓冲,设置instanceId=0,然后立即返回。若操作失败也请设置instanceId=0,云市场都会再次调用,直到获取到instanceId。
  • 该接口可能会被多次调用,如果被重复调用,请保证接口的幂等性。

2.1.2 参数

参数 必选 类型及范围 说明
token true String 安全校验令牌
action true String createInstance
aliUid true String 用户唯一标识
orderBizId true String 云市场业务ID
orderId true String 云市场订单ID
productCode true String 云市场商品code
skuId true String 商品规格标识
expiredOn false DateTime 过期时间(yyyy-MM-dd HH:mm:ss)
template false String 模板ID,适用于模板类建站商品

2.1.3 返回值

参数 必选 类型及范围 key名称 说明
inst anceId true String 实例ID,服务商提供的唯一标识
hostInfo false 固定JSON name 主机名
ip 服务器ip
innerIp 服务器内网ip
username 服务器帐号
password 服务器密码
cname 服务器CNAME
tempDomain 临时域名
ftpUsername ftp用户名
ftpPassword ftp密码
region 机房信息
beianInfo 备案地址
databaseInfo 数据库信息
appInfo false 固定JSON frontEndUrl 前台地址
adminUrl 管理地址
username 管理员帐号
password 管理员密码
authUrl 免登地址
info false JSON 自定义Key-Value数据

2.1.4 调用示例

  1. http://www.isvwebsite.com?
  2. token=097a56e26a93c874140bbcdf403f3f60&action=createInstance&aliUid=123123323&orderId=100001&orderBizId=1&skuId=sku-1

2.1.5 返回值

  1. {
  2. "instanceId": "1",
  3. "hostInfo": {
  4. "name": "linux server",
  5. "ip": "127.0.0.1",
  6. "username": "root",
  7. "password":"root_password"
  8. },
  9. "appInfo": {
  10. "frontEndUrl":"http://yourdomain.com/",
  11. "adminUrl":"http://yourdomain.com/admin",
  12. "username":"admin",
  13. "password": "admin_password"
  14. },
  15. "info": {
  16. "key1": "my custom info"
  17. }
  18. }

2.2 续费实例

2.2.1 描述

云市场将在用户续费后将调用该接口,服务商需要将自己维护的到期日进行更新。

2.2.2 参数

参数 必选 类型及范围 说明
action true String renewInstance
instanceId true String 实例ID
orderId true String 云市场订单ID
expiredOn true DateTime 过期时间(yyyy-MM-dd HH:mm:ss)
token true String 安全校验令牌

2.2.3 返回值

参数 必选 类型及范围 说明
success true Boolean 是否成功

2.2.4 调用示例

  1. http://www.isvwebsite.com?token=9b7dfb7b363fb2380896f24a34a9d6c9&action=renewInstance&instanceId=1&expiredOn=2013-01-01 01:01:01

2.2.5 返回示例

  1. {"success":"true"}

2.3 过期实例

2.3.1 描述

云市场将在客户购买的产品过期时调用该接口,服务商接到该通知以后应该将制定的实例冻结。

2.3.2 参数

参数 必选 类型及范围 说明
action true String expiredInstance
instanceId true String 实例ID
token tru e String 安全校验令牌

2.3.3 返回值

参数 必选 类型及范围 说明
success true Boolean 是否成功

2.3.4 调用示例

  1. http://www.isvwebsite.com?token=f5304f56329e1c672a0799df61bbe888&action=expiredInstance&instanceId=1

2.3.5 返回示例

  1. {"success":"true"}

2.4 释放实例

2.4.1 描述

云市场将在释放客户购买的产品时调用该接口,服务商接收到该通知以后可以删除指定的实例。

2.4.2 参数

参数 必选 类型及范围 说明
action true String releaseInstance
instanceId true String 实例ID
token true String 安全校验令牌

2.4.3 返回值

参数 必选 类型及范围 说明
success true Boolean 是否成功

2.4.4 调用示例

  1. http://www.isvwebsite.com?token=920704d52c2f0db89fd5d472f2819ec3&action=releaseInstance&instanceId=1

2.4.5 返回示例

  1. {"success":"true"}

2.5 升级接口

2.5.1 描述

云市场将在用户升级后将调用该接口,升级后业务到期时间不变,服务商需要记录用户升级之后新的规格。

2.5.2 参数

参数 必选 类型及范围 说明
action true String upgradeInstance
instanceId true String 实例ID
skuId true String 商品规格id
token true String 安全校验令牌

2.5.3 返回值

参数 必选 类型及范围 说明
success true Boolean 是否成功

2.5.4 调用示例

  1. http://www.isvwebsite.com?token=9b7dfb7b363fb2380896f24a34a9d6c9&action=upgradeInstance&instanceId=1&skuId=cmgj00001

2.5.5 返回示例

  1. {"success":"true"}

2.6 验证接口

2.6.1 描述

云市场验证接口,可用于免登到ISV管理后台。

有些商品生产成功后,有免登到ISV管理后台需求,云市场会根据createInstance返回的appInfo中的authUrl,结合下面参数组织一个用于免登的url地址,ISV接到此url的请求后,验证token是否合法,确认timeStamp是否符合ISV约束的时间,来进行ISV管理后的自动登录。

2.6.2 参数

参数 必选 类型及范围 说明
action true String verify
instanceId true String 实例ID
timeStamp true String 当前时间(yyyy-MM-dd HH:mm:ss)
token true String 安全校验令牌

2.6.3 调用示例

  1. http://www.isvwebsite.com?token=920704d52c2f0db89fd5d472f2819ec3&action= verify&instanceId=1&timeStamp=2013-01-01 01:01:01

2.7 开通iDaaS接口

2.7.1 描述

用于接入IDaaS的应用,在完成2.1创建实例之后,同步IDaaS相关信息。改接口仅用于接入SLK-iDaaS的应用软件。

2.7.2 参数

参数 必选 类型及范围 说明
action true String createIdaas
instanceId true String 实例id
belongId true String idaas企业组织ID
publicKey true String idaas公钥
token true String 安全校验令牌

2.7.3 返回值

参数 必选 类型及范围 说明
success true Boolean 是否成功
ssoUrl true String 用户免登地址
scimUrl true String iDaaS同步账号信息地址
scimAuthType true String SCIM 地址身份校验方式。传入BASIC 代表 Basic 认证,OAUTH 代表 OAuth 认证
scimUsername false String 如选 Basic 则必填,认证用户名。
scimPassword false String 如选 Basic 则必填,认证密码。
scimOauthUrl false String 如选 OAuth 则必填,认证地址。
scimAppkey false String 如选 OAuth 则必填,OAuth 的 key
scimAppsecret false String 如选 OAuth 则必填,OAuth 的 secret
domainPrefix true String 二级域名前缀

2.7.4 调用示例

  1. http://www.isvwebsite.com?token=920704d52c2f0db89fd5d472f2819ec3&action=createIdaas&belongId=absffgabciikange&publicKey=qjflafjfal&timeStamp=2013-01-01 01:01:01

2.7.5 返回示例

  1. {"success":true, "ssoUrl":"http://www.demourl.com", "scimUrl":"http://manage.demourl.com", "scimAuthType:"BASIC","scimUsername":"testuser","scimPassword":"123456","domainPrefix":"isvDemo"}