最近对微信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/

注册所需信息:

邮箱、企业注册地、开发者资料(姓名、手机号、联系地址、身份证号)。

微信开放平台注册步骤如下:

  • 填写注册信息

    一般采用邮箱注册。

  • 完善开发者资料:

    开发者资料包括:姓名、手机号、联系地址、身份证号。

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

========== THE END ==========

微信App支付接入步骤&支付中前后端交互流程的更多相关文章

  1. ios的Ping++支付接入步骤-b

    1. Client 发送支付要素给 Server 2. Server 发送支付请求并将返回的支付凭据传给 Client 3. Client 调起支付控件完成支付 4. 渠道同步返回支付结果给 Clie ...

  2. thinkphp5.0 微信公众号接入支付宝支付

    ---恢复内容开始--- 真是无力吐槽这个需求了,想骂客户,好端端的非要在微信公众号接入支付宝,都知道微信公众号是拒绝支付宝的,屏蔽了支付宝,所以在微信公众号接入支付宝的话就必须手动复制链接跳出微信内 ...

  3. php 微信公众号接入支付宝支付

    真是无力吐槽这个需求了,好端端的非要在微信公众号接入支付宝,都知道微信公众号是拒绝支付宝的,屏蔽了支付宝,所以在微信公众号接入支付宝的话就必须手动复制链接跳出微信内置浏览器,强制性打开web浏览器完成 ...

  4. Python 利用三个简易模块熟悉前后端交互流程

    准备工作 在学习Django之前,先动手撸一个简单的WEB框架来熟悉一下前后端交互的整体流程 本次用到的模块: 1.wsgiref,这是一个Python自带的模块,用于构建路由与视图 2.pymysq ...

  5. iOS的Ping++支付接入步骤(详细)

    Ping++ SDK 代码下载地址: https://github.com/CoderLeezhen/PingppDemo 参考链接: https://www.pingxx.com/guidance/ ...

  6. APP支付宝支付接入

    1.app支付简介 买家可以在手机,掌上电脑等无线设备的应用程序内,通过支付宝(支付宝app或网页版支付宝)付款购买商品,且资金实行实时到账. 2.申请条件 1.申请前必须拥有经过实名认证的支付宝账户 ...

  7. 微信支付之扫码、APP、小程序支付接入详解

    做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现.目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付.那么大家要思考了,为什么微信支付和支 ...

  8. 微信APP支付V3版本签名 && APP下单/订单查询接口Python版实现

    问题背景 最近接入微信支付,微信官方并没有提供Python版的服务端SDK,因而只能根据文档手动实现一版,这里记录一下微信支付的整体流程.踩坑过程与最终具体实现. 微信支付APP下单流程 根据微信官方 ...

  9. Android版-微信APP支付

    首发地址: Android版-微信APP支付 欢迎留言.转发 微信极速开发系列文章(微信支付.授权获取用户信息等):点击这里 目录 1.注册账号.开发者认证 2.添加应用 3.申请微信支付 4.技术开 ...

随机推荐

  1. LR与LR?

    目录 逻辑回归与线性回归 逻辑回归 1.建立目标函数 2. 梯度求解 3. 实现 线性回归 1. 建立目标函数 2. 求解 3. 实现 逻辑回归与交叉熵 逻辑回归与线性回归 逻辑回归 线性回归 目标函 ...

  2. 关键词seo优化的核心和重点

    http://www.wocaoseo.com/thread-197-1-1.html        网站SEO优化是很多站长所必须要面对的问题,但是很多新手站长对关键词应如何选择,关键词要如何布局一 ...

  3. 写Seo网站标题应该注意什么

    http://www.wocaoseo.com/thread-11-1-1.html 最近看了群里一些朋友讨论关于网站优化标题应该注意哪些?各种说法五花八门,好的seo优化标题是可以给网站带来不错的流 ...

  4. py_正则表达式练习

    正则表达式: #正则表达式 #键盘数字6上的符号,^表示行的开始,$ 表示行的结束 #test = "tm queal Tomorrow Moon" ''' ^tm #匹配tm开头 ...

  5. .Net ImageSharp给图片添加文字

    开始之前需要Nuget安装的包 ##这三个包是一定要安装的,不然库的有些方法用不了 一.导入字体 var fonts = new FontCollection(); var fontFamily = ...

  6. 用rspec执行自动化测试用例

    rspec是一款行为驱动开发(BDD)的工具,不过在这里用于测试,准确来说应该是测试驱动开发(TDD)吧.事实上我也没搞清楚.作为初学者不清楚就不清楚吧,以后会知道的.写博客无非就是写写学习笔记,不纠 ...

  7. spring集成shiro,事务失效问题 not eligible for auto-proxying

    BeanPostProcessor bean实例化顺序有关,@Configuration会最先实例化,也就是在spring启动完成之前. 导致Configuration中使用的注入,没能在spring ...

  8. Python自动化测试入门科技树

    Python基础: 入门语法和数据类型: 编码环境安装基本语法 常用数据类型 常用运算符 Llist.Tuple.Dict.if&for.while Python进阶: 函数: 语法 内置函数 ...

  9. php中无参函数的RCE

    学习一下php中无符号的问题. 1.无参数 <?php if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) { ev ...

  10. js reduce

    数组对象求和 let books = [ { id: 100, name: '红楼梦', price: 100 }, { id: 101, name: '西游记', price: 150 }, { i ...