背景原因
目前由双牛掌柜为主导框架开发的一系列产品中,网络请求框架请求到的数据是默认解析成Model类的。即项目中不会手动去解析网络请求到的json数据。在项目中,使用封装好的框架自动解析成Model类。而且Model类使用JsonFormat工具生成,所以在项目的开发中,不会或者说是减少了由于手误而打错了字段问题。
项目对网络处理的繁琐过程进行了高度封装。但是封装的框架是基于后台数据格式不会改变的情况,一旦后天返回的数据产生了变化,网络解析就会发生错误。
问题产生位置
所有设计到微信和支付宝两种支付方式共存的地方。
分析
当请求接口时支付宝返回的json如下(隐私数据已隐藏):
{
"status": 1,
"msg": "支付宝支付所需数据",
"result": "**************此处时吊起支付宝的数据,不做展示****************"
}
微信返回的json数据如下(隐私数据已隐藏):
{
"status": 1,
"msg": "微信支付所需数据",
"result": {
"appid": "************",
"partnerid": "************",
"prepayid": "************",
"package": "Sign=WXP