时间 | 内容 | 备注 |
---|---|---|
2020-03-09 | V1.0 | 新增礼品卡的账户充值业务 |
2020-05-11 | V1.1 | 新增礼品卡的电子卡业务 |
2020-09-09 | V1.2 | queryGiftCardsByOrder增加生效日期和截止日期 |
携程预付卡分销平台 是由携程预付卡技术团队提供,可以满足B端商户的购卡、充值的业务需求,具有简单、稳定、安全、高效、便捷等特点。B端商户办理入驻分销平台后,通过采购流程可以获得一个用于分销业务场景的资金池,B端企业的用户下单会消耗资金池里的金额;当消耗资金池触发阈值时会触发邮件提醒;当资金池消耗殆尽时,B端商户的用户继续下单将会返回下单失败。
携程礼品卡 是携程旅行网合法备案的单用途预付费卡,可以在携程环境中消费,携程礼品卡需要领用至携程会员帐户内方可使用。携程礼品卡在被领用至携程会员账户时需要设置支付密码,密码可以由顾客自行修改。携程礼品卡内预付价值一元等值于一元人民币。卡内余额不计息,不透支,不提供兑现、找零,严禁任何形式的套现等违规行为。
企业入驻
企业采购
完成业务准备后,联系技术人员sunlei@trip.com,可以获得测试环境的对接参数。
字段名 | 字段值 | 字段说明 |
---|---|---|
CustomerNo | XXXX | 商户名(平台提供) |
CustomerPwd | aaaa-bbbb-cccc-dddd | 商户秘钥(平台提供) |
URL | http://gateway.fat.ctripqa.com/flopenapi/api | 请求地址(平台提供,有时效限制) |
AES密钥 | 4hdfgnfhgds364tyfdtghsdfgdfh | 用于礼品卡券密的AES密钥(详见附件) |
完成测试环境的联调后,再次联系技术人员sunlei@trip.com,生产环境的对接参数将邮件发给合同上的邮箱地址。
字段名 | 字段值 | 字段说明 |
---|---|---|
CustomerNo | XXXX | 商户名(平台提供) |
CustomerPwd | eeee-ffff-gggg-hhhh | 商户秘钥(平台提供) |
URL | https://b.ctrip.com/flopenapi/api | 请求地址(正式) |
AES密钥 | 4hdfgnfhgds364tyfdtghsdfgdfh | 用于礼品卡券密的AES密钥(详见附件) |
提交订单
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
requestHeader | customerNo | string | 20 | Y | 商户名(平台提供) |
timestamp | long | 20 | Y | 请求时间戳(详见附件) | |
signature | string | 50 | Y | 签名(详见附件) | |
param | ticketType | string | 20 | Y | 订单类型(账户充值:“Recharge”,电子卡:“Electronic”) |
transactionID | string | 50 | Y | 流水号(GUID格式,防重复,调用方保证唯一) | |
mobilePhone | string | 11 | N | 手机号(订单类型为账户充值时必传;订单类型为电子卡时不传,详见附件) | |
countryCode | string | 10 | N | 国家码(不传默认86) | |
orderAmount | decimal | 18,2 | Y | 订单总金额,必须与SUM(OrderItem.FaceAmount* OrderItem.Quantity)一致 | |
remark | string | 200 | N | 备注 | |
orderItemList | List<orderItem> | 购买项集合(账户充值限制1行,电子礼品卡限制1-5行) | |||
orderItem | cardType | int | -- | Y | 卡类型(0:电子卡,2:账户充值) |
orderItem | ticketCategoryID | int | -- | N | 卡类别(2:任我游,3:任我行) |
orderItem | faceAmount | decimal | 18,2 | Y | 卡面额(账户充值:1-100000元,电子卡:1-1000元) |
orderItem | quantity | int | -- | Y | 数量(账户充值:只能等于1,电子卡:1-999张) |
orderExtList | List<keyValueType> | N | 订单扩展字段集合 | ||
keyValueType | key | string | 50 | Y | 扩展字段名,例如“welfareYear” |
keyValueType | value | string | 50 | Y | 扩展字段值,例如“2023” |
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
code | int | 20 | Y | 结果码(0:成功,非0 :失败或者异常) | |
message | string | 200 | Y | 结果信息 | |
data | orderID | long | -- | Y | 订单号(仅做关联展示) |
transactionID | string | 50 | Y | 流水号(与request中的流水号一致) | |
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"ticketType": "Recharge",
"transactionID": "BPRecharge_2020031****",
"mobilePhone": "1351234****",
"countryCode": "86",
"orderAmount": 5.0,
"remark": "test",
"orderItemList": [
{
"cardType": 2,
"ticketCategoryID": 3,
"faceAmount": 5.0,
"quantity": 1
}
],
"orderExtList": [
{
"key": "welfareYear",
"value": "2023"
}
]
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"orderID": 1,
"transactionID": "BPRecharge_202003101****"
},
"successful": true
}
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"ticketType": "Electronic",
"transactionID": "BPElectronic_2020031****",
"mobilePhone": "1351234****",
"countryCode": "86",
"orderAmount": 15.0,
"remark": "test",
"orderItemList": [
{
"cardType": 0,
"ticketCategoryID": 3,
"faceAmount": 5.0,
"quantity": 1
},
{
"cardType": 0,
"ticketCategoryID": 3,
"faceAmount": 10.0,
"quantity": 1
}
]
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"orderID": 2,
"transactionID": "BPElectronic_2020031****"
},
"successful": true
}
查询订单
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
requestHeader | customerNo | string | 20 | Y | 商户名(系统分配) |
timestamp | long | 20 | Y | 请求时间戳(详见附件) | |
signature | string | 50 | Y | 签名(详见附件) | |
param | pageIndex | int | -- | N | 分页索引(默认1) |
pageSize | int | -- | N | 分页大小(默认20,最大300) | |
transactionID | string | 200 | N | 流水号(多个流水号支持英文半角逗号拼接) | |
ticketType | string | 200 | N | 订单类型(Recharge:账户直充,Electronic:电子卡) | |
orderStatus | string | 200 | N | 订单状态(英文半角逗号拼接,详见附件) | |
startDate | string | -- | N | 起始日期(默认三个月前) | |
endDate | string | -- | N | 截止日期(默认当前时间) |
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
code | int | 20 | Y | 结果码(0:成功,非0 :失败或者异常) | |
message | string | 200 | Y | 结果信息 | |
data | totalRowCount | int | 总记录条数 | ||
orderInfoDTOList | List | ||||
orderInfoDTO | orderID | long | -- | Y | 订单号 |
orderInfoDTO | transactionID | string | 50 | Y | 流水号 |
orderInfoDTO | ticketType | string | 20 | Y | 订单类型(Recharge:账户直充,Electronic:电子卡) |
orderInfoDTO | orderDate | datetime | -- | Y | 下单时间 |
orderInfoDTO | mobilePhone | string | 11 | Y | 手机号 |
orderInfoDTO | countryCode | string | 10 | Y | 国家码 |
orderInfoDTO | remark | string | 200 | Y | 备注 |
orderInfoDTO | orderAmount | decimal | 18,2 | Y | 订单金额 |
orderInfoDTO | orderStatus | string | 50 | Y | 订单状态(详见附件) |
orderInfoDTO | ctripAccount | string | 50 | N | 充值UID(当订单类型是账户充值时存在) |
orderItemList | List | string | 50 | Y | 流水号 |
orderItem | orderItemID | long | -- | Y | 购买项ID |
orderItem | cardType | int | -- | Y | 卡类型(0:电子卡,2:账户充值) |
orderItem | ticketCategoryID | int | -- | Y | 卡类别(2:任我游,3:任我行) |
orderItem | faceAmount | decimal | 18,2 | Y | 卡面额 |
orderItem | quantity | int | -- | Y | 数量 |
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"orderID": "",
"transactionID": "BPRecharge_202003101****",
"ticketType": "Recharge",
"orderStatus": "Init,Paying",
"startDate": "2020-01-12 18:16:17.000",
"endDate": "2020-03-20 17:16:17.000"
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"orderInfoDTOList": [{
"orderID": 3,
"transactionID": "BPRecharge_202003101****",
"ticketType": "Recharge",
"orderDate": "2018-03-10 10:48:20.000",
"mobilePhone": "1351234****",
"countryCode": "86",
"remark": "test",
"orderStatus": "Processed",
"ctripAccount": "170000****",
"orderAmount": 5.0,
"orderItemList": [{
"cardType": 2,
"ticketCategoryID": 3,
"faceAmount": 5.0,
"quantity": 1
}]
}],
"totalRowCount": 1
},
"successful": true
}
查询订单内的礼品卡(订单类型仅限电子卡)
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
requestHeader | customerNo | string | 20 | Y | 商户名(系统分配) |
timestamp | long | 20 | Y | 请求时间戳(详见附件) | |
signature | string | 50 | Y | 签名(详见附件) | |
param | transactionID | string | 50 | Y | 流水号 |
pageIndex | int | -- | N | 分页索引(默认1) | |
pageSize | int | -- | N | 分页大小(默认20,最大200) |
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
code | int | 20 | Y | 结果码(0:成功,非0 :失败或者异常) | |
message | String | 200 | Y | 结果信息 | |
data | totalRowCount | int | Y | 总记录条数 | |
giftCardList | List | ||||
giftCardInfoDTO | orderItemID | long | -- | Y | 购买项ID |
giftCardInfoDTO | serialNum | String | 14 | Y | 卡序列号 |
giftCardInfoDTO | ticketCategoryID | int | -- | Y | 卡类别(2:任我游,3:任我行) |
giftCardInfoDTO | faceAmount | Decimal | 18,2 | Y | 卡面额 |
giftCardInfoDTO | cardCode | String | 12 | Y | 卡号 |
giftCardInfoDTO | password | String | 200 | Y | 礼品卡密码的密文格式(详见附件) |
giftCardInfoDTO | cardStatus | int | -- | Y | 礼品卡状态(详见附件) |
giftCardInfoDTO | effectiveDate | String | 50 | Y | 生效日期(yyyy-MM-dd HH:mm:ss.SSS) |
giftCardInfoDTO | expirationDate | String | 50 | Y | 失效日期(yyyy-MM-dd HH:mm:ss.SSS) |
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"transactionID": "BPElectronic_2020031****",
"pageIndex": 1,
"pageSize": 20
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"giftCardList": [
{
"orderItemID": 33670,
"serialNum": "3000000002823752",
"ticketCategoryID": 3,
"faceAmount": 10,
"cardCode": "928542665495",
"password": "xi7IXaxS9whVaAYmKNvJ1Q==",
"cardStatus": 5,
"effectiveDate": "2020-09-10 0:00:00.000",
"expirationDate": "2023-09-9 23:59:59.997"
},
{
"orderItemID": 33671,
"serialNum": "3000000002823753",
"ticketCategoryID": 3,
"faceAmount": 10,
"cardCode": "980788193810",
"password": "2aiEYpZ5AadYfsfXXBBX0w==",
"cardStatus": 5,
"effectiveDate": "2020-09-10 0:00:00.000",
"expirationDate": "2023-09-9 23:59:59.997"
}],
"totalRowCount": 2
},
"successful": true
}
查商户资金池
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
requestHeader | customerNo | string | 20 | Y | 商户名(系统分配) |
timestamp | long | 20 | Y | 请求时间戳(详见附件) | |
signature | string | 50 | Y | 签名(详见附件) | |
param | cardType | int | -- | Y | 卡类型(0:电子卡,2:账户直充) |
ticketCategoryID | int | -- | N | 卡类别(2:任我游,3:任我行) |
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
Code | int | 20 | Y | 结果码(0:成功,非0 :失败或者异常) | |
Message | String | 200 | Y | 结果信息 | |
data | TotalAmount | decimal | 18,2 | Y | 总采购金额 |
AvailableAmount | decimal | 18,2 | Y | 可用发放金额 |
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"cardType": 2,
"ticketCategoryID": 3
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"totalAmount": 2090.0000,
"availableAmount": 90.0000
},
"successful": true
}
携程通用户查询接口
接口名:queryXCTUser
接口请求地址:http://gateway.fat.ctripqa.com/flopenapi/api/queryXCTUser
Request
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
requestHeader | customerNo | string | 20 | Y | 商户名(平台提供) |
timestamp | long | 20 | Y | 请求时间戳(详见附件) | |
signature | string | 50 | Y | 签名(详见附件说明) | |
param | userid | string | 20 | Y | 用户唯一标识 |
Response
类型名 | 字段名 | 数据类型 | 长度 | 必填 | 字段描述 |
---|---|---|---|---|---|
code | int | 20 | Y | 结果码(0:成功,非0 :失败或者异常) | |
message | string | 200 | Y | 结果信息 | |
data | name | string | 50 | Y | 姓名 |
status | int | 20 | Y | 状态(2:待激活,3:已激活) | |
Demo报文:
xxxxxxxxxx
request =
{
"requestHeader": {
"customerNo": "customerNo",
"signature": "e775b82334d15fc6c307af6cf44eb714",
"timestamp": 1591087342
},
"param": {
"userid": "s12345"
}
}
response =
{
"code": 0,
"message": "成功",
"data": {
"name":"张三",
"status":3
},
"successful": true
}
关于礼品卡状态
关于时间戳Timestamp
关于流水号TransactionID
关于接口签名算法
关于礼品卡密码的密钥
关于手机号
关于返回的错误码