gambia
gambia
  • 发布:2023-08-08 12:56
  • 更新:2024-07-20 16:46
  • 阅读:129

【报Bug】ios内购支付逻辑浮点数问题

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

需使用国外apple id

预期结果:

金额为正整数

实际结果:

金额为多位小数

bug描述:

文件路径:uni_modules\uni-pay\components\uni-pay\uni-pay.vue
第530行: options.total_fee = productInfo.price * 100
此处当用户为国内用户时正常,如用户为国外用户,则productInfo.price可能为19.99 这样的浮点数,此时total_fee的值就会变为1998.9999999999998,导致支付报错51005:支付金额必须为正整数

2023-08-08 12:56 负责人:无 分享
已邀请:
II优选

II优选 - 定制插件开发-联系QQ:770104707

所有语言都有这个bug,将浮点转成字符串进行运算

2***@qq.com

2***@qq.com

我这么改uni-pay.vue:
options.total_fee = productInfo.price * 10000 / 100;

但是
国内的沙盒环境都正常,打的正式包也可以正常支持,提交ios审核就有问题:
51005:支付金额(total_fee)必须为正整数

你最终的解决方法是什么?

  • II优选

    转换一下类型不行吗?

    2024-07-20 08:57

2***@qq.com

2***@qq.com

parseInt

要回复问题请先登录注册