01 它是干嘛的
支付宝既是面向大众的支付工具,也是面向商家的开放平台。它最早的突破是「担保交易」:买家的钱先交由平台保管,确认收货后才付给卖家,解决了陌生人交易的信任问题。商家侧则通过开放平台接入支付能力,完成从下单到对账的完整链路。
02 为什么会有它
2003 年之前:网上买东西,凭什么敢先付钱
在担保交易出现之前,网上买卖最大的障碍不是技术,而是信任。买家担心「付了钱,卖家不发货」;卖家担心「先发了货,买家不付钱」。双方素不相识、隔着几百公里,谁先迈出第一步都像是在赌。这个小问题,卡住了整个电商的发展。
担保交易是 2003 年前后出现的中国式创新:钱不直接打给卖家,而是先由平台保管;等买家收到货并确认无误,平台再把钱付给卖家。中间若产生纠纷,平台介入处理。这一下子把「陌生人之间怎么交易」变成了「平台做中间人担保」,双方都敢迈出第一步了。
随着规模扩大,支付宝支撑的早已不只是这笔担保交易,而是一整套支付基础设施:从消费者点下付款,到资金最终到达商家的银行账户,中间要经过授权、清算、结算多个环节,还要应对双十一这种瞬间的支付洪峰。对商家而言,接入支付不再是「接一个按钮」,而是理解一条完整的资金链路。
03 它怎么工作
消费者看到的「付款成功」只是一瞬间,背后分三段:授权是确认这笔支付被允许并冻结资金,清算是银行与机构之间核对谁该给谁多少钱,结算才是资金真正到账。
一笔支付的钱是怎么走的:授权、清算、结算
- 1① 授权
用户在收银台确认支付后,系统校验身份与余额,把这笔钱标记为待支付,此时资金尚未真正划走。
- 2② 清算
在约定的时间点,各参与机构对账,确认每一笔交易该由谁付出、谁收到,把一天的交易算清楚。
- 3③ 结算
按清算结果完成实际的资金划转,钱真正从付款方账户到收款方账户,这一步才是「到账」。
- 4④ 商户侧完整链路
商家侧是另一条流程:用户下单生成订单,商家拉起收银台唤起用户支付,支付完成后接收异步通知,再用对账接口核对每笔交易的最终状态。
- 5⑤ 异常与退款处理
交易可能失败、超时或被退款,异步通知还可能重复或延迟到达,因此商家必须做幂等处理,并以对账结果为准。
04 谁在用它
顾客在网站或 App 下单,通过支付宝完成付款,商家收到异步通知后发货。
收银台生成收款码,顾客扫码付款,适合餐饮、零售等面对面场景。
会员、包月服务通过签约代扣实现自动续费,减少用户反复手动支付。
面向境外用户或商家,处理不同币种的收付款与结算。
平台把一笔收款按约定分给多个参与方,如商家、配送、平台佣金各自结算。
05 怎么用
接入支付需要开发能力:要处理订单、回调与对账,尤其要理解异步通知与幂等。
- 01在支付宝开放平台注册并创建应用,配置密钥(推荐使用公私钥模式而非明文密钥)。
- 02开通所需能力(如当面付、手机网站支付),并准备相应的签约与资质。
- 03服务端调用下单接口创建交易,拿到用于唤起收银台的参数。
- 04客户端用这些参数拉起支付宝收银台,用户完成付款。
- 05服务端接收异步通知并做验签与幂等处理,据此更新订单;最后通过对账接口核对账目。
# 伪代码:处理支付结果异步通知
def handle_notify(request):
data = request.form.to_dict()
# 1) 验签:确认通知确实来自支付宝,防止伪造
if not alipay_client.verify(data):
return "failure"
# 2) 幂等:同一笔通知可能重复到达,按流水号去重
if order_already_paid(data["out_trade_no"]):
return "success"
# 3) 校验金额等关键字段,与本地订单核对后再更新状态
if float(data["total_amount"]) != get_local_amount(data["out_trade_no"]):
return "failure"
mark_order_paid(data["out_trade_no"], data["trade_no"])
return "success" # 返回 success 才会停止重推避坑提示
- !异步通知可能重复、延迟甚至丢失,务必做幂等,并以主动查询或对账结果作为最终依据,而不是只依赖一次通知。
- !密钥必须保存在服务端并对敏感操作验签,客户端拿到的一切参数都可能是伪造的。
- !金额等关键字段要以服务端订单为准核对,不要相信前端传来的金额。
06 关键概念
- 担保交易
- 钱先由平台保管,买家确认收货后才付给卖家,解决陌生人之间的信任问题。
- 授权 / 清算 / 结算
- 支付的三段:先确认支付被允许并冻结资金,再核对各方账目,最后资金真正划转。
- 异步通知
- 支付完成后系统主动回调商家的服务端告知结果;它可能延迟或重复,商家需自行校验与去重。
- 对账
- 事后把平台记录的每笔交易与商家自己的订单逐笔核对,是发现差错与保障资金安全的最后一关。