背景与问题
企业在搭建自有商城系统时,支付环节是影响交易闭环的核心节点。微信支付与支付宝作为国内最常用的两种电子支付方式,几乎覆盖了绝大多数消费场景。对于计划推进数字化经营的团队而言,如何在自己的商城系统中合规、稳定地接入这两种支付能力,是上线前必须解决的关键问题。
常见的实际需求包括:
- 让 PC 端网站、H5 页面、小程序或原生 App 都能发起支付
- 区分不同的交易场景,例如网页扫码、小程序内支付、App 调起支付
- 保证交易资金能够结算到企业对公账户
- 满足交易记录对账、售后退款等基础财务要求
核心判断
在动手接入之前,需要先明确几个判断要点,避免后续返工。
- 主体资质:微信支付和支付宝商家接口均要求商户具备合法经营资质,通常需要营业执照、对公账户、行业类目相关证件。个人开发者难以独立接入生产环境的商家支付。
- 接入方式:微信支付提供 Native、JSAPI、H5、小程序、App 等多种接入方式;支付宝提供电脑网站支付、手机网站支付、APP 支付、小程序支付、当面付等。选型取决于用户下单所处的终端环境。
- 开发语言与框架:商城系统无论是基于 Java、PHP、Node.js 还是 .NET,对接思路都是通过 HTTPS 接口调用支付平台 API,并按规范校验签名与回调。
实施步骤
以下步骤给出一个通用、对主流技术栈都适用的接入思路。
- 注册商户号并准备材料
- 在微信支付商户平台和支付宝商家中心分别注册账号
- 提交营业执照、法人身份证、对公账户等信息完成主体认证
- 申请对应的支付产品,例如微信的 JSAPI 支付或支付宝的手机网站支付
- 获取接入凭证
- 微信支付:获取 AppID、商户号(MchID)、API 密钥(APIv2)或 API 证书(APIv3)、回调域名
- 支付宝:创建应用获取 AppID,配置应用公私钥或证书,加密方式选择 RSA2
- 服务端统一下单
- 商城后端调用支付平台统一下单接口,传入订单号、金额、商品描述、回调地址等参数
- 接收返回的预支付信息(微信的 prepay_id 或支付宝的 trade_no 等)
- 前端唤起支付
- 微信内环境使用 JSAPI,H5 使用 H5 支付,App 使用 App 支付
- 支付宝 H5 页面通过表单提交或 SDK 唤起,App 端通过支付宝 SDK 调起
- 严格按照支付平台文档对参数进行加签,前端只负责把签名结果传给客户端
- 异步通知与对账
- 用户支付完成后,支付平台会向商户回调地址发送异步通知
- 服务端必须校验签名、校验订单金额、校验订单状态,避免伪造回调
- 处理完成后按接口规范返回 success 或 failure,否则支付平台会重复推送
- 退款与查询
- 接入查询订单接口,用于前端轮询或主动核对订单状态
- 接入退款接口,支持单笔退款和部分退款,资金原路返回用户
- 保存完整的交易流水,方便财务对账和售后处理
风险与避坑
- 回调地址必须使用 HTTPS:支付平台普遍要求回调地址为可公网访问的 HTTPS 接口,且域名需提前在商户后台配置。
- 签名密钥不可硬编码在客户端:所有加签操作应放在服务端,避免密钥泄露导致资金风险。
- 金额单位与精度:微信支付金额单位为“分”,支付宝金额单位为“元”,需要保留两位小数,务必避免浮点精度问题。
- 订单号唯一性:商户订单号必须保证唯一,长度也要符合平台要求,否则可能造成重复支付或掉单。
- 接口版本升级:微信支付已逐步推荐 APIv3 证书方案,老的 APIv2 密钥方案在安全和合规上存在不足,新项目建议直接使用 APIv3。
- 支付方式的合规边界:不同行业类目在支付费率、结算周期、可用支付产品上存在差异,应以官方页面显示的能力为准,避免在合同或宣传中给出未经确认的费率。
检查清单
上线前可以对照以下清单逐条确认:
- [ ] 商户号已通过主体认证且状态正常
- [ ] AppID、商户号、密钥或证书已正确配置到后端环境变量或配置中心
- [ ] 统一下单接口可正常返回预支付参数
- [ ] 前端能够正确唤起支付收银台
- [ ] 异步通知地址已配置且支持 HTTPS,签名校验通过
- [ ] 订单状态在支付完成后能正确更新
- [ ] 退款接口已完成联调,包括全额和部分退款
- [ ] 订单查询接口可用于前端状态轮询
- [ ] 日志中完整记录了订单号、金额、支付方式、回调结果
- [ ] 密钥、证书文件未提交到代码仓库
总结
商城系统接入微信支付和支付宝,本质上是围绕“下单、唤起、回调、退款”四个关键流程进行的工程化实现。前期重点在于商户资质准备与接入方式选型,中期重点在于服务端签名与异步通知校验,后期重点在于对账、退款和运维监控。按照本文给出的步骤和检查清单推进,可以让支付接入过程更加清晰可控,也便于后续在多端、多渠道扩展更多支付能力。对于有数字化升级需求的企业来说,稳定的支付链路是电商业务长期运行的基础设施,值得在前期投入足够的时间进行规范设计。