都说易支付对接简单快,但新手第一次对接,还是很容易踩坑。今天整理了新手最常见的对接错误和解决方法,帮你少走弯路,一次对接成功。
错误一:商户号和密钥填错
这是最低级也是最常见的错误。
表现:点击支付报错,提示「商户不存在」「签名错误」。
原因:
1. 商户号复制错了,多了空格或者少了数字
2. 密钥填错了,或者复制的时候带了多余字符
3. 把AppID当商户号,或者把AppSecret当密钥
解决:
仔细核对,一个字符一个字符对。复制的时候注意前后有没有空格。
平台后台的商户信息里,哪个是商户号哪个是密钥,看清楚再填。
错误二:回调地址没填或者填错
很多人对接完,能跳支付,付完钱没反应,十有八九是回调地址的问题。
表现:用户付款成功了,但网站订单还是待支付,不自动发货/不开通会员。
原因:
1. 平台后台没填回调地址
2. 回调地址填错了,少了字符或者路径不对
3. 回调地址是内网地址,公网访问不到
4. 回调地址是http,但网站是https,或者反过来
解决:
1. 去平台后台,把回调地址(notify_url)填上
2. 地址要完整,http://或https://开头,跟你网站协议一致
3. 直接在浏览器访问一下回调地址,看能不能正常打开(不报错就行)
4. 本地测试的话要用内网穿透,不能用localhost
错误三:签名验证失败
签名是保障支付安全的关键,新手很容易在这里出问题。
表现:回调收到了,但签名验证通不过,订单不更新。
原因:
1. 签名算法不对,参数顺序错了
2. 编码格式不对,要用UTF-8
3. 大小写不对,MD5结果要小写还是大写
4. 密钥不对
解决:
严格按照平台文档来,参数名、参数顺序、加密方式,都要跟文档一致。
用平台提供的demo测试,demo能跑通说明参数没问题,再改自己的代码。
错误四:金额单位搞错
有的平台用元,有的平台用分。搞混了就出大事。
表现:支付金额不对,要么多了100倍,要么少了100倍。
原因:没看清楚文档,以为是元,结果平台要的是分。
解决:
仔细看文档,金额单位是什么。不确定的话,先传个0.01或者1分钱测试一下,看支付页面显示的金额对不对。
这个一定要测试,别等上线了才发现收错钱了。
错误五:订单号重复
表现:第二次下单,提示「订单号已存在」。
原因:订单号生成规则有问题,会重复。或者测试的时候用了同一个订单号。
解决:
订单号一定要唯一。推荐用「时间戳+随机数」的方式生成,基本不会重复。
比如:20260801123456 + 四位随机数 = 202608011234561234
同一个订单号只能用一次,不能重复使用。
错误六:没有做幂等处理
表现:用户付了一次钱,结果订单处理了两次,重复发货/重复开通。
原因:平台可能会多次发送回调(确保你收到),如果你的代码没有判断订单状态,每次都处理,就会重复。
解决:
回调处理的时候,先查订单状态。如果订单已经是「已支付」了,直接返回成功,不要再处理。
这叫幂等性,同一个回调来多少次,结果都一样。
错误七:只做了异步回调,没做同步跳转
表现:用户付完款,跳回来页面还是待支付,刷新一下才变成已支付。
原因:异步回调可能有延迟,用户付完款马上跳回来,回调还没处理完。
解决:
同步跳转页面(return_url)不要直接显示订单状态,应该先主动查询一下订单状态,或者让用户稍等再刷新。
最好加个「支付完成,正在跳转…」的页面,过几秒自动跳转到订单页。
错误八:没测试就上线
这是最大的错误。很多人对接完觉得应该没问题,直接上线,结果出问题损失惨重。
一定要测试:
1. 微信支付测一笔
2. 支付宝支付测一笔
3. 测试回调正不正常,订单更不更新
4. 测试金额对不对
5. 测试重复支付会不会有问题
6. 测试提现能不能到账
都测通了再上线。别拿用户当小白鼠。
新手对接建议
1. 先用平台提供的demo跑通,再改自己的代码
2. 仔细看文档,每个参数都搞清楚什么意思
3. 一步步来,先调起支付,再调回调,别想一步到位
4. 做好日志,出问题好排查
5. 有问题找客服,别自己瞎琢磨半天
其实微信支付免签约费率这些都不是最重要的,对接成功能用才是第一步。
总结
易支付对接简单快是真的,但新手第一次对接,还是容易踩这些坑。
照着这篇避坑指南检查一遍,90%的问题都能避免。
只要细心一点,按照文档一步步来,基本都能一次对接成功。支付宝实时到账易付款,很快就能用起来。
实在搞不定的,找客服或者找懂技术的朋友帮忙,别硬扛。
发表回复