微信App支付接入步骤&支付中前后端交互流程
最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时商户App、商户Server、微信App、微信支付Server
的交互流程进行了简单了解。这篇文章应该算是学习笔记,分享出来,希望对感兴趣的朋友有一定帮助。
本文从以下三个方面介绍微信App支付:
- 微信支持哪几种支付模式?
- 如何申请接入微信App支付?
- 微信App支付流程(
支付过程中的前后端交互逻辑
)
一、微信支付模式
微信支付的全部支付模式以及对应的支付场景如下:
- 付款码支付(场景:
线下面对面收银
)
付款码支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。主要应用线下面对面收银的场景。 - Native支付(场景:
PC网站支付
)
Native支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。 - JSAPI支付(场景:
微信内H5支付
)
JSAPI支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。应用场景有:
用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付;
用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付;
将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付; - APP支付(场景:
商户App集成微信sdk完成支付
)
APP支付又称移动端支付,是商户通过在移动端应用APP中集成开放SDK调起微信支付模块完成支付的模式。 - H5支付(场景:
手机浏览器支付
)
H5支付主要是在手机、ipad等移动设备中通过浏览器来唤起微信支付的支付产品。 - 小程序支付(场景:
微信小程序支付
)
小程序支付是专门被定义使用在小程序中的支付产品。目前在小程序中能且只能使用小程序支付的方式来唤起微信支付。
二、微信App支付申请步骤
App支付为终端在商户App
内集成微信支付SDK
,点击支付后通过调用微信支付SDK
相关接口,唤起微信App
从而完成支付流程。
微信APP支付申请步骤如下:
- 注册微信开放平台账号
需要的资料:
邮箱、企业注册地、开发者资料(姓名、手机号、联系地址、身份证号);
- 认证开发者资质(认证资质后方可申请微信支付)
需要的资料:
认证公函的盖章电子版、企业全称、工商营业执照照片、对公账户(账户名称、账号、开户银行,个体工商户可用法人的银行账户代替)、认证联系人信息(姓名、电话、座机、邮箱、身份证号码);
申请开发者资质认证审核服务费:300元/次;
- 创建应用获取AppID
需要资料:
应用名称、简介、官网、应用logo、安卓应用签名、安卓应用包名;
- 微信支付商户平台接入微信支付
需要的资料:
超级管理员资料(姓名、手机号、邮箱)、营业执照照片、组织机构代码证照片(未三证合一)、法人身份证正反面照片、对公银行账户(开户名称、开户银行、开户支行、开户账号)、经营信息(经营类目、售卖商品描述)、公众号AppID
- 在线签署协议
- 确定App绑定关系
2.1 注册微信开放平台账号
微信开放平台注册地址如下:
https://open.weixin.qq.com/
注册所需信息:
邮箱、企业注册地、开发者资料(姓名、手机号、联系地址、身份证号)。
微信开放平台注册步骤如下:
- 微信开放平台注册账号
注册地址:
https://open.weixin.qq.com/
- 填写注册信息
一般采用邮箱注册。
- 完善开发者资料:
开发者资料包括:姓名、手机号、联系地址、身份证号。
2.2 认证开发者资质
通过开发者资质认证后方可申请微信支付。
进入微信开放平台【账号-开发者资质认证】:
https://open.weixin.qq.com/
申请开发者资质认证审核服务费:300元/次;
申请所需材料:
认证公函的盖章电子版、企业全称、工商营业执照照片、对公账户(账户名称、账号、开户银行,个体工商户可用法人的银行账户代替)、认证联系人信息(姓名、电话、座机、邮箱、身份证号码);
认证审核时间: 1-5个工作日;
开发者资质认证操作步骤如下:
- 点击“现在申请”进入微信公众平台:
- 选择认证类型&上传公函:
- 上传工商营业执照:
- 填写对公银行卡信息:
- 填写联系人信息:
- 确认命名:
- 支付认证费用:
2.3 创建应用获取AppID
该步骤开始的前提:
APP开发基本完成,打包获取应用签名、包名
(备用);
创建应用:
进入微信开放平台【管理中心-移动应用】https://open.weixin.qq.com/
所需信息:
应用名称、简介、官网、应用logo、安卓应用签名、安卓应用包名
创建应用并提交审核,审核通过后会获取到AppID。
2.4 微信支付商户平台接入微信支付
进入微信开放平台【管理中心/应用详情】“申请开通微信支付”:
https://open.weixin.qq.com/
申请所需材料:
超级管理员资料(姓名、手机号、邮箱)、营业执照照片、组织机构代码证照片(未三证合一)、法人身份证正反面照片、对公银行账户(开户名称、开户银行、开户支行、开户账号)、经营信息(经营类目、售卖商品描述)、公众号AppID
提交后系统会进行校验,校验通过会进行汇款验证,验证通过后即完成申请资料提交;
微信支付审核时间:1-5个工作日
;
微信支付商户平台接入微信支付的操作步骤如下:
- 填写超级管理员姓名、手机号、邮箱,以创建申请单:
- 进入填写商户资料页面,选择主体类型为“企业”后,按页面提示提交相关信息,详见下图:
- 预览申请单并确认:
2.5 在线签署协议
微信支付审核通过后,需要在线签署协议。
- 审核通过后,待签约模版消息会通过
微信支付商家助手
公众号推送给超级管理员
- 点击消息进入签约页面,核对商户信息和阅读协议后,点击签署,即可完成签约
2.6 确定绑定关系
微信支付交易发起依赖于公众号、小程序、移动应用(即APPID)与商户号(即MCHID)的绑定关系,因此商户在完成签约后,需要确认当前商户号同AppID的绑定关系,方可使用。
App集成微信支付SDK:
- 登录微信支付平台【产品中心/AppID账号管理/我关联的AppID账号】新增AppID账号;
微信支付平台:
https://pay.weixin.qq.com
- 前往微信开放平台【管理中心/查看/微信支付/商户号管理】确认授权申请。
微信开放平台:
https://open.weixin.qq.com/
三、微信App支付流程
终端用户点击支付
后,商户客户端App
、商户Server
、微信客户端App
、微信支付Server
商户App通过集成微信支付SDK完成支付大概需要经过以下步骤:
- 生成支付订单;
- 支付授权;
- 用户输入密码进行交易;
- 支付结果异步通知;
- 商户App验证支付结果,并提示用户;
流程说明:
- 步骤1-2:终端用户打开
商户App
,浏览并选中商户在售商品,完成下单操作; - 步骤3:终端用户完成下单后,
商户App
调用商户Server
接口请求生成订单; - 步骤4-6:
商户Server
调用微信统一下单Api
请求生成预付费订单pre_pay_id
; - 步骤7-8:
商户Server
生成带签名的客户端支付信息,并将pre_pay_id、sign返回给商户App
。 - 步骤9:
商户App
调用微信支付sdk
提供的支付Api,唤起微信支付;并传入订单号、签名、价格等信息。 - 步骤10-12:
微信App
请求微信支付系统
发起支付请求,微信支付系统
完成支付参数验证,并将支付授权返回给微信App
。 - 步骤13-15:
微信App
弹出支付密码输入窗口,用户收入支付密码并确认支付;支付密码由微信App
调用微信支付系统
相关接口传递给微信支付系统
;微信支付系统
完成密码校验,随后完成交易。 - 步骤16-18:
微信支付系统
完成交易后,会通过异步通知的方式通知商户Server
,商户Server
完成数据库入库与其他逻辑操作后,通知微信支付系统处理结果。 - 步骤19-20:
微信支付系统
完成交易后,通知微信App
交易成功;微信App
回调给商户App
支付成功的消息。 - 步骤21-23:
商户App
收到微信支付成功的回调后,会调用商户Server
相关接口,再次确认订单是否支付成功,(此时若商户Server
尚未收到微信支付系统
支付成功的异步回调,会调用微信支付系统
相关Api主动查询订单状态)商户Server
将支付状态回调给商户App
,交易完成。
参考
open帐号注册操作步骤:
https://kf.qq.com/faq/170811QrE3En170811bUNRJb.html
微信认证申请流程:
https://kf.qq.com/faq/161220Brem2Q161220uUjERB.html
移动应用创建流程:
https://kf.qq.com/faq/170824EnUNRJ170824bYnEJr.html
如何提交接入申请资料?
https://kf.qq.com/faq/180910aYF77n18091073a6Jj.html
商户申请接入时,如何签约?
https://kf.qq.com/faq/180910Rn6FbI180910ZbYNn2.html
商户申请接入时,如何确认绑定关系?
https://kf.qq.com/faq/180910QZzmaE180910vQJfIB.html
商家商户号与AppID账号关联管理
https://kf.qq.com/faq/1801116VJfua1801113QVNVz.html