使用Adyen Connector调用Pay verb实现ACH-Debit时遇14_031错误求助
问题分析与排查方案
问题背景
使用Twilio Voice的<Pay> verb结合Adyen连接器测试ACH借记卡支付,调用流程中输入Adyen提供的测试路由号(121000358)和账号(123456789)后,返回错误:
Error code 14_031 with Adyen Connector API message: HTTP Exception
可能原因及排查步骤
1. 缺失ACH支付必填参数
Adyen的ACH支付API要求部分必填字段,当前Twilio Pay配置可能遗漏关键参数:
- 账户类型(accountType):ACH支付需明确账户类型为
checking或savings,现有代码未设置该参数,会导致请求参数不完整。
修复方式:在twiml.pay()中添加参数:accountType: 'checking' // 或 'savings',根据测试场景选择 - 邮编收集:配置中设置了
minPostalCodeLength: 5,Twilio会自动提示用户输入邮编。若测试时未输入符合长度的邮编,会导致参数缺失,触发Adyen API的参数校验失败。
验证方式:检查测试流程中是否完成邮编输入步骤,确保输入的邮编长度≥5位。
2. Adyen连接器配置异常
Twilio侧的Adyen连接器配置错误会直接导致HTTP请求失败:
- 确认连接器中填写的Adyen API密钥、商户账号是否正确,且API密钥具备ACH支付权限。
- 检查Adyen商户账号是否已开通ACH支付的测试权限(需在Adyen后台确认)。
3. 参数传递验证
通过Twilio函数日志确认Pay verb收集到的所有支付参数是否正确传递:
- 在函数中添加日志,打印
event对象中与支付相关的字段,确认参数是否完整且格式正确:console.log('Payment params:', { routingNumber: event.routingNumber, accountNumber: event.accountNumber, postalCode: event.postalCode });
4. 测试账号格式验证
确认Twilio Pay verb对ACH账号的格式要求:
- 确保账号为纯数字,无额外符号(如连字符、空格),测试时输入的账号是否符合该要求。
额外验证步骤
直接使用Adyen测试API调用ACH支付接口,传入相同的测试参数(路由号、账号、金额、账户类型、邮编等),确认Adyen侧是否能正常响应,以此排除Adyen服务端的问题。
内容的提问来源于stack exchange,提问作者Asfo
相关产品推荐
相关产品推荐

