悠悠楠杉
易支付使用接口对接不成功,先分清报错发生在哪里
提交订单后就报错
易支付对接通常涉及商户系统发起支付请求、用户完成付款,以及支付平台通知商户更新订单。搜索“易支付使用接口对接不成功”时,先记录故障停在哪一段:请求一提交就返回错误,还是已经进入支付页面、付款后订单仍显示未支付。两种现象对应的代码和记录不同,混在一起改,容易越改越乱。
如果接口直接返回“签名错误”或类似提示,检查发出的请求内容,而不只是检查配置文件里写了什么。参与签名的字段、字段取值、拼接方式,应以当前接入平台的接口文档为准。实际运行时,空值处理、字符编码或请求参数被再次编码,都可能让最终发出的内容与签名时使用的内容不一致。商户密钥不要粘贴到公开论坛,也不要写进可供下载的日志;排查时保留脱敏后的请求参数和接口返回内容即可。
参数看着齐全,签名仍通不过
假设一个网站接入易支付后,提交订单立即收到签名校验失败。开发者已经反复核对商户号和密钥,配置页面上的内容也与平台后台一致。此时继续重填密钥,未必能推进问题。
处理方向转到“签名时用的参数”和“实际发出的参数”。例如,订单名称含有空格或中文,程序先按原始文本生成签名,发送请求时又对文本做了编码。平台收到的值与程序签名时使用的值可能不同。开发者将同一笔测试订单的参数在签名前和发送前分别记录,隐去敏感字段,再对照平台文档确认编码发生在哪个环节。若是字段处理不一致,就调整该处生成请求的代码,而不是连同回调配置一起改。
这条路径仍有现实限制:仅凭“签名错误”四个字,无法确认具体是哪个字段造成的。若本地记录与文档要求一致,整理脱敏后的请求内容、接口返回原文和对应时间,交给支付平台技术支持核对,沟通会比只发一张报错截图具体得多。
付款完成了,站内订单却没变
支付页面能打开,也完成了付款,站内订单却仍显示未支付,这时检查重点已经变化。用户浏览器跳转回商户网站,只能帮助展示页面;商户系统更新订单,通常还要处理支付平台发来的异步通知。用户提前关闭页面,也不应成为订单一直无法确认的理由。
查看服务器有没有收到通知请求,以及收到后返回了什么。若请求未到达,核对平台后台填写的通知地址,并确认该地址能够从公网访问;仅在本机能打开,不能证明平台服务器也能访问。若已收到通知却没有更新订单,检查商户系统对通知的验签、订单号和金额核对,以及更新订单后的响应内容。具体响应格式按当前平台文档执行,不要把浏览器回跳当成异步通知已处理的证据。
联调期间保留测试订单号、请求时间和脱敏后的返回记录。涉及真实付款时,先核对平台交易记录与商户订单状态,再处理补单或退款,避免用户重复付款。下一次测试只改动已定位的一处配置或代码,并记录改动前后的接口返回;这样即使问题暂时没有解决,也能留下可供继续排查的信息。

