前言
我们项目前端部分分为PC端、手机端两个项目,然后共用一个web端,手机端已经上线,手机端中的充值支付模块也已经正常在使用;但这次PC端项目上线的时候,充值却出现了问题,支付接口返回INVALID_PARAMETER的错误;而充值这块之前是另一名开发负责,可是已经离职,只能自己去排查了。
解决过程
经过多次测试,发现是部分金额支付出现问题,然后根据官方文档,出现INVALID_PARAMETER的原因是:
INVALID_PARAMETER
请求参数无效,参考以下方法排查:
1.请检查参数biz_content是否是一个合法的JSON字符串;
2.请检查接口是否按照文档规范传入biz_content参数;主要检查参数格式是否符合要求,是否有非法值、越界等,如参数超过限制长度或者非空的参数未传等,具体请根据接口文档检查参数格式,文档见 蚂蚁金服开放平台-文档中心。
我就去观察比对正确和错误的请求参数有什么不同,然后发现biz_content部分中除了时间字段外,只有一个字段参数会变化,就是passback_params,而且是该字段最后字符含有“=”等于号的时候,就会出错
passback_params
String
否
512
公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝
merchantBizType%3d3C%