Version: V20171222
变更记录
Changelog: 20171222
- 创建订单传递字段修正
Changelog: 20170728
- 购买流程 增加 投保地区城市代码 、 投保省份 、 投保城市,由于投保城市不同,佣金费率会不同,所以需要获得
Changelog: 20170627
- 东航转账流程 增加 支付总价字段 consumesumpre
Changelog: 20170614
- 将东航车险团购需求加入到购买流程(对购买流程做整体修改)
- 融石提供中间接口
Changelog: 20170608
- 在调用东航创建保单信息的接口增加车辆识别代码(rackno),此项和车牌号必须填写一项,可以两项都填,不可以两项都不填
Changelog: 20170527
- 添加天安财险相关需求
Changelog: 20170523
- 页面跳转添加随路数据
Changelog: 20170519
- 增加对签名延签的规则设定 (这里做了修正)
- 添加白名单规则设定
Changelog: 20170509
- 增加错误代码解释
Changelog: 20170505
- 对支付校验中不可支付提供原因
- 对承保结果中承保失败提供原因
- 增加天安提供保单详情页面需求
Changelog: 20170504
- 更改全局流水号生成格式 S2I——>S2IDH
- 更改签名生成格式 去掉二次MD5加密形式
- 添加断链重发策略
用户购买车险流程:
用户登录东航APP积分商城,点击积分换车险的推广图片,东航判断是否是员工用户,调用融石引导接口,融石记录东航相关数据,并引导进入天安车险APP页面,用户填写个人信息车辆信息,以及车险信息,进行报价以及核保,核保成功后,天安车险调用融石接收接口,融石跳转到东航APP核保成功页面,东航APP确认用户登录,生成订单,引导用户进入支付流程,核保失败则调用融石接收接口跳转东航APP核保失败页面,东航提示用户核保失败,引导用户重新购买其他车辆车险。
由于东航要求域名不能变更防钓鱼,所以页面跳转将做地址映射:
|域名|值|说明|
|:----|:----:|
|ta-s2i.ceair.com|s2i.95505.com.cn|天安提供,东航设置|
|rongstone-s2i.ceair.com|s2i.rongstone.com|融石提供,东航设置|
|shop-s2i.ceair.com|shopping.ceair.com|东航提供,东航设置|
用户购买流程涉及页面和后台程序,比较复杂所以做出以下更详细的数据流转方式
页面信息跳转流程
- 用户点击车险引导图片,东航H5调用东航后台,东航后台判断用户是否登录
- 如果是登录用户,判断是否符合车险团购条件,如果符合条件,东航后台用用户相关信息制作串号(serialno),反之不制作或空
- 东航H5获得串号后,跳转到融石页面,融石接收串号以及相关随路数据。
- 融石保存串号和随路数据,并通过串号是否为空,分别跳转到天安不同渠道页面,有串号跳转到天安的东航团购渠道页面,反之,跳转到天安的东航普通渠道页面。
- 融石跳转天安页面的时候,将给一个随机码。
- 用户在天安页面填写车辆信息,并点击核保。
- 核保失败,天安调用融石接收核保结果接口,并将失败内容和融石给的随机码发送给融石。
- 核保成功,天安后台调用融石创建投保单接口,并传递随机码
- 融石通过随机码获得串号,并通过是否有串号判断是否使用原始价格还是团购价格,融石制作全局流水号,并发送给东航。
- 东航接收到核保信息和价格,以及串号,并对串号进行验证,如果为空,说明为普通价格,如果不为空,验证正确性,并记录为团购。
- 东航记录核保信息后返回 sessionid 给融石,融石收到后并将全局流水号返回给天安。
- 天安记录全局流水号,并带着随机码调用融石接收核保结果接口。
- 融石接收到随机码后,得到 sessionid 和东航随路数据,并调用东航指定页面。
- 东航收到sessionid 后,进行后续操作
支付校对流程
用户在支付订单前,进行登录验证,确认用户登录后,用户填写使用积分数量,系统并计算出使用现金数额,用户点击下单,东航后台服务调用天安后台服务,进行保单支付校对,东航后台服务获得支付校对结果,当校对结果为可以支付,东航APP引导用户去支付费用,反之,此订单不可被支付,请用户重新购买此车险。
转账流程
用户进行支付,支付成功后,东航后台服务通知融石科技转账,融石科技通知天安系统(天安财险和天安APP)扣费,天安系统进行扣费,并将扣费结果回传给融石科技,融石科技判断扣费结果,扣款成功则通知东航后台服务转账成功,如果扣款失败,短信或微信方式告知人工查账续费,续费成功后,人工手动调用通知天安系统扣费,天安系统进行扣费。
承保流程
天安系统(天安财险和天安APP)进行承保,承保结果通知融石科技,融石科技通知东航后台服务,东航后台服务判断承保结果,承保通过,东航后台服务订单结束,承保拒绝,东航后台服务进入用户退款流程。(融石科技人工退款)。
状态列表
东航状态列表
状态类型 | 状态名称 | 状态说明 |
---|---|---|
用户端状态 | 已投保待支付 | 天安生成订单号和投保号时通知东航接口后 |
用户端状态 | 已支付待承保 | 用户支付成功后到天安承保结果返回前 |
用户端状态 | 承保成功 | 天安承保成功通知东航接口后 |
用户端状态 | 承保失败待退款 | 天安承保失败通知东航接口后 |
以上是用户端的状态,其中没有涉及和购买车险无关的状态,请东航自行补充上
东航业务状态列表
状态类型 | 状态名称 | 状态说明 |
---|---|---|
业务状态 | 已投保待支付 | 天安生成订单号和投保号时通知东航接口后 |
业务状态 | 待支付 | 用户支付前到天安进行支付校验返回结果为可支付后 |
业务状态 | 不可支付 | 用户支付前到天安进行支付校验返回结果为不可支付后 |
业务状态 | 已支付待转账 | 用户支付成功后到通知融石科技转账前 |
业务状态 | 已通知转账待确认 | 通知融石科技转账后到返回转账结果前 |
业务状态 | 已转账待承保 | 融石科技转账成功到通知天安返回承保结果前 |
业务状态 | 转账失败待退款 | 融石科技返回转账失败 |
业务状态 | 承保完成 | 融石科技返回承保成功 |
业务状态 | 承保失败待退款 | 融石科技返回承保失败 |
以上是业务状态,其中没有涉及和购买车险无关的状态,请东航自行补充上
接口方案
传输方式
HTTPS 传输 端口443
Method:POST
Content-Type:application/json
Encoding:UTF-8
鉴权方法
HTTP头
HTTP头名称 | 字段说明 | 样例 |
---|---|---|
timestamp | 时间戳 | 1490259359789 |
signature | 签名字段 | 此字段为算法见下文 |
名称 | 字段说明 |
---|---|
timestamp | 13位时间戳,需要判断接收到的时间戳 是否在当前时间的前后30分钟,如果不是,将按照无效请求处理 |
signature | String temp = MD5(globalno + "I" + token.upper() + "I" + timestamp) |
globalno | 全局流水号 : S2IDH2017032800001 固定位(S2IDH) + 日期(20170328) + 最大10万(00001) |
token | 令牌,三方各持有一个令牌,接收方将按照自己持有的令牌进行判断,发送方将使用要接收方的令牌进行签名。 令牌在做签名的时候需要全大写。 令牌使用时为提供服务方,用自己令牌做签名验证,而调用方,用对端令牌制作签名 |
令牌持有方 | 令牌号 | 说明 |
---|---|---|
东航系统 | DHXXXXXXXXXXXXXX | 此项为配置项,在上线前统一修改,请勿写死在代码中 |
融石科技 | RSXXXXXXXXXXXXXX | 此项为配置项,在上线前统一修改,请勿写死在代码中 |
天安系统 | TAXXXXXXXXXXXXXX | 此项为配置项,在上线前统一修改,请勿写死在代码中 |
返回结构
{statusCode:"000000",error:"错误信息",result:JSON}
在statusCode 为000000时,说明业务成功返回,此时result为返回结果,为必填项。
反之,说明业务失败返回,此时error为返回的错误信息,为必填项。
域名转向说明
生产环境
域名 | 值 | 说明 |
---|---|---|
tacx.ceair.com | td-pro.ta-by.com | 天安提供,东航设置 |
cxrs.ceair.com | s2i.rongstone.com | 融石提供,东航设置 |
shop-s2i.ceair.com | shopping.ceair.com | 东航提供,东航设置 |
测试环境
域名 | 说明 |
---|---|
td-uat.ta-by.com | 天安域名 |
s2i.rongstone.com | 融石域名 |
shoppingactivity.ceair.com | 东航域名 |
接口概述
东航相关接口
类型 | 方式 | 第三方 | 接口名称 | 接口地址 | 说明 |
---|---|---|---|---|---|
H5页面 | 被调用 | 融石 | 生成订单 | /s2i/tashoporder | 此URL供提交保单信息后回调使用,核保成功传入sessionid,核保失败传入失败信息 |
后台接口 | 被调用 | 融石 | 创建保单信息 | /s2i/createinsurancepolicyinfo | 此接口保存用户提交的保单信息和串号并返回sessionid |
后台接口 | 被调用 | 融石 | 接收转账结果 | /s2i/recivetransferresult | 此接口返回融石转账结果 |
后台接口 | 被调用 | 融石 | 接收承保结果 | /s2i/reciveacceptanceresult | 此接口返回承保结果 |
H5页面 | 调用 | 融石 | 保单页面 | [RS]/s2i/insurancepolicyinfo.html | 此页面为用户投保成功后在订单页面查看的保单详情页面 |
H5页面 | 调用 | 融石 | 引导购买请求 | [RS]/s2i/guide.html | 此页面为引导购买并转向渠道页面 |
后台接口 | 调用 | 融石 | 支付校验 | [RS]/s2i/checkorderpayablestatus | 此接口校验保单是否可以支付 |
后台接口 | 调用 | 融石 | 接收转账请求 | [RS]/s2i/recivetransferrequest | 此接口为请求融石转账 |
天安相关接口
类型 | 方式 | 第三方 | 接口名称 | 接口地址 | 说明 |
---|---|---|---|---|---|
H5页面 | 被调用 | 融石 | 核保页面 | /s2i/ceair/index.html | 此页面为引导用户填写车辆信息和报价核保页面 |
H5页面 | 被调用 | 东航 | 保单页面 | /s2i/ceair/insurancepolicyinfo.html | 此页面为用户投保成功后在订单页面查看的保单详情页面 |
后台接口 | 被调用 | 融石 | 发送验证码 | /s2i/getverificationcode | 北京车险需要给车主发送验证码 |
后台接口 | 被调用 | 融石 | 验证验证码 | /s2i/verificationcode | 北京车险需要验证给车主发送的验证码 |
后台接口 | 被调用 | 融石 | 支付校验 | /s2i/checkorderpayablestatus | 此接口校验保单是否可以支付 |
后台接口 | 被调用 | 融石 | 接收扣款请求 | /s2i/recivepayrequest | 此接口为请求天安扣款 |
后台接口 | 调用 | 融石 | 创建保单信息 | [RS]/s2i/createinsurancepolicyinfo | 此接口保存用户提交的保单信息并返回globalno |
H5页面 | 调用 | 融石 | 接收核保结果 | [RS]/s2i/confirm.html | 此页面为引导接收核保结果,传入randomno,核保失败传入失败信息 |
后台接口 | 调用 | 融石 | 接收扣款结果 | [RS]/s2i/recivepayresult | 此接口发送扣款结果 |
后台接口 | 调用 | 融石 | 接收承保结果 | [RS]/s2i/reciveacceptanceresult | 此接口发送承保结果 |
接口详述
- 【】 这个是东航需要看到的接口说明
- () 这个是天安需要看到的接口说明
购买流程接口
1. 【引导投保页】(引导投保页)
东航——>融石
https://rongstone-s2i.ceair.com/s2i/guide.html
time=1490259359789 为防止缓存
p:随路数据
serialno:串号
https://rongstone-s2i.ceair.com/s2i/guide.html?p=XXXXXXXX& serialno=XXXXXXXXXX&source=ceair&backurl=https://shopping.ceair.com&time=1490259359789
2. 【用户填写投保信息页面】(核保页面)
融石——>天安
https://ta-s2i.ceair.com/s2i/ceair/index.html?randomno=XXXXXXXX&channel=XXX
randomno :随机码
channel:渠道
3. 【引导投保返回页】(接收核保结果)
天安——>融石
https://rongstone-s2i.ceair.com/s2i/ceair/confirm.html
randomno=XXXXXXXX:随机码
time=1490259359789 为防止缓存
%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E9%94%99%E8%AF%AF 这个是"车辆信息错误"的URL编码
核保成功调用如下
https://rongstone-s2i.ceair.com/s2i/ceair/confirm.html?randomno=g3k2d3h5v4t3j1j&reason=&time=1490259359789
核保失败调用如下
https://rongstone-s2i.ceair.com/s2i/ceair/confirm.html?randomno=g3k2d3h5v4t3j1j&reason=%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E9%94%99%E8%AF%AF&time=1490259359789
4. 【引导创建投保单信息】(创建投保单信息)
天安——>融石
https://rongstone-s2.ceair.com/s2i/createinsurancepolicyinfo
RequestBody:
{
globalno: "XXXXXXXXXXXXX", //这里是随机码 (仍然用这个做签名)
appno: "0703500136320170000648", //投保单号
name: "张德智", //车主姓名
plateno: "陕CC0969", //车辆号牌
rackno: "LNBSCCAJ6DR327158", //车辆识别代码
engineno: "HK6799", // 发动机号
registdate: "2014-01-08", //车辆注册日期
brandmodelname: "北京BJ7150C3D1A轿车", //车辆品牌
citycode:"3440200", // 车辆投保城市代码
provincename:"广东省", // 车辆投保城市名称
cityname:"韶关市", // 车辆投保城市名称
businesspre: "3762.58", //商业险费用
jqxpre: "760.00", //交强险费用
vehicletax: "720.00", //车船税费用
sumpre: "5242.58" //保险总费用
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "S2IDH2017032800001" //返回全局流水号
}
5. 【创建投保单信息】(东航创建投保单信息)
融石——>东航
https://shop-s2i.ceair.com/s2i/createinsurancepolicyinfo
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648",//投保单号
name: "张德智", //车主姓名
plateno: "陕CC0969", //车辆号牌
rackno: "LNBSCCAJ6DR327158", //车辆识别代码
citycode:"3440200", // 车辆投保城市代码
provincename:"广东省", // 车辆投保城市名称
cityname:"韶关市", // 车辆投保城市名称
businesspre: "3762.58", //商业险费用 (这个费用是原始价格)
jqxpre: "760.00", //交强险费用 (这个费用是原始价格)
vehicletax: "720.00", //车船税费用 (这个费用是原始价格)
sumpre: "5242.58" //保险总费用 (这个费用是原始价格)
sellsumpre: "5242.58" //保险总费用 (这个费用是优惠过的)
serialno: "XXXXXXXXXX", //串号 (此项如果之前没有传递,为空)
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "23j4234j231k32kj" //返回 sessionid
}
6. 【生成投保订】(东航生成投保订)
融石——>东航
https://shop-s2i.ceair.com/s2i/tashoporder
time=1490259359789 为防止缓存
%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E9%94%99%E8%AF%AF 这个是"车辆信息错误"的URL编码
p=fasdfasdfasdfatqrre 此项为随路数据
核保成功调用如下
https://shop-s2i.ceair.com/s2i/tashoporder?sessionid=g3k2d3h5v4t3j1j&reason=&p=fasdfasdfasdfatqrre&time=1490259359789
核保失败调用如下
https://shop-s2i.ceair.com/s2i/tashoporder?sessionid=&reason=%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E9%94%99%E8%AF%AF&p=fasdfasdfasdfatqrre&time=1490259359789
7. 【用户保单详情信息页面】(保单页面)
东航——>融石
<1> 查看投保详细信息,用投保号做为参数
https://rongstone-s2.ceair.com/s2i/policyinfo.html?globalno=S2IDH2017032800001&appno=0703500136320170000648
当核保成功后,用户在订单页面,要查看保单详情时,将超链 <1> 页面,并提供全局流水号和投保号。只有当全局流水号和投保号完全正确时,才能显示投保详情信息,否则查无数据。
校验流程接口
8. 【用户支付校验】(引导支付校验)
东航——>融石
https://rongstone-s2.ceair.com/s2i/checkorderpayablestatus
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "success" //返回 success fault unkown
}
9. 【支付校验】(支付校验)
融石——>天安
https://ta-s2.ceair.com/s2i/checkorderpayablestatus
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
如果支付校验失败,主要需要提供校验失败原因,并分为两大类:
- 此投保车辆再次投保后,并再次进行支付校验。
- 此投保车辆再次投保后,支付校验也不会通过。
10. 【发送验证码】(发送验证码)
融石——>天安
https://ta-s2.ceair.com/s2i/getverificationvode
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
11. 【验证验证码】(验证验证码)
融石——>天安
https://ta-s2.ceair.com/s2i/verificationvode
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
issuecode:”123456” //验证码
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
转账流程接口
10. 【发送转账请求】(转账请求)
东航——>融石
https://rongstone-s2i.ceair.com/s2i/recivetransferrequest
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648",//投保单号
consumesumpre:"4242.58", //收取用户的总价(现金+积分*兑换率)
score:"2000", //用户使用积分数量
cash:"3242.58", //用户使用现金数量
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
11. 【接收转账请求】(接收扣款请求)
融石——>天安
https://ta-s2i.ceair.com/s2i/recivepayrequest
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
12. 【融石接收转账结果】(发送扣款结果)
天安——>融石
https://rongstone-s2i.ceair.com/s2i/recivepayresult
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
payno:"XXXXXXXXXXXXXXXXX", //交易流水号,当返回支付结果时,此项为和通联支付的交易流水号
result:"success", //success 为扣款成功,为fault 为扣款失败
reason:"" //扣款成功的时候 此项为空,扣款失败的时候 此项为失败原因
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
13. 【接收转账结果】(发送扣款结果)
融石——>东航
https://shop-s2i.ceair.com/s2i/recivetransferresult
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
result:"success", //success 为转账成功,为fault 为转账失败
reason:"" //转账成功的时候 此项为空,转账失败的时候 此项为失败原因
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
承保流程接口
14. 【融石接收承保结果】(发送承保结果)
天安——>融石
https://rongstone-s2i.ceair.com/s2i/reciveacceptanceresult
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
polno:"6703530136320170000695", //保单号 当承保失败 此项为空
result:"success", //success 为承保成功,为fault 为承保失败
reason:"" //承保成功的时候 此项为空,payresult 承保失败的时候 此项为失败原因
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
如果承保失败,提供失败原因。方便用户后续操作后,可以重新购买车险
15. 【接收承保结果】(发送承保结果)
融石——>东航
https://shop-s2i.ceair.com/s2i/reciveacceptanceresult
RequestBody:
{
globalno: "S2IDH2017032800001", //全局流水号
polno:"6703530136320170000695", //保单号 当承保失败 此项为空
result:"success", //success 为承保成功,为fault 为承保失败
reason:"" //promiseresult 未success 的时候 此项为空,promiseresult 为fault 的时候 此项为失败原因
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "ok" //返回ok
}
错误代码
代码 | 说明 |
---|---|
100000 | 系统错误 |
103001 | 传递的https中消息体为空(body==null) |
103002 | 传递的https中消息体不为JSON |
103003 | 此IP禁止访问错误 |
103004 | Timestamp不存在 |
103005 | Signature不存在 |
103006 | Timestamp格式错误 |
103007 | Timestamp不在现在时间范围 |
103008 | 签名错误 |
103009 | 全局流水号不存在 |
103010 | 全局流水号已存在 |
103011 | 投保号已存在 |
103012 | 保单号已存在 |
103012 | 保单号为空 |
断链重发策略
重发条件
1、当调用接口时,timeout时长为:65秒
2、返回的HTTP状态码 不是200 (此时需要记录日志)
重发策略
5秒、1分钟、5分钟,当需要重发时,将有3次重发机会,如果仍然不能正确返回(HTTP状态码为200)将进行报警处理,具体报警处理方式不做统一说明。
签名相关说明
- 调用端 使用对端所属的Token进行签名。
- 服务端 使用自己所属的Token进行验签。
例如 东航请求支付校验到天安,这里东航就是调用端,所以要用TA的Token进行签名发送给天安,而天安这个接口是服务端,所以要用自己的Token(TA)进行验签。
服务器白名单
- 接口在做服务端时,被调用时,需要用对端的服务器白名单进行服务器验证,这里的白名单可以是列表,只有在列表中的服务器访问才能通过白名单验证。
页面随路数据
- 东航用户点击推广图片后开启
https://ta-s2i.ceair.com/s2i/ceair/index.html?p=fasdfasdfasdfatqrre
这里p是随路数据. 如果无此值,默认为字符串空
- 当天安核保完成,准备跳回到东航页面时,需要将上述的随路数据原样返回
核保成功调用如下
https://shop-s2i.ceair.com/s2i/tashoporder?sessionid=g3k2d3h5v4t3j1j&reason=&p=fasdfasdfasdfatqrre&time=1490259359789
核保失败调用如下
https://shop-s2i.ceair.com/s2i/tashoporder?sessionid=&reason=%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E9%94%99%E8%AF%AF&p=fasdfasdfasdfatqrre&time=1490259359789
天安财险相关流程
1. 支付校验流程
用户填写完车辆信息后,并回转到东航订单支付页面。当用户点击支付订单时,东航后台服务调用同道后台服务支付校验接口,同道收到后重组数据,调用天安财险支付校验,天安财险进行校验,将校验结果同步返回给同道,同道判断结果信息,将是否可支付同步回传给东航,整个调用为同步链式调用。
内部支付校验接口
同道调用 RequestBody,天安财险返回ResponseBody
RequestBody:
appno: "0703500136320170000648" //投保单号
成功 ResponseBody:
result:"success"
失败 ResponseBody:
result:"fault"
errorcode:"102303"
支付校验成功,同道直接返回东航成功
支付校验失败,需要将失败原因(errorcode)返回给同道,同道需要根据原因分析出两类错误:
- 此投保单再次校验,有可能会成功 (此种情况类似是由于车辆有未消的罚单导致的校验失败)
- 此投保单再次校验,不可能会成功 (此投保单过期,或其他情况)
同道需要重新组织错误信息,并定义出描述文本 返回给东航校验失败
2. 内部代收承保流程
融石后台服务得到东航后台服务的转账请求后,融石调用同道转账接口,同道收到请求后返回ok,并调用天安财险代收接口,天安财险收到后返回ok,并调用通联进行代收,如返回的状态为中间状态,天安财险需根据通联文档提供的查询策略调用通联支付查询接口,多次调用后,当获得的状态为最终结果(代收成功或代收失败)后,天安财险调用同道的接收结果接口(参数为代收结果)。同道收到结果后调用融石接收支付结果接口。
当天安财险得到通联的最终结果为代收成功,天安财险将进行承保,并将承保结果发送到同道的接收结果接口(参数为承保结果),同道也将承保结果发送到融石的接收承保结果接口。全流程均为及时返回并得到结果后回调。
由于上海地区购买车险比较特殊,需要和中保付对接,所以天安财险在支付前,需要判断是否是上海地区车险,来决定是调用通联支付,还是调用中保付支付。
内部代收接口
同道调用 RequestBody,天安财险返回ResponseBody
RequestBody:
globalno: "S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648" //投保单号
ResponseBody:
result:"ok"
接收结果接口
天安财险调用 RequestBody,同道返回ResponseBody
RequestBody:
{
globalno:"S2IDH2017032800001", //全局流水号
appno: "0703500136320170000648", //投保单号
result:"paysuccess", //paysuccess:代付成功, payfault:代付失败 , acceptancesuccess:承保成功 ,acceptfault:承保失败
payno:"XXXXXXXXXXXXXXXXX", //交易流水号,当返回支付结果时,此项为和通联支付的交易流水号
polno:"6703530136320170000695", //保单号,在返回承保结果,并且承保成功时返回
errorcode:"102303" //错误代码,当代付失败,或承保失败时,此为失败的错误代码
}
ResponseBody:
result:"ok"
这里在支付失败的情况下,需要做到 从errorcode能辨别出是余额不足导致的支付失败,还是其他原因导致的支付失败
这里在承保失败的情况下,需要做到 从errorcode能辨别出是此车辆是否还能承保。
3. 对账方案
1. 天安财险-通联支付
在通联支付的页面上下载流水单(具体地址请和通联技术沟通),这里需要考虑两个流水(1. 上海地区车险 2. 非上海地区车险) ,将此流水和本地数据进行比对。
2. 同道出行-融石科技
同道出行提供业务流水单,融石科技也提供业务流水单。相互比对
3. 融石科技-通联支付
在通联支付的页面上下载流水单(具体地址请和通联技术沟通),这里需要考虑两个流水(1. 上海地区车险 2. 非上海地区车险) ,将此流水和本地数据进行比对。
4. 融石科技-东方航空
东方航空提供业务流水单,融石科技也提供业务流水单。相互比对