一、开放模式分类(微信支付的账户关系)
1、普通模式:最常规的普通模式,适用于有自己开发团队或外包开发商的直连商户收款。不能扩展子商户。
2、服务商模式:第三方服务商申请自己的s服务号,并通过该服务号申请服务商mch_id,来获得微信支付服务商能力 。再通过服务商mch_id为所服务的特约商户申请创建微信支付sub_mch_id,创建好的sub_mch_id默认和服务商的mch_id建立父子授权关系。以此来使用微信支付提供的开放接口。
服务商模式下又分普通服务商和银行服务商两大类,除资金清算能力不同,在账号模型和使用上,普通服务商和银行服务商并无区别。
①普通服务商模式:最常规的第三方模式,第三方帮特约商户申请商户号并为其进行支付开发,第三方本身不经手资金,支付成功后资金直接进入特约商户商户号。
②银行服务商:有清算资质的银行机构可申请成为微信支付银行类服务商,开通后可通过api创建特约商户号并为其进行支付开发,资金直接进入银行类服务商账户,由银行服务商为特约商户进行资金清算;
参考:
1、https://blog.csdn.net/zcmain/article/details/107413456
2、https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_0.shtml
3、文档中心:https://pay.weixin.qq.com/wiki/doc/apiv3/terms_definition/chapter1_1.shtml
4、V3文档参考:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_0.shtml
5、API V2文档:https://pay.weixin.qq.com/wiki/doc/api/wxpay_v2/pages/QuickPay.shtml
二、小程序支付
1、V2场景:商户已有微信小程序,用户通过好友分享或扫描二维码在微信内打开小程序时,可以调用微信支付完成下单购买的流程。
2、V2版本大概流程:①商户系统向微信平台预下单(获取prepay_id预支付交易会话标识) -> ②商户小程序拉起微信支付 ->③用户在移动端完成支付 ->④微信系统异步返回支付结果;
参考:
1、V2版本参考文档:https://pay.weixin.qq.com/wiki/doc/api/index.html
2、V3版本参考文档:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_0.shtml
三、JSAPI支付(公众号使用此方式)
1、V2场景:JSAPI支付适用于线下场所、公众号场景和PC网站场景。JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。
2、V2版本大概流程:①商户系统向微信平台预下单(获取prepay_id预支付交易会话标识) -> ②商户小程序拉起微信支付 ->③用户在移动端完成支付 ->④微信系统异步返回支付结果;
参考:
1、V2版本:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
2、V3版本:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
3、V2版本获取用户openid:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_4
四、H5支付
1、V2场景:H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。
2、V2版本大概流程:①商户系统向微信平台预下单(获取prepay_id与mweb_url,用于调起微信支付中间页) ->②跳转到微信支付中间页(需要拼接商户系统目标页面地址) ->③拉起微信客户端进行支付 ->④微信系统异步返回支付结果 ->⑤返回商户系统目标页面,商户页面查询字符结果;
参考:
1、V2版本:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_1
2、V3版本:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_3_1.shtml
五、APP支付
1、场景:APP支付是指商户通过在移动端应用APP中集成开放SDK调起微信支付模块来完成支付。目前微信支付支持手机系统有:IOS(苹果)、Android(安卓)和WP(Windows Phone)。
2、V2版本大概流程:①商户系统向微信平台预下单(获取prepay_id预支付交易会话标识) ->②商户APP拉起微信客户端进行支付 ->③用户完成支付 ->④微信系统异步返回支付结果 ->⑤微信客户端回调商户APP,商户APP进行支付结果查询;
参考:
1、V2版本:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1
2、V3版本:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_0.shtml
六、NATIVE支付
1、V2场景:商户系统按微信支付协议为不同商品生成不同的二维码,用户再用微信“扫一扫”完成支付的模式。Native支付适用于PC网站、实体店单品或订单、媒体广告支付等场景。
2、V2大概流程:①商户系统向微信平台预下单(获取prepay_id与code_url) ->②商户系统根据code_url生成二维码展示给用户 ->③用户使用微信客户端完成支付 ->④微信系统异步返回支付结果;
参考:
1、V2版本:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1
2、V3版本:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_1.shtml
七、接口规则
1、V3接口规则参考:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay2_0.shtml
2、V2接口规则参考:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_1