iOS(Swift)集成PayTM SDK遇Transaction Failed(MissingKeys)问题求助
解决PayTM SDK集成中的"MissingKeys"错误
嘿,我来帮你搞定这个iOS Swift集成PayTM SDK时遇到的"MissingKeys"问题!这个错误通常是因为SDK要求的必填参数没有正确配置或者缺失,咱们一步步排查:
1. 检查Merchant配置的必填项是否完整
从你提供的代码来看,你漏掉了一个关键参数——websiteName,这是PayTM SDK要求的必填项:
- 测试环境下必须设置为
"WEBSTAGING" - 生产环境下需要和你在PayTM商户后台配置的网站名称一致
修改后的代码应该补上这一项:
merchant = PGMerchantConfiguration.default()! merchant.checksumGenerationURL = "http://getlook.in/cgi-bin/checksum_generate.cgi" merchant.checksumValidationURL = "http://getlook.in/cgi-bin/checksum_validate.cgi" merchant.clientSSLCertPath = nil merchant.clientSSLCertPassword = nil merchant.merchantID = "rriver5777057544..." // 确保这里是完整无省略的Merchant ID merchant.websiteName = "WEBSTAGING" // 测试环境用这个,生产环境替换为你的实际网站名
2. 确认Merchant ID的完整性
你代码里的Merchant ID末尾有省略号,一定要确保复制的是完整的、无错误的Merchant ID——少一个字符或者多了空格都会导致SDK识别失败,触发"MissingKeys"提示。
3. 验证Checksum服务的可用性
虽然你配置了checksum生成和验证的URL,但要确保这些接口能正常访问,并且返回符合PayTM格式要求的checksum值。如果你的服务器端checksum生成脚本有问题,SDK会因为无法获取到合法的checksum,判定为关键参数缺失。
4. 检查交易发起时的参数
除了Merchant配置,发起交易时传递的参数(比如orderID、amount、customerID等)也必须完整且符合要求,任何必填交易参数缺失也会触发这个错误。
5. 确认SDK版本兼容性
如果以上都没问题,建议检查你使用的PayTM SDK版本是否为最新版,旧版本的SDK可能存在参数校验逻辑的bug,升级到最新版本往往能解决这类问题。
内容的提问来源于stack exchange,提问作者Khushbu Desai
相关产品推荐
相关产品推荐

