You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Razorpay时结算页、支付操作触发JS日志错误求助

排查解决方案

一、结算页JS语法错误修复

  • 校验初始化配置:检查传入Razorpay的options参数格式,确保amount为整数类型(单位为最小货币单位,如人民币分、印度卢比派士),无特殊转义字符、未闭合引号等非法内容,必填字段key、currency、name取值均合法。
  • 清理编译缓存:依次执行 flutter clean、删除Android项目根目录下的.gradle缓存文件夹,再重新打包运行,避免缓存的旧版JS资源引发语法异常。
  • 验证WebView兼容性:如果测试设备为Android 7及以下系统,需升级系统WebView内核,或更换Android 8及以上版本的设备测试,老旧WebView内核不兼容Razorpay新版JS SDK会触发该报错。

二、支付阶段报错修复

  • 补充OTP相关权限:在Android项目的AndroidManifest.xml中<manifest>标签下添加如下权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
  • 禁用自动OTP读取功能:初始化支付配置时,在options参数中加入"send_sms_hash": false,关闭SDK自带的自动填OTP逻辑,从根源避免otpPermissionCallback未定义和广播泄露问题。
  • 正确销毁SDK实例:在调用支付的页面dispose生命周期方法中执行razorpay.clear(),释放SDK占用的资源,解决广播接收器泄露报错。

三、版本兼容修复

  • 降级SDK版本:razorpay_flutter 1.2.6、1.2.7存在已知的Android端JS桥接兼容问题,可将依赖版本降级为razorpay_flutter: 1.2.5后重新拉取依赖测试。
  • 升级编译配置:将Android项目的compileSdkVersion升级到31及以上,匹配Razorpay 1.2.x版本的最低编译要求。

内容的提问来源于stack exchange,提问作者Harsh Bhalala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:03