中招金服保函对接参考文档
中招联合
一、文档说明
二、业务说明
流程交互图:
三、接入方式
1 通讯协议
所有接口基于HTTP协议进行通讯,通讯报文采用JSON格式, 编码为UTF-8。提交请求使用POST方式提交。
2 加密方式: 报文采用SM3国密算法签名 ,联调时,协调设置signKey。
3 请求头Content-Type: application/json
4 时间戳为毫秒级
四、加密签名
签名后的hash值,保存请求头header中的sign参数中。
第一步,将请求参数,按键值升序
第二步,json化请求参数,得到A1字符串
第三步,A1+signKey的值,得到A2字符串
第四步,将A2字段串,做sm3签名,得到二进制的签名结果A3
第五步,将A3,使用base64加密,得到sign
五、接口说明
1、申请保函接口
1.1、接口路径:
1.2、接口描述
中招联合作为请求方,请求保函方;传递请求参数,请求申请保函
1.3、接口参数
字段名 |
类型 |
是否必传 |
说明 |
projectCode |
string |
Y |
项目编号 |
projectName |
string |
Y |
项目名 |
sectionCode |
string |
Y |
标段编号 |
sectionName |
string |
Y |
标段名 |
tendereeName |
string |
Y |
招标企业名(甲方) |
bidOpenTime |
string |
Y |
开标时间,格式为“YYYY-MM-DD HH:mm:ss” |
bidValidityDays |
int |
Y |
保函有效期(开标时间后) |
marginApplied |
String |
Y |
担保金额 50000.00 |
bidderOrgName |
string |
Y |
投标企业名 |
bidderContactName |
string |
Y |
投保联系人 |
bidderContactMobile |
string |
Y |
投保联系人手机 |
bidderEmai |
string |
Y |
投保联系人邮箱 |
bidderOrgCode |
string |
Y |
投保人统一社会信用代码 |
timestamp |
string |
Y |
时间戳(毫秒级) |
1.4、接口返回值
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
data |
Object |
N |
成功时,返回的数据 |
{ |
|
|
|
guaranteeNo |
String |
Y |
保函申请单号 |
payUrl |
String |
Y |
支付地址 |
} |
|
|
|
2、支付结果通知接口
2.1、接口路径:/guarantee/notice/pay
2.2、接口描述:
保函方作为请求方,用户支付成功后,请求中招联合,传递请求参数,告知中招联合用户支付结果
2.3、接口参数
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
payStatus |
string |
Y |
支付状态(1成功,0失败) |
actualRate |
string |
Y |
实际支付费率 |
actualCost |
string |
Y |
实际支付费用金额 |
timestamp |
string |
Y |
时间戳(毫秒级) |
paySuccessTime |
string |
Y |
支付成功时间,格式为“YYYY-MM-DD HH:mm:ss” |
2.4、接口返回值
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
3、获取支付结果接口
3.1、接口路径:
3.2、接口描述:
中招联合作为请求方,主动请求保函方获取指定保函的支付结果情况
3.3、接口参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
timestamp |
string |
Y |
时间戳(毫秒级) |
3.4、接口返回值
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
data |
Object |
N |
成功时,返回的数据 |
{ |
|
|
|
guaranteeNo |
String |
Y |
保函申请单号 |
payStatus |
string |
Y |
支付状态(1成功,0未支付) |
paySuccessTime |
string |
N |
支付成功时间,格式为“YYYY-MM-DD HH:mm:ss”(支付成功必传) |
actualRate |
string |
N |
实际支付费率(支付成功必传) |
actualCost |
string |
N |
实际支付费用金额(支付成功必传) |
} |
|
|
|
4、出函结果通知接口
4.1、接口路径:/guarantee/notice/apply
4.2、接口描述:
保函方作为请求方,用户支付成功后,等待出函,将出函结果告知中招联合
4.3、接口参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
result |
string |
Y |
保函状态(1成功,0失败,2拒绝) |
guaranteeCode |
string |
N |
保函编号,result=1时必传 |
fileDownUrl |
string |
N |
保函文件下载地址,result=1时必传 |
fileBase64 |
String |
N |
保函文件base64,result=1时必传 |
policyFileDownUrl |
String |
N |
保险单文件下载地址(保险保函的时候传) |
policyFileBase64 |
String |
N |
保险单文件Base64(保险保函的时候传) |
generateTime |
String |
N |
出汗时间(格式为“YYYY-MM-DD HH:mm:ss”),result=1时必传 |
rejectReason |
String |
N |
拒绝、失败原因 |
timestamp |
string |
Y |
时间戳(毫秒级) |
4.4、接口返回值
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
5、获取出函结果接口
5.1、接口路径:
5.2、接口描述:
中招联合作为请求方,主动请求保函方获取指定保函的出函结果情况
5.3、接口参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
timestamp |
string |
Y |
时间戳(毫秒级) |
5.4、接口返回值
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
data |
Object |
N |
成功时,返回的数据 |
{ |
|
|
|
guaranteeNo |
String |
Y |
保函申请单号 |
result |
string |
Y |
保函状态(1成功,0失败,2拒绝) |
guaranteeCode |
string |
N |
保函编号,result=1时必传 |
fileDownUrl |
string |
N |
保函文件下载地址,result=1时必传 |
fileBase64 |
String |
N |
保函文件base64,result=1时必传 |
policyFileDownUrl |
String |
N |
保险单文件下载地址(保险保函的时候传) |
policyFileBase64 |
String |
N |
保险单文件Base64(保险保函的时候传) |
generateTime |
String |
N |
出汗时间(格式为“YYYY-MM-DD HH:mm:ss”),result=1时必传 |
rejectReason |
String |
N |
拒绝、失败原因 |
} |
|
|
|
6、开具发票接口
6.1、接口路径:
6.2、接口描述:
中招联合作为请求方,当开具保函成功时,会主动请求保函方开具发票
6.3、接口参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
amount |
String |
Y |
开票金额 |
type |
String |
Y |
开票类型:0普票;1专票; |
bidderOrgName |
string |
Y |
投标企业名 |
bidderOrgCode |
string |
Y |
投标企业统一社会信用代码 |
bidderOrgPhone |
String |
N |
公司电话,专票时必填 |
bidderOrgAddress |
String |
N |
公司地址,专票时必填 |
bidderOrgBank |
String |
N |
开户行,专票时必填 |
bidderOrgAccount |
String |
N |
帐号,专票时必填 |
|
String |
N |
接受电子发票邮箱,普票时必填 |
postalAddress |
String |
N |
邮寄专票地址,专票时必填 |
timestamp |
string |
Y |
时间戳(毫秒级) |
6.4、接口返回值:
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
7、开具发票结果通知接口
7.1、接口路径:/guarantee/notice/invoice
7.2、接口描述:
保函方作为请求方,用户申请开票成功后,将发票开具结果及发票数据传回给中招联合方
7.3、接口请求参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
type |
String |
Y |
开票类型:0普票;1专票; |
result |
string |
Y |
开票状态(1成功,0失败) |
fileDownUrl |
string |
N |
发票文件下载地址,type=0时必传 |
invoiceTime |
String |
N |
开票时间(格式为“YYYY-MM-DD HH:mm:ss”),type=0时必传 |
timestamp |
string |
Y |
时间戳(毫秒级) |
7.4、接口返回值:
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |
8、取消保函申请接口
8.1、接口路径:
8.2、接口描述:
中招联合作为请求方,当用户未付款时,可以取消保函申请,调用保函方取消当前保函申请
8.3、接口请求参数:
字段名 |
类型 |
是否必传 |
说明 |
guaranteeNo |
String |
Y |
保函申请单号 |
timestamp |
string |
Y |
时间戳(毫秒级) |
8.4、接口返回值:
参数名 |
类型 |
是否必须 |
说明 |
code |
String |
Y |
响应代码 0:成功 其他:失败 |
message |
string |
Y |
成功、失败信息 |