业务系统设计#
用户交互建议#
用户发起开票请求后,根据当前处理状态,前端应显示相应的状态信息。
若请求转为异步处理,用户只需耐心等待,无需进行任何额外操作,系统应自动处理并更新状态。业务操作状态#
业务系统设计中建议包含的操作状态:未开票、开票中、异步开票中、开票完成、开票失败。 未开票:发票开具流程尚未开始。 开票中:发票开具流程正在同步执行中。 异步开票中:同步处理预计耗时过长,请求已自动转为异步处理,发票开具流程在后台进行中。 开票完成:发票已成功开具,无论是同步还是异步处理,最终都将达到此状态。 开票失败:发票开具过程中遇到错误,无论是同步还是异步处理,均将返回失败状态及相应错误信息。 异步处理机制#
自动转换:当同步处理时间预计超过40秒时,系统将自动将请求转为异步处理,无需用户干预,并返回reqeustId,系统可通过异步请求结果查询接口来异步获取结果。 界面反馈:转为异步处理后,前端界面将即时显示“异步开票中”状态,提醒用户当前操作已转为后台处理。 结果查询:用户无需进行任何额外操作,后台将自动轮询或通过异步回调机制获取处理结果,并更新状态为“开票完成”或“开票失败”。 异常处理:所有异步处理过程中可能出现的异常情况,应由系统后台自动捕获并处理,确保用户界面的友好性和系统的稳定性。
{
"async": false,
"nsrsbh": "91***********17",
"data": {
"xsf_yhmc": "中国银行***********支行",
"hjse": "7.75",
"ly_ddbh": "2024092*****li03v5",
"gmf_dz": "",
"wjgs": "OFD,PDF,XML",
"gmf_nsrmc": "个人",
"xsf_nsrsbh": "91***********17",
"gfxx_confirm": "0",
"xsf_dz": "深圳市***************************B栋102",
"xsf_nsrmc": "深圳市*********有限公司",
"gmf_lx": "0",
"fplxdm": "030",
"bz": "订单号: 2024092*****li03v5",
"xmmx": [{
"ggxh": "FA26",
"fphxz": "0",
"se": "7.75",
"spsl": "1",
"xmmc": "桌面风扇",
"ssyhzclx": "",
"spmc": "家用通风电器具",
"sl": "0.13",
"je": "59.64",
"spbm": "1090416010000000000",
"slbs": "0"
}],
"xsf_yhzh": "74***********39",
"jshj": "67.39",
"xsf_dh": "0755-***********5"
},
"action": "fpkj_zzs"
}{
"reqId": "1f349ace904b481182c494844a82f467",
"code": "2000",
"success": true,
"message": null,
"data": {
"kplx": "0",
"kplsh": "202403010449175685068215",
"gmfNsrsbh": "************16873K",
"gmfNsrmc": "********有限公司",
"xsfNsrsbh": "************79064G",
"xsfNsrmc": "******有限公司",
"fplxdm": "030",
"kprq": "2024-03-01 04:49:19",
"jshj": 1175.52,
"fphm": "************14101182"
}
}