静态支付与动态支付
静态支付与动态支付
PayCools 本地收单的支付方式,可以按「支付信息在什么时候生成、金额是否在下单时确定」分为静态支付与动态支付两类。这两种形态并不局限于二维码:静态账单(虚拟账户 / 付款参考号)和固定收款链接同样属于静态支付,而动态二维码、动态账单以及下单时实时返回的支付信息则属于动态支付。选择哪种形态,取决于您的业务场景、对账要求和用户付款方式。
什么是静态支付
静态支付是指商户提前创建一组可以长期复用的支付信息(收款码、虚拟账户、付款参考号或固定链接),这组信息不绑定某一笔具体订单。
- 生成时机:提前一次生成,可长期重复使用。
- 金额:通常不在支付信息中固定,由用户在付款时输入,或按账单由用户自行确认。
- 订单关联:不与订单一一绑定,需要通过备注、门店、桌台、房间号或付款参考号等标识匹配。
- 对账方式:需将收到的款项与自有订单系统按标识匹配,对账工作量相对较大。
常见的静态支付形态包括:
- 静态二维码:门店收银码、桌台 / 房间码、捐赠码等,长期张贴、可重复扫码付款。
- 静态账单 / 虚拟账户:为同一用户或固定用途分配的虚拟账户或付款参考号,用户通过银行转账、便利店等线下渠道主动付款(详见账单支付)。
- 固定收款链接:长期有效的收款链接,金额不固定或由用户填写。
静态支付适合线下门店、长期固定收款、捐赠、公共事业缴费等场景,尤其适合需要让用户在不同时间、不同渠道反复付款的业务。
什么是动态支付
动态支付是指系统在每一笔订单下单时实时生成专属的支付信息,与订单一一绑定。
- 生成时机:每笔订单实时生成,通常具有时效,超时未支付即失效。
- 金额:在下单时确定并写入支付信息,用户付款时无需再输入金额。
- 订单关联:与订单号(如
mchOrderId)一一绑定,支付结果可精确对应订单。 - 对账方式:支付结果通知与订单一一对应,对账清晰。
常见的动态支付形态包括:
- 动态二维码:每笔订单生成一个独立的二维码,用户扫码后直接确认金额并支付。
- 动态账单:为每一笔订单生成专属的虚拟账户或付款参考号。
- 动态支付链接:直连渠道支付链接,跳转网页链接登录付款,部分链接支持跳转app支付。
动态支付适合电商下单、自助点餐与自助机具、账单催收、PC 端扫码支付等场景,尤其是每笔金额不同、需要严格按订单对账的业务。
两者对比
| 维度 | 静态支付 | 动态支付 |
|---|---|---|
| 支付信息生成时机 | 提前一次生成,长期复用 | 每笔订单实时生成 |
| 是否绑定订单 | 否,需通过标识匹配 | 是,与订单一一绑定 |
| 金额确定方式 | 由用户输入或按账单确认 | 下单时确定并写入支付信息 |
| 可复用性 | 可重复使用 | 一次性,通常超时失效 |
| 对账方式 | 按备注 / 门店 / 参考号匹配,难度较高 | 按订单号精确对应,清晰 |
| 支付结果通知 | 需结合标识匹配订单 | 通知中直接带回订单号 |
| 时效 | 长期有效 | 有时效限制,超时失效 |
| 典型形态 | 静态二维码、静态账单 / 虚拟账户、固定收款链接 | 动态二维码、动态账单、动态支付链接 |
| 典型场景 | 门店、捐赠、线下缴费、长期固定收款 | 电商下单、自助机具、账单催收、PC 扫码 |
| 常见集成方式 | 静态二维码收款、账单支付 | API 直连、收银台模式、动态二维码收款 |
静态支付的业务流程
提前创建可复用的静态码、虚拟账户、付款参考号或链接。
张贴在门店,或将链接 / 账户信息发送给用户。
用户扫码,或按付款指引发起付款。
用户输入或确认本次付款金额。
用户选择支付方式并完成付款。
PayCools 将支付结果异步通知商户。
商户按备注、参考号或门店标识完成对账。
动态支付的业务流程
订单号与交易号(对账与回调)
支付创建与回调中涉及两个编号:商户订单号(mchOrderId)与交易号(transactionId),两者用途不同,对账时请区分使用。
| 编号 | 含义 | 说明 |
|---|---|---|
mchOrderId | 商户订单号 | 商户创建支付(含静态支付)时传入;支付结果回调会原样带回,用于商户关联自身订单 / 账单。 |
transactionId | 交易号 | PayCools 对每一笔交易生成的唯一流水号;同一商户订单下每笔交易各不相同。 |
静态支付:一个订单号可能对应多笔交易
静态支付信息可被多次付款(例如同一虚拟账户 / 付款参考号在多个时间点收到多笔付款)。商户通过 API 创建静态支付时传入的 mchOrderId 会带入每笔付款的回调中,但每笔付款都有自己的 transactionId,且互不相同。
- 回调粒度:回调按「交易」下发,同时携带商户请求的
mchOrderId与本笔交易的transactionId; - 对账建议:以
transactionId区分每一笔到账交易,避免将同一订单号下的多笔付款误对成一笔; - 业务关联:再通过
mchOrderId关联到您的账单 / 用户。
动态支付:一笔订单通常对应一笔交易
动态支付为每笔订单实时生成,通常一笔订单对应一笔交易,mchOrderId 与 transactionId 一一对应,对账清晰。
回调的投递与重试遵循统一规则,详见支付通用规则 · 回调通知规则。
如何选择
| 您的业务特征 | 推荐形态 |
|---|---|
| 线下门店、长期固定收款 | 静态支付 |
| 需要用户在不同时间、不同渠道反复付款 | 静态支付 |
| 账单 / 公共事业缴费、金额由用户确定 | 静态支付 |
| 每笔订单金额不同、需严格按订单对账 | 动态支付 |
| 电商下单、自助点餐、自助机具 | 动态支付 |
| 需要向指定订单发起催收或推送付款 | 动态支付 |
| 希望缩短付款路径、减少用户输入 | 动态支付 |