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

Strapi集成Paytm网关遇RangeError: Invalid key length报错求助

问题诊断与解决:RangeError: Invalid key length(Strapi集成Paytm支付网关)

错误原因分析

该错误核心是Paytm商户密钥(MKEY)长度不符合AES加密算法要求。Paytm官方的paytmchecksum库依赖Node.js的crypto模块生成校验和,而AES加密对密钥长度有严格限制:必须是16位(AES-128)、24位(AES-192)或32位(AES-256)。你的密钥长度不在此范围内,导致加密模块抛出无效密钥长度的错误。

解决步骤

  • 检查Paytm商户密钥有效性
    登录Paytm商户后台获取你的Merchant Key,确认其长度为16/24/32位,避免复制到多余空格或特殊字符。
  • 验证环境变量加载正确性
    1. 打开项目根目录的.env文件,确认MKEY的值与Paytm后台的密钥完全一致,无拼写错误或遗漏。
    2. 可临时添加代码验证密钥加载状态:
      console.log("Merchant Key Length:", process.env.MKEY?.length);
      
      运行后查看控制台输出,确保长度为16/24/32中的一个。
  • 排除代码额外处理问题
    确保生成签名时直接传入原始密钥字符串,不要对process.env.MKEY进行编码、转义等额外操作,你的当前代码中PaytmChecksum.generateSignature的参数使用方式是正确的。
  • 重启服务并测试
    修正密钥后重启Strapi服务,重新发起支付请求验证错误是否解决。

额外注意事项

  • Paytm测试环境与生产环境使用不同的商户密钥,确认使用的是对应环境的密钥。
  • 若密钥长度符合要求但仍报错,检查是否存在字符编码问题(如包含非ASCII字符),此时需重新生成商户密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:01:05