微信小程序支付:开发前必读!全面细节导图官方模式齐全必备
开发前必读
1、开放模式介绍
在进行微信支付开发之前,深刻理解微信支付的账号关系非常有助于你使用微信以及微信支付的能力。微信支付对商户开放的所有面对用户使用的api,都是由appid和mch_id成对使用的。微信支付开放的能力主要分2大类,普通模式和服务商模式
1.1普通模式
最常规的普通模式,适用于有自己开发团队或外包开发商的直连商户收款。开发者申请自己的appid和mch_id,两者需具备绑定关系,以此来使用微信支付提供的开放接口,对用户提供服务。
微信支付基础账号模型-普通模式
1.2服务商模式
第三方服务商申请自己的服务号appid,并通过该服务号appid申请服务商mch_id,以此获得微信支付服务商能力。再通过服务商mch_id为所服务的特约商户申请创建微信支付sub_mch_id,创建好的sub_mch_id默认和服务商的mch_id建立父子授权关系。以此来使用微信支付提供的开放接口,对特约商户及用户提供服务。同时,微信支付为服务商模式下的每一条“mch_id-sub_mch_id父子授权关系”上,都开放了一些开发配置能力供服务商配置,包括不限于支付授权目录、推荐关注的appid、sub_appid等。拿小程序支付举例,服务商订单由哪个小程序调用js拉起支付,则需要在特约商户开发配置中将该小程序appid配置成sub_appid。每条父子关系上的sub_appid可以为多,用以满足不同的场景需求,但每笔交易只能使用1个。
注:sub_appid详细说明请参数附录
服务商模式下又分普通服务商和银行服务商两大类,除资金清算能力不同,在账号模型和使用上,普通服务商和银行服务商并无区别。
微信支付基础账号模型-服务商模式
1.2.1普通服务商发起支付
最常规的第三方模式,第三方帮特约商户申请商户号并为他进行支付开发,第三方本身不经手资金,支付成功后资金直接进入特约商户商户号。
普通服务商微信支付资金清算流程
1.2.2银行类服务商发起支付
有清算资质的银行机构可申请成为微信支付银行类服务商,开通后可通过api创建特约商户号并为其进行支付开发,资金直接进入银行类服务商账户,由银行服务商为特约商户进行资金清算;在此能力的延伸下,银行服务商不仅可直接为其特约商户提供服务,也可间接用同一套模式为渠道商的特约商户提供服务。渠道商可通过银行类服务商基于微信支付接口封装的特约商户创建、子商户开发配置(推荐关注、sub_appid等)、下单接口,来为渠道商下属商户接入微信支付。渠道商部分说明详见:http://wxpay.wxutil.com/download/bank_channel_qa.pdf;银行类服务商接口详见:https://pay.weixin.qq.com/wiki/doc/api/mch_bank.php?chapter=9_21
银行服务商微信支付资金清算流程
2、业务场景结合
了解完微信支付不同模式的基础账号关系与使用后,针对第三方模式进行枚举说明,以小程序举例。
小程序的开发:第三方服务商帮商户开发小程序,有三种业务场景:
1、第三方自己申请账号,自己开发,生成指定内页给特约商户用,该模式简称中心化模式。
2、以特约商户身份申请小程序appid,第三方完成开发,该模式简称外包模式。
3、通过开放平台第三方开发者代特约商户进行小程序的开发,该模式简称第三方模式。
无论哪种模式开发的小程序,在使用面对用户的微信支付能力时,都以该小程序appid为主体id来调用微信开放平台提供的api。以在某小程序中发起微信支付为例,分后台下单和前端js拉起收银台两部分。其中,后台下单对应微信支付的三大类开放模式,前端js拉起收银台需通过该小程序的appid,且该appid参与后台下单。即,根据不同的开放模式和业务场景枚举,第三方开发小程序使用微信支付,可分别3*3,共9种不同的组合,第三方需根据自我业务诉求选择对应的组合模式来使用。
小程序开发模式+支付下单模式组合
注:以上3*3共计9种组合,均能跑通微信支付。但红色连接线为二清模式,政策上不允许采用该模式。有需求的第三方开发者可通过银行渠道商模式接入。
业务说明
1、说明
最常规的普通模式,适用于有自己开发团队或外包开发商的直连商户收款。
2、账号申请指引
1. 申请小程序开发者账号,进行微信认证,获取appid登录mp.weixin.qq.com,注册一个小程序的开发者账号。申请指引:https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html
获取到小程序开发者账号后,进行微信认证。微信认证指引:https://mp.weixin.qq.com/debug/wxadoc/introduction/#小程序申请微信认证
2. 小程序开通微信支付,即申请或复用微信支付商户号 申请完小程序后,登录小程序后台(mp.weixin.qq.com)。点击左侧导航栏的微信支付,在页面中进行开通。(开通申请要求小程序已发布上线)
点击开通按钮后,有2种方式可以获取微信支付能力,新申请微信支付商户号或绑定一个已有的微信支付商户号,请根据你的业务需要和具体情况选择,只能二选一。开通指引:http://kf.qq.com/faq/140225MveaUz161230yqiIby.html
2、开发指引
除被扫支付场景以外,商户系统先调用统一下单接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP、小程序等不同场景生成交易串调起支付,具体API接口请查看"API列表"
注意:
appid必须为最后拉起收银台的小程序appid;
mch_id为和appid成对绑定的支付商户号,收款资金会进入该商户号;
trade_type请填写JSAPI;
openid为appid对应的用户标识,即使用wx.login接口获得的openid
业务流程
业务流程时序图
小程序支付的交互图如下:
商户系统和微信支付系统主要交互:
1、小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】
2、商户server调用支付统一下单,api参见公共api【统一下单API】
3、商户server调用再次签名,api参见公共api【再次签名】
4、商户server接收支付通知,api参见公共api【支付结果通知API】
5、商户server查询支付结果,api参见公共api【查询订单API】
小程序支付开发步骤
如果开发者已做过JSAPI或JSSDK调起微信支付,接入小程序支付非常相似,以下是三种接入方式的对比:
对比栏目 | JSAPI | JSSDK | 小程序 |
统一下单 | 都需要先获取到Openid,调用相同的API | ||
调起数据签名 | 五个字段参与签名(区分大小写):appId,nonceStr,package,signType,timeStamp | ||
调起支付页面协议 | HTTP或HTTPS | HTTP或HTTPS | HTTPS |
支付目录 | 有 | 有 | 无 |
授权域名 | 有 | 有 | 无 |
回调函数 | 有 | success回调 | complete、fail、success回调函数 |
程序访问商户服务都是通过HTTPS,开发部署的时候需要安装HTTPS服务器
![](http://tupian1.hg-daigou.com/weixincj/20191006/qmwzszwwgqg12078.jpg)
道火自然
创始人 刘明华
软件程序开发CEO热线
18910378912
道火自然是一家前沿人工智能企业,
公司通过将机器学习和系统神经科学的
用最先进技术结合建立强大的通用AI预测算法
同时兼顾IT技术和各种小程序定制开发·
微信小程序矩阵从0-1的全栈产品
APP产品研发到运营推广-营销变现技术VC
独创微信小程序社群运营推广系统+社交电商推广运营开发
道火自然(北京)科技有限公司
北京市昌平区能源东路1号楼350 www.zonguo.net