悠悠楠杉
易支付对接易商户完整版:从发起支付到订单入账
易支付对接易商户,表面上是填入商户号、密钥和接口地址,实际要打通两件事:易商户能否按易支付的要求创建支付订单,以及付款完成后能否可靠地更新本地订单。前者决定用户能否进入收银台,后者决定商户后台能否据此发货或开通服务。
填好商户参数后,支付页仍打不开
先确认正在使用的易支付接口文档与易商户支持的接入方式一致。“易支付”可能指某套程序,也可能指采用相近接口格式的服务;名称相同,不代表接口地址、签名规则和回调要求完全相同。易商户后台已有对接入口,也不代表任意服务端提供的密钥都能直接使用。
创建订单时,易商户一般会生成自己的订单号,再将金额、订单信息和通知地址等内容提交给支付服务端。支付服务端返回错误,就保留请求时间、脱敏后的请求参数和响应内容,按所用文档核对。接口地址填错、商户身份不匹配,往往在发起请求时就能发现;签名不一致则要继续检查参与签名的字段、字段顺序及编码方式。金额的单位也要在两端确认,不能凭页面显示的“元”推断接口接收的数值格式。
密钥只放在服务端配置中,不写进前端页面、公开仓库或排错截图。更换密钥后,易商户与支付服务端也要使用对应的新配置,否则原本能打开的支付页可能突然报签名错误。
用户付了款,易商户订单却仍显示未支付
付款后的浏览器跳转和支付服务端发给易商户的异步通知,承担的工作不同。跳转页供用户查看结果;用户关闭页面、网络中断,都会影响浏览器返回。易商户更新订单状态时,应按当前接口文档接收并验证服务端通知,不能仅凭用户访问了“支付成功”页面就入账。
假设一个站点已经能正常跳转收银台,付款后用户也看到了成功页面,但易商户后台的订单仍待支付。处理时先沿着这笔订单查看本地日志:收到了浏览器返回,却没有对应的异步通知记录。站点核对配置后发现,通知地址指向了展示页面,该页面没有处理支付服务端发来的请求。于是将通知地址改为实际的服务端处理入口,并检查这个入口能否从外网访问、能否按接口要求返回确认内容。
地址改正后,还要用一笔新的测试订单观察通知是否到达。此前那笔待支付订单不能因为用户提供了成功截图就直接改状态;需到支付服务端核对该订单的实际交易记录,再决定如何补处理。若通知仍未出现,排查范围才转向网络访问限制或支付服务端的通知记录。
通知已经到达,订单状态仍不更新
日志里出现通知,只代表请求抵达了易商户服务器。处理入口仍需按照所用接口的规则验签,并将通知中的商户号、订单号和金额与本地订单核对。字段值对不上,就记录差异并停止自动入账;付款状态以接口约定的有效状态为准,不能把任意通知都当作成功。
同一笔交易的通知可能重复到达,订单更新因此要有幂等处理:已经标记为支付成功的订单,再收到相同的有效通知,不重复发货或开通权益。若易商户还承担退款或人工补单,相关操作应留下订单号和处理记录,避免后续对账时分不清自动入账与人工调整。
联调结束前,保留一笔完整测试订单的本地订单号、请求记录和通知记录,对照支付服务端可查询的交易信息,确认金额与状态一致。正式使用后遇到“已付款未入账”,也从这几处记录接着查,先定位通知停在哪一环,再处理订单。

