
自动售货机支付对接是个坑洼地带接口文档长、对接环节多、异常场景复杂今天用大白话把整个链路讲清楚。背景自动售货机支付是整个商业闭环的核心。用户投了钱却没拿到货或者扣了款却出故障客诉量直接爆表。微信和支付宝都有专门面向物联网设备的支付接口叫JSAPI支付和协议支付但文档分散在好几个地方官方Demo也不够贴近自动售货机的实际场景。我来把整个对接流程梳理一遍。核心内容一、前置准备资质与签约自动售货机接入微信和支付宝收款前提是必须有商户号企业资质个人是无法申请的。微信支付要在商户平台开通Native支付或JSAPI支付场景支付宝则需要开通当面付产品。另外自动售货机属于特殊行业无人零售微信对这类商户的资质审核会稍严需要提供设备照片和实际场景说明。签约完成之前不要开始技术对接白做了还得重来。二、支付流程设计先冻结后扣款自动售货机的标准支付流程不是直接扣款而是预授权冻结确认扣款两阶段。用户选商品、发起支付后先冻结对应金额机器检测到出货成功货道传感器触发后才真正扣款如果用户取消或者机器出货失败立即解冻。这套机制能有效避免资金纠纷也是微信和支付宝官方推荐的做法。三、回调通知的处理支付完成后微信和支付宝会向你的服务器发一个回调通知notify_url。这个接口是整个链路里最容易出问题的地方——必须返回success给平台否则平台会重复发通知必须做签名校验拿到参数后用平台提供的密钥做MD5或RSA验签防止伪造回调必须做幂等处理因为网络原因平台可能发多条相同通知要用订单号做去重。回调处理的顺序很重要第一步验签、第二步查本地订单状态已处理则直接返回success、第三步更新订单状态、第四步返回success。有些开发者一上来就更新数据库结果验签失败时数据已经脏了。四、异常场景兜底机制自动售货机实际运营中会遇到的异常场景用户扫码后断电、机器出货卡货但已扣款、网络延迟导致回调超时。这些场景的兜底方案是对账。建议每天凌晨跑一次对账脚本把平台侧的交易流水和本地订单记录对比找出金额不一致的订单主动退款或补发货。微信和支付宝都提供查询订单接口和退款接口对账逻辑可以完全自动化。总结自动售货机支付对接的核心是三件事——签约资质先行、两阶段支付流程设计、回调通知安全处理。前置工作做扎实后续开发才能顺。异常场景的对账机制是运营保障的最后一道防线建议在技术方案阶段就定下来别等上线了再补。