背景与问题

企业在搭建自有商城系统时,支付环节是影响交易闭环的核心节点。微信支付与支付宝作为国内最常用的两种电子支付方式,几乎覆盖了绝大多数消费场景。对于计划推进数字化经营的团队而言,如何在自己的商城系统中合规、稳定地接入这两种支付能力,是上线前必须解决的关键问题。

常见的实际需求包括:

  • 让 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,签名校验通过
  • [ ] 订单状态在支付完成后能正确更新
  • [ ] 退款接口已完成联调,包括全额和部分退款
  • [ ] 订单查询接口可用于前端状态轮询
  • [ ] 日志中完整记录了订单号、金额、支付方式、回调结果
  • [ ] 密钥、证书文件未提交到代码仓库

总结

商城系统接入微信支付和支付宝,本质上是围绕“下单、唤起、回调、退款”四个关键流程进行的工程化实现。前期重点在于商户资质准备与接入方式选型,中期重点在于服务端签名与异步通知校验,后期重点在于对账、退款和运维监控。按照本文给出的步骤和检查清单推进,可以让支付接入过程更加清晰可控,也便于后续在多端、多渠道扩展更多支付能力。对于有数字化升级需求的企业来说,稳定的支付链路是电商业务长期运行的基础设施,值得在前期投入足够的时间进行规范设计。