NEWS
新闻中心
您的位置: 首页>新闻中心>专题新闻>线上支付

线上支付 API 到底怎么接?先看懂一笔订单的完整链路

2026-07-22 14:42:50
分享:

这是《线上支付 API 接入实战》第01篇。本专题将用10篇内容,连续讲清场景选型、支付下单、异步通知、主动查单、退款、对账、安全、测试与正式上线。

顾客在商城选好商品,点击“立即支付”,调起付款页面,输入密码或完成验证,几秒后看到“支付成功”。

从顾客视角看,付款已经结束。

但对商户系统来说,工作才完成了一半:

  • 这笔钱对应哪一张业务订单?
  • 页面显示成功,服务端是否已经确认?
  • 支付通知没有及时到达,订单应该怎么办?
  • 同一条通知重复到达,会不会重复发货?
  • 顾客申请部分退款,原订单状态怎样变化?
  • 到了第二天,业务订单、支付账单和结算数据能不能对上?

很多项目能够很快“调通一笔支付”,却会在正式上线后遇到漏单、重复处理、退款查不到、客服不敢补单、财务月底对不上账。

问题通常不在付款按钮本身,而在于团队没有提前画清一笔订单的完整链路。

先说结论

线上支付 API 接入,不是调用一个“收款接口”,而是建立一套可以持续运行的交易闭环。

这套闭环至少要回答六件事:

  1. 怎样创建并识别一张订单;
  2. 怎样把正确的支付参数交给顾客;
  3. 怎样确认顾客是否真的支付成功;
  4. 通知延迟、重复或中断时怎样恢复;
  5. 取消、关单和退款怎样处理;
  6. 业务记录与资金账单怎样核对。

如果只完成“调起支付”,项目还不能算真正接完。

一、先分清一笔交易中的4个角色

线上支付链路看起来复杂,先把参与者分清就容易理解。

1. 顾客

顾客在小程序、公众号、H5、App、PC商城或其他业务页面中下单,并选择一种可用的支付方式。

顾客看到的是商品、金额、支付确认页和支付结果,不应该接触商户密钥,也不应由前端自行决定最终应付金额。

2. 商户业务系统

这是企业自己的商城、SaaS、ERP、订购系统、会员系统或行业应用。

它负责管理商品、价格、优惠、业务订单、履约状态和售后流程。顾客买了什么、应该付多少钱、支付后开通什么服务,最终都由业务系统判断。

3. 支付服务方

支付服务方可能是银行、具备相应许可的非银行支付机构,或者基于前述机构能力提供技术与接入服务的服务商。

它向符合条件的商户提供支付下单、订单查询、通知、退款、账单等能力。具体由谁提供支付服务、宜收宝和合作机构分别承担什么角色,应以实际产品、商户协议和接入文件为准。

4. 支付渠道或用户付款工具

顾客最终可能通过微信、支付宝、银行卡或其他受支持的方式确认付款。

“支持某种支付方式”还不够,项目还要确认它是否支持当前终端、交易场景、商户主体和应用入口。

二、三个订单号,分别在追踪什么?

第一次接支付 API 时,最容易混淆的是各种订单号。

1. 业务订单号

由商户业务系统生成,用来表示“顾客买了什么”。

例如一张商品订单、一次会员充值、一笔服务预约或一张缴费账单。它关联商品、顾客、优惠、履约和售后。

2. 商户支付订单号

由商户侧生成并提交给支付服务方,用来追踪“一次支付尝试”。

有的简单业务会让业务订单号与支付订单号一一对应;有的业务允许同一张业务订单更换支付方式或重新支付,就需要单独记录每一次支付尝试。

项目开始前,应先确认两者是一对一还是一对多,不能等到顾客重复支付后再补设计。

3. 支付侧交易号

支付受理后,支付服务方或渠道通常会生成自己的交易标识。它常用于查单、退款、账单匹配和客服定位。

因此,系统至少要保存好这组对应关系:

业务订单号 ↔ 商户支付订单号 ↔ 支付侧交易号

客服说“查不到这笔钱”,很多时候并不是交易不存在,而是三个系统只拿着各自的号码,无法快速找到对应关系。

三、顾客点击“立即支付”后,系统经历了什么?

一笔典型线上支付,可以拆成以下八个步骤。

第1步:创建业务订单

