前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >支付宝支付0.04元时,本地开发测试通过,但是线上接口报错:[参数无效:订单总金额格式错误]

支付宝支付0.04元时,本地开发测试通过,但是线上接口报错:[参数无效:订单总金额格式错误]

作者头像
泥豆芽儿 MT
发布2023-10-16 19:20:02
1790
发布2023-10-16 19:20:02
举报
文章被收录于专栏:木头编程 - moTzxx

背景

今天测试支付宝扫码支付时,出现了这个问题

首先,我们的业务场景是售卖机,Android端,通关选取商品后,下单点击支付方式,选择支付宝 此时,无法显示支付二维码 描述如下:

代码语言:javascript
复制
通过线上报错信息发现,提示错误:ACQ.INVALID_PARAMETER,其实就是 “非法的订单总金额格式”
而且,
注意到:当金额为 0.03、0.04 时才报错,0.01、0.02、0.05 元都正正常运行
但是,
本地测试时,无法复现线上情况,
于是进行支付金额的打印、比对,排查问题所在 ...

分析、解决

  • 首先,定位到问题所在:支付金额的格式不符合支付宝规范 其次,出现开发环境与线上环境场景差别问题:基本认为是 Window10Linux 的系统差异
  • 如下为,我调用支付二维码显示时的,接口反馈
代码语言:javascript
复制
float(0.04) //支付金额

object(stdClass)#173 (2) {
  ["alipay_trade_precreate_response"]=>
  object(stdClass)#172 (4) {
    ["msg"]=>
    string(15) "Business Failed"
    ["code"]=>
    string(5) "40004"
    ["sub_msg"]=>
    string(42) "参数无效:订单总金额格式错误"
    ["sub_code"]=>
    string(21) "ACQ.INVALID_PARAMETER"
  }
  ["sign"]=>
  string(344) "WMtAqprkfNUnS9zXiSRdenpsZ7sHjgV1SUcejTSWNDQ/GGYZCTqJDW3QCxARJna0L1IMpNCaCiK4+8cJt7mgHJ1HJEKCR8B9qKylQqG7s4vZD+SJpgYxDZTkdYUW9m4OxbOvJn599LCdliDkz0VLIiXHO54jOxULgsa3GtHqup6xkiDsT5zBQafFm9XRofoOoyXBlkNGfDo80t2rdab6O4ligMZlPeGQYxLfG08RUTzvKgIuacunwdxT06yFPqr53l/3IolVGSRi4byGPSXpNOcHrjjuNmG+DQFrM8/sy0R9lw296fRC43Y/8qDFwYiuqLkI5kmmYB89Ka/GfzUrkg=="
}
  • 搜索网上经验,只有如下链接 :ACQ.INVALID_PARAMETER(参数无效:非法的订单总金额格式) 测试发现,如果传值是 0.010.02 就没问题、0.030.04 就无法通过
  • 解决方案: 推测,使用的 floatval() 强制转化存在误差、于是使用了 sprintf() 强制两位小数形式转化 幸运的是,再次测试,完美解决. 希望能帮到有需要的道友 …
代码语言:javascript
复制
 //订单总价
 $orderTotal = floatval(array_sum(array_column($cartList, 'total')));
 $orderTotal = sprintf("%.2f",$orderTotal);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 分析、解决
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档