微信支付开发总结
总结了微信支付的支付产品的定义、应用场景及注意事项(如何调起支付及可能出现的问题),并对支付方式进行了对比。
付款码支付
定义: 用户打开微信钱包-付款码的界面,商户扫码后提交完成支付。
应用场景: 线下面对面收银。
注意事项: 商户获取到收款码,调用【付款码支付】接口发起支付,微信会同步返回支付结果,如果不为成功状态,商户需要轮询调用【查询订单】接口。基于一定的风控策略,存在随时需要验密的可能性。
Native支付
定义: 用户打开”微信扫一扫“,扫描商户的二维码后完成支付,也叫扫码支付。
应用场景: PC网站支付、实体店单品或订单支付、媒体广告支付。
注意事项: 用户打开的是微信收银台。调用【统一下单】接口,将返回的链接生成二维码,用户扫码后输入密码完成支付。
JSAPI支付
定义: 用户通过微信扫码、关注公众号等方式进入商家H5页面,并在微信内调用JSSDK完成支付。
应用场景: 商家公众号配置的页面、分享的商家页面或者商家页面生成的二维码,用户扫描打开的页面发起支付。
注意事项: WeixinJSBridge内置对象里的方法发起支付,只在微信浏览器内有效,支付成功后前端有回调,可以在这跳转到商家的完成页。
APP支付
定义: APP支付又称移动端支付,在商户APP中集成微信SDK,用户点击后跳转到微信内完成支付。
应用场景: 商户开发的APP应用。
注意事项: 开发者需要下载微信支付sdk。
H5支付
定义: 用户在微信以外的手机浏览器请求微信支付的场景唤起微信支付。
应用场景: 微信浏览器以外的H5页面发起的支付。
注意事项: 用户去点击按钮触发查单操作。调用【统一下单】接口,成功会返回支付跳转链接,自动拉起微信支付收银台的中间页面。
小程序支付
定义: 小程序支付是专门被定义使用在小程序中的支付产品。
应用场景: 只能在小程序中使用。
注意事项: 目前在小程序中能且只能使用小程序支付的方式来唤起微信支付。使用小程序接口【wx.requestPayment】调起支付。
刷脸支付
定义: 无需掏出手机,刷脸完成支付。
应用场景: 适用线下多种场景。
注意事项: 微信支付提供两种开放模式供设备接入集成:1. SDK开放模式(微信提供SDK,需要自行开发完整APP),2. 青蛙开放模式(微信提供完整APP,类似扫码枪功能,无需开发, 需要配合收银机使用)。刷脸得到用户的付款码,走的是【付款码支付】的流程,本质上没有多大区别。
微信支付方式对比
- APP支付由app内sdk调起,不做对比。
- 刷脸支付和付款码支付基本一致。
付款码支付 | Native支付 | H5支付 | JSAPI支付 | 小程序支付 | |
---|---|---|---|---|---|
统一下单 | 单独的支付接口 | 调用统一下单接口 | |||
下单是否需要openid | 不需要,支付成功后返回openid | 需要先获取到openid,再下单 | |||
调起方式 | 自动扣款 | 微信收银台 | 浏览器跳转到微信收银台 | WeixinJSBridge对象方法 | 小程序接口 |
调起支付页面协议 | HTTPS | HTTPS | HTTPS | HTTP或HTTPS | HTTPS |
支付目录 | 无 | 有 | 有 | 有 | 无 |
授权域名 | 无 | 无 | 无 | 有 | 无 |
回调函数 | 主动查询 | 主动查询 | 无,用户确认 | 有 | complete、fail、success回调函数 |
参考资料:微信支付开发文档
科学上网后可评论