顾客提交商品或服务,业务系统根据商品价格、优惠、库存和业务规则,生成业务订单。

金额应由可信的服务端重新计算,不能直接采用前端提交的金额。否则,页面参数被修改后,可能出现低金额支付高价值订单的问题。

第2步:商户服务端发起支付下单

商户服务端整理订单号、金额、商品说明、通知地址等必要信息,按照具体产品要求完成身份验证或签名,再向支付服务方发起请求。

密钥、私钥或证书应保留在受控的服务端环境,不能放进小程序、网页或App前端代码。

第3步:支付服务方返回调起参数

支付服务方受理后,返回收银台地址、二维码内容、支付凭证或终端调起参数。

具体返回什么,取决于公众号、小程序、H5、App、PC或扫码等实际场景。不同入口不一定可以共用同一组参数。

第4步:顾客确认付款

前端根据返回参数调起付款页面,顾客完成确认。

此时可能出现成功、取消、失败、超时或结果暂时未知。前端应向顾客提供清晰提示,但前端展示结果不宜单独作为发货、加余额或开通服务的唯一依据。

第5步:支付结果返回前端

顾客完成操作后,前端可能收到结果或跳回商户页面。

这个结果主要服务于页面展示和用户体验。网络中断、关闭页面、跳转失败等情况,都可能让前端没有拿到最终结果;同时,前端环境本身也不适合承担最终交易确认责任。

第6步:支付结果异步通知商户服务端

支付服务方按照约定地址,将支付结果通知商户服务端。

商户系统收到通知后,不能只看到“成功”两个字就直接发货,还应按实际文档完成验签或身份校验,并核对商户、订单号、金额和交易状态。

通知还可能重复到达。系统必须做到:同一笔交易即使收到多次成功通知,业务也只能成功处理一次。这就是支付接入中经常提到的“幂等”。

第7步:更新订单并触发履约

确认结果有效后,系统更新支付订单与业务订单,并进入发货、充值、开通会员、生成服务单或其他履约流程。

如果履约过程较长,不能简单把所有工作都塞在通知请求中。更稳妥的做法是先可靠记录已确认的支付结果,再由后续任务执行履约,并保留失败重试和人工处理入口。

第8步:下载账单并完成对账

当天页面和订单都显示正常,也不代表财务闭环已经完成。

企业还需要按实际产品能力获取交易、退款、费用或结算相关数据,与内部业务订单进行匹配,找出单边账、金额不一致或状态不一致的记录。

支付对账不是月底才做一次的“财务补救”,而应成为日常交易流程的一部分。

四、为什么“支付成功页面”不能单独作为成功依据?

假设顾客已经付款,页面准备跳回商户商城。就在这时,手机断网了。

顾客可能看不到商户的成功页面,但钱已经付出;反过来,仅凭前端传来的某个结果,也不足以让服务端跳过验证直接履约。

因此要把两个问题分开:

  • 页面应该显示什么? 服务顾客体验;
  • 业务是否可以履约? 由商户服务端根据可信的支付结果判断。

常见做法是:服务端以验证通过的异步通知处理结果为主要路径;通知未到、处理失败或状态不明确时,再通过主动查单和补偿任务确认。具体通知、查询和确认规则,以实际接入产品的官方文档为准。

顾客端如果暂时拿不到最终状态,可以显示“支付结果确认中”,并提供刷新或查看订单入口,而不是立即引导顾客再次付款。

五、异步通知没有到,订单会永远卡住吗?

不能把整个系统的恢复能力押在一次网络请求上。

正常的支付项目还需要准备三层恢复机制:

1. 顾客主动查看时查单

顾客回到订单详情页,发现状态仍在确认中,商户服务端可以按规则查询支付结果,再更新页面。

2. 后台定时补偿

系统定期扫描超过一定时间仍未确认的订单,主动查询结果。已经成功的订单补做确认,明确失败或超时的订单进入相应处理流程。

3. 人工核查入口

客服或运营可以根据业务订单号、商户支付订单号或支付侧交易号查询,但人工操作必须有权限控制、处理依据和操作记录。

这三层机制的目的不是让人随意“改订单”,而是让系统在通知延迟、网络异常或局部故障后,仍然可以恢复到可核对的正确状态。

六、支付完成以后,为什么还要设计关单、退款和对账?

