商户后台
供派娜(PayAny)聚合支付SaaS平台用户的商户进行管理终端、订单、退款、争议、运单、提现、报表等。
{platform}为merchant。
获取凭据
所有接口都需要以“商户的用户”身份登录获得凭据,然后才被允许请求。
注意:
如果是平台“运营”,请使用开发者账号,通过以下声明的地址1
如果是平台“商户”,不存在开发者账号,通过以下声明的地址2,基地址为商户后台
用户登录
提供商户帐号、密码以校验身份,并获得身份凭据。
请求报头:
注意:
如果是平台“运营”,必须
如果是平台“商户”,请忽略
名称 | 说明 |
---|---|
Authorization | 以Basic认证方式传递{tenantId}和{secretKey} 格式:Basic[空格]base64({tenantId}:{secretKey}) 示例: 设定{tenantId}为666888,{secretKey}为abcdfghijklmn 以半角冒号连接,然后base64("666888:abcdfghijklmn")为NjY2ODg4OmFiY2RmZ2hpamtsbW4 最终报头为Authorization:Basic NjY2ODg4OmFiY2RmZ2hpamtsbW4= |
请求地址1:/auth/check
请求地址2:/api/auth-check
请求谓词:POST
请求主体:
名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|
文本 | 5~80 | 是 | 邮箱 | |
password | 文本 | 7~80 | 是 | 密码 |
请求示例:
header*Authorization:Basic NjY2ODg4OmFiY2RmZ2hpamtsbW4=methodPOSTbody{ "email":"yaofeng@saas.com", "password":"aWV0d2lu"}
响应代码:
代码 | 说明 |
---|---|
200 | 帐密校验通过,账户可用,授权成功并返回凭证 |
201 | 帐密校验通过,多账户可用,需要选择商户号 |
202 | 帐密校验通过,账户可用,需要完成MFA验证 |
403 | 帐密校验通过、账户已禁用 |
404 | 帐密校验未通过:账户不存在或帐密错误 |
响应200主体:
名称 | 类型 | 必须 | 说明 |
---|---|---|---|
token_type | 文本 | 是 | 授权类型 |
access_token | 文本 | 是 | 授权凭据 |
access_token | 文本 | 是 | 授权凭据有效期限,时间戳(Unix timestamp,毫秒) |
profile | 对象 | 是 | 当前被授权的用户信息 |
profile.id | 数值 | 是 | 用户编号 |
profile.merchantId | 数值 | 是 | 商户编号 |
profile.email | 文本 | 是 | 邮箱 |
profile.name | 文本 | 是 | 用户姓名 |
profile.admin | 布尔 | 是 | 是否为管理员 |
profile.reset | 布尔 | 是 | 是否需要更改密码 true时应该引导用户及时修改密码 |
响应201主体:
名称 | 类型 | 必须 | 说明 |
---|---|---|---|
[].id | 数值 | 是 | 用户编号 |
[].merchantId | 数值 | 是 | 商户编号 |
文本 | 是 | 邮箱 | |
[].name | 文本 | 是 | 用户姓名 |
[].uts | 数值 | 是 | 时间戳 |
[].hash | 文本 | 是 | 防伪签名 |
响应202主体:
名称 | 类型 | 必须 | 说明 |
---|---|---|---|
id | 数值 | 是 | 用户编号 |
merchantId | 数值 | 是 | 商户编号 |
文本 | 是 | 邮箱 | |
name | 文本 | 是 | 用户姓名 |
uts | 数值 | 是 | 时间戳 |
hash | 文本 | 是 | 防伪签名 |
响应403/404主体:
名称 | 类型 | 必须 | 说明 |
---|---|---|---|
文本 | 是 | 邮箱 |
响应200示例:
{ "status":200, "message":"ok", "data":{ "token_type":"Bearer", "access_token":"aaaa.bbbb.cccc.dddd", "expires":1218154088000, "profile":{ "id":12345678, "merchantId":11223344, "email","saas@yaofeng.com", "name":"Payment Gateway", "admin":false, "reset":false, } }, "timestamp":1218154088000}
多账户选择
提供的账密匹配到多个账户,需要选择商户号;即用户登录响应201状态码时。
请求报头:
注意:
如果是平台“运营”,必须
如果是平台“商户”,请忽略
名称 | 说明 |
---|---|
Authorization | 以Basic认证方式传递{tenantId}和{secretKey} |
请求地址1:/auth/choose
请求地址2:/api/auth-choose
请求谓词:POST
请求主体:
名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|
id | 数值 | 是 | 用户编号;上一步响应中提供 | |
merchantId | 数值 | 是 | 商户编号;上一步响应中提供 | |
uts | 数值 | 是 | 时间戳;上一步响应中提供 | |
hash | 文本 | 是 | 防伪签名;上一步响应中提供 |
响应代码:
代码 | 说明 |
---|---|
200 | 帐密校验通过,账户可用,授权成功并返回凭证 |
201 | 帐密校验通过,多账户可用,需要选择商户号 |
403 | 帐密校验通过、账户已禁用 |
404 | 帐密校验未通过:账户不存在或帐密错误 |
响应主体:
参考“用户登录”对应的响应代码下的响应主体说明。
MFA验证
仅当用户账户绑定了MFA才需要提供响应的验证,即用户登录响应202状态码时。
需向用户要求提供MFA设备上实时显示的验证码(一般为6位数字)。
请求报头:
注意:
如果是平台“运营”,必须
如果是平台“商户”,请忽略
名称 | 说明 |
---|---|
Authorization | 以Basic认证方式传递{tenantId}和{secretKey} |
请求地址1:/auth/mfa
请求地址2:/api/auth-mfa
请求谓词:POST
请求主体:
名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|
id | 数值 | 是 | 用户编号;上一步响应中提供 | |
merchantId | 数值 | 是 | 商户编号;上一步响应中提供 | |
mfa | 文本 | 4~12 | 是 | MFA设备上当前显示的验证码 |
uts | 数值 | 是 | 时间戳;上一步响应中提供 | |
hash | 文本 | 是 | 防伪签名;上一步响应中提供 |
响应代码:
代码 | 说明 |
---|---|
200 | 帐密校验通过,账户可用,授权成功并返回凭证 |
403 | 帐密校验通过、账户已禁用 |
404 | 帐密校验未通过:账户不存在或帐密错误 |
响应主体:
参考“用户登录”对应的响应代码下的响应主体说明。
授权访问
后续所有请求将直接使用上一步响应提供的凭据类型及内容。
请求报头:
名称 | 说明 |
---|---|
Authorization | 授权凭证 如:Authorization:Bearer aaaa.bbbb.cccc.dddd |
注意:
后续的接口阐述中将不再额外指出该报头。
请根据凭据有效期,自行选择重新登录或续期。