PayFort调用TOKENIZATION接口返回Invalid command错误如何排查?
错误原因
- 参数不匹配导致签名无效:你在生成签名时将
language、card_holder_name两个参数加入了计算逻辑,但最终提交给PayFort的请求体中没有携带这两个参数,PayFort校验签名时会以实际收到的参数列表为准,两边参与计算的参数不一致会直接导致签名不合法,而无效签名会触发Invalid command报错。 - access_code被篡改:你提交的请求中
access_code值为LVQEEDAfI1qbZW0wXbsb,但PayFort返回的响应中access_code值为BhSPWubm9lsp577tsv7J,说明请求在传输过程中参数被篡改,或是你使用了错误的请求端点,PayFort识别到不匹配的身份信息会判定命令无效。 - 服务权限未开通:即使参数全部正确,若你的PayFort测试商户号未单独开通TOKENIZATION服务权限,也会触发该错误,Merchant Page渠道开通和TOKENIZATION服务权限是两个独立的配置项。
排查解决步骤
- 核对请求端点:确认你使用的测试环境地址是TOKENIZATION服务对应的官方接口地址,不要误用其他服务(如支付、订单查询等)的接口地址。
- 补全请求参数:将生成签名时用到的
language、card_holder_name两个参数补充到请求体中,保证参与签名计算的参数和实际提交的参数完全一致。 - 校验身份配置:核对你使用的
access_code、merchant_identifier是否和PayFort后台测试环境配置的值完全一致,检查代码中是否存在变量替换错误、硬编码错误导致参数被篡改的问题。 - 修正签名逻辑:
- 确认签名前后拼接的密钥和PayFort后台测试环境配置的SHA-256密钥完全一致,不要混淆测试环境和生产环境的密钥。
- 确认参数排序逻辑是严格按照ASCII码升序排列,没有多算、漏算参数。
- 确认输出的签名十六进制字符串大小写符合PayFort要求,若要求小写则需要将当前生成的全大写字符串转为小写。
- 确认服务权限:联系PayFort商户支持,确认你的测试商户号已开通TOKENIZATION服务的使用权限,部分服务需要单独申请开通。
内容的提问来源于stack exchange,提问作者Abdalrhman Alkraien
相关产品推荐
相关产品推荐

