疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
  1. 首页
  2. 客户端
  3. 正文

APP支付支付宝报:商家订单参数异常,请重新发起付款

2023年4月11日 2394点热度 2人点赞 0条评论

        今天移动端支付宝支付突然报“商家订单参数异常,请重新发起付款”,并且iOS和安卓端同时报这个错误,通过观察其实本质上已经调起了支付宝的SDK,然后弹出的上面的错误。想让客户端的同学看看是否可以复现,查看是否还有更详细的错误,可是客户端同学竟然可以调起支付,并没有报错误,但是大部分人是调不起来的。通过查看服务端的接口日志,服务端在支付宝已经下单成功了,只是客户端调起支付的时候验证没通过,因为双端都报,所以综合分析应该是公共问题。

        看了一下官方文档,其实有很多中可能的,看了各种情况,怀疑是证书过期了,就登录支付报开放平台看了下应用的密钥设置,发现状态是未设置状态,很是奇怪,以前肯定设置过了,支付宝支付都用了2年多了,后来怀疑是过期了,支付宝把设置状态给清空了。后续就根据官方证书到期更新指南进行更新,其实在更新过程中还是遇到一些问题,总结了如下几点:

  • 接口的加签方式分为密钥和证书两种方式,这个项目用的是证书方式
  • 用支付宝支付宝开放平台开发助手生成CSR文件后,商户私钥要点击其底部的【打开文件位置】获取,不要用上面的生成密钥后复制或者点击【打开密钥文件路径】获取。本质上这应该是分别生成密钥和证书两种方式的参数用的。
  • 在支付宝开放平台设置参数时,上传CSR文件后,会生成三个文件:应用公钥证书(alipayCertPublicKey_RSA2.crt),支付宝公钥证书(appCertPublicKey_XXXXXX.crt,XXXXX代表APPID),支付宝根证书(alipayRootCert.crt),分别下载后使用即可。

        其他项目用的接口加签方式都是密钥,只有这一个用的证书方式,当时这么选择,主要是用了官方的GO版本的SDK,SDK本身采用的这种方式,所以选择了证书方式。密钥文件过期了,服务端还可以下单成功,怀疑出现这种情况,是支付宝的服务端验证不严格造成的。

 

标签: android ios
最后更新:2023年4月12日

大明

靠写代码养家的开发者。

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1