情景描述:本人是java后端开发,配合Android移动端开发 1.支付接口; 2.订单支付状态查询接口。
问题:接口响应报文结构,自己设计出来后,总是和移动端需要的有很大的出入。
解决:
接口1:支付接口
支付只是一次请求,不包含任何业务参数。
移动端需要信息:请求是否成功;如果失败,失败原因是什么。
响应报文核心字段:
retcode:SUCCESS/FAIL
retmsg: 支付成功/缺乏必须参数等。
可能的响应报文:
1.支付成功
retcode:SUCCESS
retmsg: 支付成功
2.通信失败
retcode:FAIL
retmsg: 网络断开
3.通信成功,交易失败
retcode:FAIL
retmsg: 账户余额不足
说明:此处的失败是通信失败(网络断开) 和 请求失败(余额不足)的并集,但是并不需要区分开,因为移动端不需要区分,他只关注支付成功或失败。
接口2:支付状态查询接口
支付状态查询:不仅是一次请求,同时需要包含业务参数:支付状态。
移动端需要信息:请求是否成功;如果成功了,业务参数:支付状态具体值。
响应报文核心字段:
retcode:SUCCESS/FAIL
retmsg: 查询成功/查询失败等。
payState: 0:支付成功 1支付失败
可能的响应报文:
1.通信成功且支付成功
retcode:SUCCESS
retmsg: 查询成功
payState:0
2.通信成功但支付失败
retcode:SUCCESS
retmsg: 查询成功
payState:1
3.通信失败
retcode:FAIL
retmsg: 网络断开
说明:此处的失败只是代表通信失败(网络断开) ,只有通信成功了,再去查看 请求成功与否,从而获取需要的业务参数:比如此处的支付状态。
事后反思:
1.换位思考:明确这两个接口是提供给移动端使用:如何设计才能让移动端高效、快捷地拿到他想要的信息。不要用自己java后端开发的思维定势去设计。
2.与他人合作开发,观照情绪,别被情绪拖着走:渐渐发现,IT工作碰到的很多问题,不良的情绪总是可以导致工作效率低下,本来会做的事情,却做的很吃力。
比如:这次合作开发,移动端开发者:嗓门很大,气势咄咄逼人。虽然理智知道他的修改建议很正确,可是自己心里有个魔鬼跳出来:他谁啊!为啥要听他的!导致自己很大的精力,被嗔怒的情绪所消耗。或者,开发中碰到一个完全没有接触过的东西,本人有时候会对自己不能掌控的东西,有种莫名的恐惧。这个恐惧的情绪,导致你不敢大步向前走,奋起直前解决问题。(果真生活中处处是修行啊!)
生活所感,仅此小记