支付不是只有成功这一种结局。

未支付订单需要关单

顾客长时间未付款、库存已经释放或活动价格已经失效时,业务系统需要停止这张订单继续支付。关单前后如何查验状态,必须按具体产品规则执行,避免“商户认为已关闭,顾客却在同时完成付款”的状态冲突。

已支付订单可能退款

退款需要关联原支付订单,还要处理全额退款、部分退款、多次退款、退款处理中和退款失败。

“退款接口已经受理”与“顾客已经收到退款”不是同一个状态,系统应保留退款单号和最终结果。

每天都需要对账

业务系统关心订单和履约,支付数据关心交易和退款,财务还会关心费用与资金结算。三者不是同一张表,但必须能够通过订单号和交易号关联。

如果项目只设计收款,没有设计退款和对账,问题往往不会在第一天出现,而会在交易量增长后集中暴露。

七、支付接口“已经调通”和“可以稳定上线”,差在哪里?

接口调通通常只能说明:

  • 能创建一笔测试订单;
  • 能调起付款页面;
  • 能完成一次正常支付;
  • 能在后台看到一条交易。

稳定上线还要继续确认:

  1. 用户重复点击会不会产生异常订单;
  2. 下单请求超时后能否判断是否已经受理;
  3. 通知重复到达会不会重复发货或重复加余额;
  4. 通知延迟时能否主动查单并恢复;
  5. 金额、商户和订单信息是否逐项核对;
  6. 全额退款和部分退款能否正确处理;
  7. 业务订单、支付数据和账单能否对上;
  8. 密钥、证书和后台权限是否受到保护;
  9. 异常交易是否有监控和告警;
  10. 客服、运营、财务和技术是否知道出现问题时找谁、查什么、怎样处理。

能完成正常支付,是开发起点;能够处理异常并恢复,才接近可上线状态。

八、企业接入前,先准备这张需求清单

准备咨询或开发线上支付 API 时,建议先回答以下10个问题:

  1. 业务属于商城、会员、缴费、预约、平台还是其他模式?
  2. 顾客通过公众号、小程序、H5、App、PC还是线下扫码付款?
  3. 下单主体、收款主体和实际履约主体分别是谁?
  4. 当前是否已有商城、SaaS、ERP或其他业务系统?
  5. 是否有自己的开发团队或长期技术服务商?
  6. 预计月订单量、客单价和高峰并发大致是多少?
  7. 是否存在部分退款、多次退款或跨周期退款?
  8. 业务系统目前怎样生成订单、确认履约和处理售后?
  9. 财务现在怎样核对交易、退款、费用和结算数据?
  10. 计划什么时候进入联调、测试和正式上线?

如果这些问题有一半还没有答案,第一步不是立即索要接口文档,而是先完成业务与系统梳理。

写在最后

顾客看到的线上支付,可能只有一个按钮和几秒钟的确认过程。

企业真正需要建设的,却是一条从业务下单、支付受理、结果确认、异常恢复,到退款和对账的完整链路。

先把订单、角色和状态画清楚,再选择接入方式;先设计通知、查询和异常恢复,再讨论正式上线。这个顺序越清晰,后续产品沟通、技术联调和财务验收越顺畅。

我们整理了一份《线上支付 API 接入需求表与上线自查清单》,覆盖业务场景、支付入口、订单模型、通知与查单、退款、对账、安全、测试和上线验收。

关注“富盛锦科技”,回复“API”,即可领取。

提交业务类型、支付入口、现有系统、预计订单量、开发条件和计划上线时间后,还可以申请一次接入评估。

下一篇预告:

《公众号、小程序、H5、App 和 PC 支付,接入方式怎么选?》

参考依据

本文用于一般业务与技术信息交流,不构成对某一支付产品的完整接口说明,也不构成法律、财务或合规意见。具体接口、签名、通知、查询、退款、账单、准入与结算规则,以实际产品最新官方文档、合作机构审核和正式协议为准。

富易付
银行联合收单 · 最高支持0手续费
以支付科技赋能中小微企业
3 分钟免费诊断|1 对 1 定制你的支付+收银解决方案
覆盖零售 / 餐饮 / 校园 / 能源 / 医美 / 休闲娱乐 6 大行业
扫码加顾问|立即定制属于您的方案
扫一扫|1对1专属顾问
扫码咨询