支付宝PC端支付报INVALID_PARAMETER错误,一次解决过程

在项目上线过程中,PC端支付接口返回INVALID_PARAMETER错误。通过对比请求参数,发现biz_content中的passback_params字段末尾的“=”字符导致问题。解决方法是避免Base64编码后出现“=”或对Base64编码后的字符串再进行urlEncode。问题源于PC端使用GET请求,而“=”在URL中不被允许,而手机端采用POST请求则不受此影响。
摘要由CSDN通过智能技术生成

前言

我们项目前端部分分为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%

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值