悠悠楠杉
易支付支付接口接入:核对接口文档与处理支付回调
接入易支付支付接口,常见需求是让网站创建订单、跳转付款,并在付款后完成发货或开通服务。真正影响上线使用的,是本地订单能否可靠地收到并处理付款结果。
“易支付”这一名称不能确定具体的接口实现。不同服务商或程序版本可能采用不同规则,网上找到的示例代码只能作为参考,实际对接以所选平台当前提供的文档为准。
找到示例代码后,先核对它对应的平台
拿到商户信息就直接修改示例代码,可能顺利打开收银台,却在回调环节卡住。支付请求被接受,只能证明这一笔请求符合平台要求,后续通知仍有独立的校验规则。
核对文档时,把创建订单与支付通知放在一起看。确认签名如何生成、哪些字段参与签名;再确认通知中的哪个状态代表付款成功,以及平台要求返回什么内容。金额的单位和表达格式也要写清,否则请求端与通知端容易使用不同的处理方式。
向服务商沟通时,直接索取与当前账户匹配的接口文档和回调样例。没有说明的规则不要凭其他平台的代码补齐。商户密钥保留在服务端,不放进网页脚本;浏览器展示的支付结果,也不作为发货依据。
用户已经付款,网站订单却仍显示待支付
用户回到成功页面后,订单没有更新,这时反复修改跳转地址,往往碰不到实际问题。页面跳转负责展示,服务端异步通知负责传递支付结果,两者可能在不同时间到达。
定位时,核对平台交易记录与本地订单,再查看回调请求有没有进入服务器。请求未到达,就检查通知地址的访问情况;已经收到请求却未更新订单,则沿着验签结果和订单处理记录继续查。向服务商反馈时提供订单标识和错误信息,不发送商户密钥。
假设一个虚拟商品网站接入后,用户付款并返回网站,但商品没有发放。本地日志记录到了通知请求,处理停在“签名不一致”,因此订单仍处于待支付状态。
在这个情境中,接收程序把通知中的金额转成数值,又重新格式化后参与验签。若平台文档要求按收到的字段值构造签名内容,这次转换就可能改变待签名字符串。处理方向是对照文档检查字段处理方式,将验签与业务金额计算分开:验签遵循平台规则,金额核对使用适合货币计算的方式。
开发者按文档调整后,还要通过平台支持的测试方式或通知重发功能确认处理结果。此前积压的订单保留待核对状态,借助交易查询接口或平台记录逐笔确认,不凭用户截图直接批量标记成功。平台若没有提供重发入口,就继续确认补单方式,并保留相关通知记录。
同一笔通知再次到达时,订单怎样处理
支付平台可能因未收到预期响应而重复通知。重复请求进入网站后,已经完成的订单不能再次发货或重复增加余额。
回调处理围绕本地订单进行:验签通过后,核对订单归属、金额及支付状态,再更新付款记录。将同一订单的付款确认与发货任务写入做成幂等处理,也就是同一通知执行多次,业务结果仍只发生一次。返回内容遵循平台文档,并放在付款记录可靠保存之后。
发货耗时较长时,把付款确认与发货任务分开。订单已付款但任务尚未完成,要能从后台查到,后续重试只处理未完成的任务,避免让用户重新付款。
上线前,整理当前平台的回调规则,测试通知重复到达和处理失败后的重试。对于尚未查清的已付款订单,保留订单号与通知记录,确认查询或补单渠道后再处理。

