微信支付5种支付方式对比

197 阅读4分钟

官方文档:支付产品

image.png

小程序支付

前置:✅ 由小程序自动提供openid 小程序内调用 wx.requestPayment,使用 JSAPI 类型

优点

  • 无需额外绑定服务号,小程序已内嵌微信支付能力
  • 用户体验流畅,支付流程无缝衔接在小程序内
  • 无需获取用户openid(小程序已自动获取)
  • 支持多种微信客户端,包括Windows版、Mac版、鸿蒙OS版等
  • 安全性高,支付数据通过微信支付后台校验和加密
  • 与微信生态深度集成,支付流程无需跳转

缺点

  • 需要在微信公众平台开通微信支付功能
  • 需要配置商户号、密钥等支付参数
  • 需要后端完成统一下单接口调用,生成预支付交易单
  • 开发者需要掌握微信支付的签名算法(MD5、HMAC-SHA256等)
  • 需要确保signType与统一下单接口的签名类型保持一致

APP支付

在原生 App(iOS/Android)中集成调用微信SDK 的 sendReq() 方法(iOS/Android 原生)

优点

  • 适用于原生APP内集成微信支付
  • 用户体验良好,支付流程顺畅
  • 无需用户额外操作,直接在APP内完成支付
  • 安全性高,支付数据通过微信支付后台校验和加密
  • 支持多种平台(iOS、Android),支付流程统一

缺点

  • 需要注册微信开放平台,绑定APP
  • 需要开发者熟悉微信开放平台的API和支付流程
  • 需要审核APP的支付功能
  • 需要处理不同平台(iOS、Android)的差异
  • 需要处理APP内支付的回调和支付结果验证

JSAPI支付 (公众号支付)

前置:✅ 通过 OAuth2 获取获取openid 用户在微信内打开 H5 页面,通过公众号发起支付

优点

  • 注册微信支付商户平台后默认可用
  • 配合公众号能力更强,可结合公众号营销活动
  • 可以获取用户openid,便于用户行为分析和后续营销

缺点

  • 必须绑定一个认证的服务号
  • 需要用户授权openid
  • 需要公众号与支付商户号关联
  • 仅适用于微信内访问的网页

H5支付

用户在手机浏览器(非微信内置)中打开网页,唤起微信支付。跳转到微信返回的 mweb_url(由后端统一下单获得

跳转流程:商户 H5 页面 → 统一下单 → 获取 mweb_url → 跳转至微信支付中间页 → 用户支付 → 跳回 redirect_url

备注:若域名未备案或未加入白名单,可能被拦截

优点

  • 不需要服务号,也不需要获取openid
  • 可以直接在移动端浏览器中唤起微信支付
  • 适用于所有支持H5的浏览器环境
  • 无需用户下载APP,支付流程简单

缺点

  • 需要平台审核,流程较复杂
  • 接入产品需要通过官方审核
  • 支付体验可能不如小程序流畅
  • 需要处理H5页面的兼容性问题

Native支付(扫码支付)

商户生成二维码(内容为 code_url),用户用微信“扫一扫”完成支付

优点

  • 适用于PC端或线下场景,用户扫描二维码完成支付
  • 不需要用户安装APP,只需微信APP即可
  • 适用于电商网站、线下门店等场景
  • 支付流程简单,用户操作便捷
  • 无需服务号或小程序,接入相对简单

缺点

  • 需要商户生成二维码,用户需要手动扫描
  • 无法直接在浏览器中完成支付,需要跳转到微信APP
  • 对于PC端用户来说,需要微信APP支持
  • 无法获取用户openid,不利于后续营销
  • 用户操作步骤较多(打开微信->扫描->支付)

适用场景

支付方式适用场景认证要求费用trade_type
小程序支付小程序内支付小程序认证300JSAPI
JSAPI支付公众号内支付公众号认证300JSAPI
H5支付手机浏览器内支付开放平台开发者认证300MWEB
Native支付PC网页支付、线下扫码支付公众号认证300NATIVE
APP支付APP内支付开放平台开发者认证300APP

PC和线下扫码基本上一致,均是使用微信扫码支付。