API 文档
公共参数
请求头
| 名称 | 必填 | 描述 | 备注 | 示例值 |
|---|---|---|---|---|
customerId | Y | 客户 ID | 预先配置。 | ASR3F1B4Z5 |
service | Y | API 名称 | 详见API 列表。 | createCard |
version | Y | API 版本 | 当前版本2.0。 | 2.0 |
requestId | Y | 请求流水号 | 每个请求唯一,建议使用UUID。 | 472f37e3-a803-47ed-b9b6-32632895b466 |
timestamp | Y | 请求时间 | UNIX 时间戳(毫秒)。 | 1642747436113 |
sign | Y | 请求数据签名 | 详见签名机制。 | +Ue0BiWsCOxbYD39Ldd(部分数据) |
响应头
| 名称 | 描述 | 备注 | 示例值 |
|---|---|---|---|
customerId | 客户 ID | 请求头原样返回。 | ASR3F1B4Z5 |
service | API 名称 | 请求头原样返回。 | createCard |
version | API 版本 | 请求头原样返回。 | 2.0 |
requestId | 请求流水号 | 请求头原样返回。 | 472f37e3-a803-47ed-b9b6-32632895b466 |
timestamp | 响应时间 | UNIX 时间戳(毫秒)。 | 1642747437393 |
code | 响应码 | 枚举值,3位数字,详见响应码下拉框。 | 200(非200表示 API 调用失败) |
message | 响应码详情 | 详见响应码下拉框。 | succeed |
sign | 响应数据签名 | 详见签名机制。 | WO8waUZ30bYlKp/+s9m(部分数据) |
API 列表
| 名称 | 方法 | 请求头 service 参数 |
|---|---|---|
| 创建卡 | POST | createCard |
| 修改卡 | POST | updateCard |
| 充值卡 | POST | rechargeCard |
| 提现卡 | POST | withdrawCard |
| 锁定卡 | POST | suspendCard |
| 解锁卡 | POST | unSuspendCard |
| 注销卡 | POST | closeCard |
| 查询卡 | POST | queryCardDetail |
| 查询账户额度 | POST | queryCustomerCredit |
| 查询授权交易 | POST | queryAuthTransactionByPage |
| 查询清算交易 | POST | settlementTransactionQuery |
| 发起账户提现 | POST | payoutCreate |
| 查询账户 提现 | POST | payoutQuery |
| 查询汇率 | POST | fxQuote |
| 发起换汇订单 | POST | fxCreate |
| 查询换汇订单 | POST | fxQuery |
加密机制
为保证数据的安全性,TripLink 会对每个请求和响应进行加密。
接入方与 TripLink 需使用对称加密算法AES/ECB/PKCS5Padding,对请求体和响应体进行加密与解密,结果采用Base64 编码。
TripLink 需要接入方提前提供128位AES密钥(Base64 编码格式),参考准备工作。
请求体
原始请求体各字段含义详见下方各 API 说明。
接入方:对原始请求体先使用AES密钥加密,再进行Base64编码。结果作为实际请求体中payload字段的值。发送实际请求体。
TripLink:对收到的实际请求体的payload字段的值先进行Base64解码,再使用AES密钥解密。结果即为原始请求体。
- 原始
- 实际
{
"key_1": "value_1",
"key_2": "value_2",
"key_3": "value_3"
}
{
"payload": "8YryQ8hYkTL3UzzEdvlUGGrL/5rABcclaP9NZt9GAMRVR9ehvJv9aJHfM3XqPlRIk9lvPN+U0iERGz9wpHtxvA=="
}
响应体
原始响应体各字段含义详见下方各 API 说明。
TripLink:对原始响应体先使用AES密钥加密,再进行Base64编码。结果作为实际响应体中payload字段的值。发送实际响应体。
接入方:对收到的实际响应体中payload字段的值先进行Base64解码,再使用AES密钥解密。结果即为原始响应体。
- 原始
- 实际
{
"key_1": "value_1",
"key_2": "value_2",
"key_3": "value_3"
}
{
"payload": "8YryQ8hYkTL3UzzEdvlUGGrL/5rABcclaP9NZt9GAMRVR9ehvJv9aJHfM3XqPlRIk9lvPN+U0iERGz9wpHtxvA=="
}
签名机制
为保证 API 的安全调用,TripLink 会对每个请求和响应通过签名进行身份验证。
接入方与 TripLink 需使用签名算法SHA256withRSA,对请求待签字符串和响应待签字符串进行签名,签名结果采用Base64 编码,对应请求头和响应头的sign字段。
接入方会提前收到 TripLink 为您分配的2048位RSA公钥 T(Base64 编码格式),同时 TripLink 需要接入方提前提供2048位RSA公钥 U(Base64 编码格式),参考准备工作。
整个请求与响应流程涉及2对RSA密钥:属于 TripLink 的公钥 T与私钥 T,属于接入方的公钥 U与私钥 U。公钥用于验证签名,私钥用于生成签名。
请求待签字符串
所有字段按如下顺序依次使用|符号连接。
customerId|service|version|requestId|timestamp|payload
customerId,service,version,requestId和timestamp来自请求头中对应字段。
payload来自实际请求体中加密过的payload字段。
接入方:对请求待签字符串先使用私钥 U生成签名,再进行Base64编码。结果作为请求头中sign字段的值。
TripLink:对收 到的请求头中sign字段的值先进行Base64解码,再使用公钥 U验证签名。
响应待签字符串
所有字段按如下顺序依次使用|符号连接。
customerId|service|version|requestId|timestamp|code|message|payload
customerId,service,version,requestId,timestamp,code和message来自响应头中对应字段。
payload来自实际响应体中payload字段。
TripLink:对响应待签字符串先使用私钥 T生成签名,再进行Base64编码。结果作为响应头中sign字段的值。
接入方:对收到的响应头中sign字段的值先进行Base64解码,再使用公钥 T验证签名。
创建卡
请求体
| 名称 | 类型 | 必填 | 描述 | 备注 |
|---|---|---|---|---|
requestId | String | Y | 请求流水号 | 同请求头。 |
customerId | String | Y | 客户 ID | 同请求头。 |
cardCurrencyCode | String | N | 卡币种 | 默认与结算币种相同。 ISO 4217 货币编号, 3位数字。 |
settlementCurrencyCode | String | Y | 结算币种 | ISO 4217 货币编号,3位数字。 |
exchangeCurrencyCode | String | N | 卖出币种 | ISO 4217 货币编号,3位数字。卡产品为 C05 时生效且必填。刷卡授权消费时自动将卖出币种兑换为结算币种。 |
activeDate | String | Y | 生效日期 | 格式 yyyy-MM-dd。 |
inactiveDate | String | Y | 失效日期 | 格式 yyyy-MM-dd。 |
activeTime | String | N | 生效时间 | 格式 HH:mm:ss,不传默认 00:00:00。(仅对香港万事达卡,新加坡 VISA 卡及银联卡有效) |
inactiveTime | String | N | 失效时间 | 格式 HH:mm:ss,不传默认 23:59:59。(仅对香港万事达卡,新加坡 VISA 卡及银联卡有效) |
cardLimit | Number | Y | 额度 | 小数,对应卡币种。 |
minAuthAmount | Number | Y | 单次授权金额下限 | 小数, 对应卡币种。 (预付费卡,此字段不生效) |
maxAuthAmount | Number | Y | 单次授权金额上限 | 小数,对应卡币种。 (预付费卡,此字段不生效) |
maxAuthTimes | Number | Y | 授权次数上限 | 整数。1:单次卡,-1:不限次数。 |
cardCloseUsage | Number | N | 自动注销百分比 | 整数,范围0-100,默认0。当已清算金额占额度比大于等于此值,卡会被自动注销。 特殊值 0:卡片不会自动注销。(预付费卡,此字段不生效) |
supportedMccGroup | String | Y | 接受的 MCC 组 | 接受的商户类别组名,由 TripLink 定义。 非此商户类别组请求的交易会被拒绝。 |
supportedMid | String | N | 接受的商户 ID | 非此商户请求的交易会被拒绝。 |
supportedAcquirerId | String | N | 接受的收单行 ID | 非此收单行请求的交易会被拒绝。 |
multipleCurrencyCard | Boolean | N | 是否允许非卡币种交易 | 默认true。 |
allow3ds | Boolean | N | 是否接受 3DS 交易 | 默认true。(仅香港万事达卡生效) |
cardProductCode | String | Y | 卡产品 | 枚举值,详见卡分类层次下拉框。 |
cardType | String | Y | 卡类型 | 枚举值,详见卡分类层次下拉框。 |
cardLabel | String | Y | 卡组织 | 枚举值,详见卡分类层次下拉框。 |
cardBin | String | N | 发卡机构识别号 | 可指定开卡卡 BIN 段,请联系 TripLink 提供。 |
quoteId | String | N | 汇率 ID | 查询汇率 返回的汇率 ID。 若有效则以此汇率兑换,若无效则以实时汇率兑换。 (仅卡产品为 C05 时生效) |
timeZone | string | N | 卡时区 | 卡生效与失效日期时区,格式举例: 中国标准时间 GMT+08:00,北美东部标准时间 GMT-05:00。默认值可在商户系统/设置/全局参数处配置。 |
userReferenceMap | Object | N | 用户自定义字段 | String键值对,共20个键可选。范围 useRef1Txt-useRef20Txt。 |
TripLink 仅会保存和展示用户自定义字段,没有业务逻辑与此相关。
响应体
| 名称 | 类型 | 描述 | 备注 |
|---|---|---|---|
returnCode | String | 结果码 | 枚举值,6位数字,详见结果码下拉框。(非 000000表示请求处理失败) |
errorMessage | String | 结果码描述 | 详见结果码下拉框。 |
cardLogId | String | 卡 ID | TripLink 专用卡标识。 |
cardNum | String | 卡号 | 16位卡号。 |
cardExpirationDate | String | 有效期 | 格式 yyMM。 |
cvv2 | String | 卡 CVV2 | 安全码。 |
cardType | String | 卡品牌 | |
cardLabel | String | 卡组织 |
SDK 示例
BASE_URL:API 地址;CARD_LOG_ID:卡 ID。
CUSTOMER_ID:客户 ID;CUSTOMER_PRIVATE_KEY:客户 RSA 私钥。
AES_KEY:AES 密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA 公钥。
修改卡
请求体
| 名称 | 类型 | 必填 | 描述 | 备注 |
|---|---|---|---|---|
requestId | String | Y | 请求流水号 | 同请求头。 |
customerId | String | Y | 客户 ID | 同请求头。 |
cardLogId | String | Y | 卡 ID | TripLink 专用卡标识。 |
activeDate | String | N | 生效日期 | 格式 yyyy-MM-dd。 |
inactiveDate | String | N | 失效日期 | 格式 yyyy-MM-dd。 |
activeTime | String | N | 生效时间 | 格式 HH:mm:ss。(仅对香港万事达卡,新加坡 VISA 卡及银联卡有效) |
inactiveTime | String | N | 失效时间 | 格式 HH:mm:ss。(仅对香港万事达卡,新加坡 VISA 卡及银联卡有效) |
cardLimit | Number | N | 额度 | 小数,对应卡币种。 (预付费卡,此字段不生效) |
minAuthAmount | Number | N | 单次授权金额下限 | 小数,对应卡币种。 (预付费卡,此字段不生效) |
maxAuthAmount | Number | N | 单次授权金额上限 | 小数,对应卡币种。 (预付费卡,此字段不生效) |
cardCloseUsage | Number | N | 自动注销百分比 | 整数,范围0-100,默认0。当已清算金额占额度比大于等于此值,卡会被自动注销。 特殊值 0:卡片不会自动注销。(预付费卡,此字段不生效) |
supportedMccGroup | String | N | 接受的 MCC 组 | 接受的商户类别组名,由 TripLink 定义。 非此商户类别组请求的交易会被拒绝。 |
supportedMid | String | N | 接受的商户 ID | 非此商户请求的交易会被拒绝。 |
supportedAcquirerId | String | N | 接受的收单行 ID | 非此收单行请求的交易会被拒绝。 |
multipleCurrencyCard | Boolean | N | 是否允许非卡币种交易 | |
allow3ds | Boolean | N | 是否接受 3DS 交易 | (仅香港万事达卡生效) |
timeZone | string | N | 卡时区 | 卡生效与失效日期时区,格式举例: 中国标准时间 GMT+08:00,北美东部标准时间 GMT-05:00。默认值可在商户系统/设置/全局参数处配置。 |
userReferenceMap | Object | N | 用户自定义字段 | String键值对,共20个键可选。范围 useRef1Txt-useRef20Txt。 |
TripLink 仅会保存和展示用户自定义字段,没有业务逻辑与此相关。
响应体
| 名称 | 类型 | 描述 | 备注 |
|---|---|---|---|
returnCode | String | 结果码 | 枚举值,6位数字,详见结果码下拉框。(非 000000表示请求处理失败) |
errorMessage | String | 结果码描述 | 详见结果码下拉框。 |
cardLogId | String | 卡 ID | TripLink 专用卡标识。 |
cardNum | String | 卡号 | 16位卡号。 |
cardExpirationDate | String | 卡有效期 | 格式yyMM。 |
cvv2 | String | 卡 CVV2 | 安全码。 |
userReferenceMap | Object | 用户自定义字段 | String键值对,共20个键可选。范围 useRef1Txt-useRef20Txt。 |
TripLink 仅会保存和展示用户自定义字段,没有业务逻辑与此相关。
SDK 示例
BASE_URL:API 地址;CARD_LOG_ID:卡 ID。
CUSTOMER_ID:客户 ID;CUSTOMER_PRIVATE_KEY:客户 RSA 私钥。
AES_KEY:AES 密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA 公钥。
充值卡
请求体
| 名称 | 类型 | 必填 | 描述 | 备注 |
|---|---|---|---|---|
requestId | String | Y | 请求流水号 | 同请求头。 |
customerId | String | Y | 客户 ID | 同请求头。 |
cardLogId | String | Y | 卡 ID | TripLink 专用卡标识。 |
rechargeAmount | Number | Y | 充值金额 | 小数,对应卡币种。 |
响应体
| 名称 | 类型 | 描述 | 备注 |
|---|---|---|---|
returnCode | String | 结果码 | 枚举值,6位数字,详见结果码下拉框。(非 000000表示请求处理失败) |
errorMessage | String | 结果码描述 | 详见结果码下拉框。 |
SDK 示例
BASE_URL:API 地址;CARD_LOG_ID:卡 ID。
CUSTOMER_ID:客户 ID;CUSTOMER_PRIVATE_KEY:客户 RSA 私钥。
AES_KEY:AES 密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA 公钥。