需求文档及接口设计

Version: V20171222

变更记录

Changelog: 20171222

  1. 创建订单传递字段修正

Changelog: 20170728

  1. 购买流程 增加 投保地区城市代码 、 投保省份 、 投保城市,由于投保城市不同,佣金费率会不同,所以需要获得

Changelog: 20170627

  1. 东航转账流程 增加 支付总价字段 consumesumpre

Changelog: 20170614

  1. 将东航车险团购需求加入到购买流程(对购买流程做整体修改)
  2. 融石提供中间接口

Changelog: 20170608

  1. 在调用东航创建保单信息的接口增加车辆识别代码(rackno),此项和车牌号必须填写一项,可以两项都填,不可以两项都不填

Changelog: 20170527

  1. 添加天安财险相关需求

Changelog: 20170523

  1. 页面跳转添加随路数据

Changelog: 20170519

  1. 增加对签名延签的规则设定 (这里做了修正)
  2. 添加白名单规则设定

Changelog: 20170509

  1. 增加错误代码解释

Changelog: 20170505

  1. 对支付校验中不可支付提供原因
  2. 对承保结果中承保失败提供原因
  3. 增加天安提供保单详情页面需求

Changelog: 20170504

  1. 更改全局流水号生成格式 S2I——>S2IDH
  2. 更改签名生成格式 去掉二次MD5加密形式
  3. 添加断链重发策略

用户购买车险流程:

用户登录东航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|东航提供,东航设置|

用户购买流程涉及页面和后台程序,比较复杂所以做出以下更详细的数据流转方式

页面信息跳转流程

  1. 用户点击车险引导图片,东航H5调用东航后台,东航后台判断用户是否登录
  1. 如果是登录用户,判断是否符合车险团购条件,如果符合条件,东航后台用用户相关信息制作串号(serialno),反之不制作或空
  2. 东航H5获得串号后,跳转到融石页面,融石接收串号以及相关随路数据。
  3. 融石保存串号和随路数据,并通过串号是否为空,分别跳转到天安不同渠道页面,有串号跳转到天安的东航团购渠道页面,反之,跳转到天安的东航普通渠道页面。
  4. 融石跳转天安页面的时候,将给一个随机码。
  5. 用户在天安页面填写车辆信息,并点击核保。
  6. 核保失败,天安调用融石接收核保结果接口,并将失败内容和融石给的随机码发送给融石。
  7. 核保成功,天安后台调用融石创建投保单接口,并传递随机码
  8. 融石通过随机码获得串号,并通过是否有串号判断是否使用原始价格还是团购价格,融石制作全局流水号,并发送给东航。
  9. 东航接收到核保信息和价格,以及串号,并对串号进行验证,如果为空,说明为普通价格,如果不为空,验证正确性,并记录为团购。
  10. 东航记录核保信息后返回 sessionid 给融石,融石收到后并将全局流水号返回给天安。
  11. 天安记录全局流水号,并带着随机码调用融石接收核保结果接口。
  12. 融石接收到随机码后,得到 sessionid 和东航随路数据,并调用东航指定页面。
  13. 东航收到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. 【】 这个是东航需要看到的接口说明
  2. () 这个是天安需要看到的接口说明

购买流程接口

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
}

如果支付校验失败,主要需要提供校验失败原因,并分为两大类:

  1. 此投保车辆再次投保后,并再次进行支付校验。
  2. 此投保车辆再次投保后,支付校验也不会通过。
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)将进行报警处理,具体报警处理方式不做统一说明。

签名相关说明

  1. 调用端 使用对端所属的Token进行签名。
  1. 服务端 使用自己所属的Token进行验签。
    例如 东航请求支付校验到天安,这里东航就是调用端,所以要用TA的Token进行签名发送给天安,而天安这个接口是服务端,所以要用自己的Token(TA)进行验签。

服务器白名单

  1. 接口在做服务端时,被调用时,需要用对端的服务器白名单进行服务器验证,这里的白名单可以是列表,只有在列表中的服务器访问才能通过白名单验证。

页面随路数据

  1. 东航用户点击推广图片后开启
    https://ta-s2i.ceair.com/s2i/ceair/index.html?p=fasdfasdfasdfatqrre
    这里p是随路数据. 如果无此值,默认为字符串空
  1. 当天安核保完成,准备跳回到东航页面时,需要将上述的随路数据原样返回
    核保成功调用如下
    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)返回给同道,同道需要根据原因分析出两类错误:

  1. 此投保单再次校验,有可能会成功 (此种情况类似是由于车辆有未消的罚单导致的校验失败)
  2. 此投保单再次校验,不可能会成功 (此投保单过期,或其他情况)

同道需要重新组织错误信息,并定义出描述文本 返回给东航校验失败


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. 融石科技-东方航空

东方航空提供业务流水单,融石科技也提供业务流水单。相互比对

你可能感兴趣的:(需求文档及接口设计)