根据商户具体的情况,刷卡支付接入模式可分为:商户后台接入和门店接入;

根据用户是否需要输入支付密码可分为:免密模式和验密模式。

1、接入模式-商户后台接入

该模式适合具备统一后台系统的商户。门店收银台与商户后台通信,商户后台系统负责与微信支付系统发送交易请求和接收返回结果。

图5.4 商户后台接入刷卡支付

2、接入模式-门店接入

该模式适合门店收银台通过公网直接与微信后台通信的商户。门店收银台直接发起交易请求和处理返回结果。商户可以根据实际需要,处理门店和商户后台系统之间的其它业务流程。

图5.5 门店接入刷卡支付

3、免密支付流程

本节以商户后台接入模式说明支付流程,请参看以下时序图:

图5.6 刷卡支付免密流程时序图

流程详细说明:

(1)收银员在商户收银台生成支付订单,向用户展示支付金额;

(2)用户打开微信客户端,点击“我的钱包”,选择“刷卡”,进入条码界面;

(3)使用扫码设备读取用户手机屏幕上的条码;

(4)扫码设备将读取的信息上传给门店收银台;

(5)门店收银台得到支付信息后,向商户收银后台发起支付请求。

(6)商户后台对门店收银台的支付请求进行处理,生成签名后调用【提交刷卡支付API】向微信支付系统发起支付请求。

(7)微信支付系统得到商户侧的支付请求之后会对请求进行验证,验证通过之后会对请求数据进行处理,最后将处理后的支付结果返回给商户收银后台。如果支付成功,微信支付系统会将支付结果返回给商户,同时把支付结果通知给用户(以短信、微信消息的形式通知)。

(8)商户收银后台对得到的支付结果进行签名验证和处理,再将支付结果返回给门店收银台。

9)收银员看到门店收银台的支付结果后给用户发货。

4、验密支付流程

场景交互与免密模式相同,不同的是在商户调用【提交刷卡支付API】发起支付请求之后,微信支付后台提示用户输入密码确认支付,接口同步返回USERPAYING状态,商户系统再轮询调用查询订单接口来确认当前用户是否已经支付成功。

以下时序图说明验密支付流程:

图5.7刷卡支付验证密码流程时序图

由于在商户收银后台向微信支付系统发起支付请求之前的流程是完全一样的,所以这里只介绍商户发起支付请求之后的逻辑。

(1)商户门店生成订单后,收银台向后台系统发起支付请求。

(2)后台调用微信支付【提交刷卡支付API】生成支付交易。

(3)微信支付系统对商户请求进行验证,验证通过后判断当前用户需要输入密码。

(4)微信支付系统返回USERPAYING状态,商户后台系统将应答结果返回给商户门店收银台。

(5)微信支付系统通知用户微信客户端输入密码。

(6)用户得到输入密码提示后,确认支付并输入密码。

(7)完成密码输入,提交微信支付。

(8)微信客户端在用户完成支付后提示微信支付后台系统返回的支付结果,而且微信支付系统会通过短信、微信消息给用户发送支付结果提醒。

(9)商户收银台得到USERPAYING状态后,经过商户后台系统调用【查询订单API】(详见公共API)查询实际支付结果。

10)如果支付结果仍为USERPAYING,则每隔5秒循环调用【查询订单API】判断实际支付结果,如果用户取消支付或累计30秒用户都未支付,商户收银台退出查询流程后继续调用【撤销订单API】撤销支付交易。

5、异常处理

用户遇到支付异常,请按如下说明处理

(1)用户微信端弹出系统错误提示框,用户可在交易列表查看交易情况,如果未找到订单,需要商户重新发起支付交易;如果订单显示成功支付,商户收银系统再次调用【查询订单API】查询实际支付结果;

(2)用户微信端弹出支付失败提示,例如:余额不足,信用卡失效。需要重新发起支付;

(3)当交易超时或支付交易失败,商户收银系统必须调用【撤销订单API】(详见公共API),撤销此交易。

(4)由于银行系统异常、用户余额不足、不支持用户卡种等原因使当前支付交易失败,商户收银系统应该把错误提示明确展示给收银员。

(5)根据返回的错误码,判断是否需要撤销交易,具体详见API返回错误码列表

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: 微信刷卡支付接入模式及免密流程 http://www.chhua.com/web-note5478

随机笔记

更多

微信免密支付php代码实现,微信刷卡支付接入模式及免密流程相关推荐

  1. 微信支付python版2.0_刷卡支付-翟东平-专题视频课程

    微信支付python版2.0_刷卡支付-244人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

  2. 微信支付java版v2.0_刷卡支付-翟东平-专题视频课程

    微信支付java版v2.0_刷卡支付-1814人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

  3. Android微信刷卡支付开发

    微信开发不容易,在于各个环节的理解和疏通. 支付类型分为几种,每种的业务也不相同,所以就困扰了很多人,我也抱怨过资料的混乱,没办法慢慢梳理. 摸索过后才知道我需要的是刷卡支付业务.公司的Android ...

  4. 微信支付开发(7) 刷卡支付

    关键字:微信支付 微信支付v3 刷卡支付 统一支付 prepay_id  作者:方倍工作室 本文介绍微信支付下的刷卡支付的开发过程.微信刷卡支付是指用户打开微信钱包的刷卡的界面,商户扫码后提交完成支付 ...

  5. 微信公众号之刷卡支付

    此篇文章具体来聊聊微信刷卡支付 刷卡支付-官方文档 场景介绍 步骤1:用户选择刷卡支付付款并打开微信,进入"我"->"钱包"->"刷卡&q ...

  6. 在sdk中添加源文件_实用干货 | 一步一步教你在SpringBoot中集成微信刷卡支付

    一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业) 开通微信支付 开发配置 具体准备工作请参考Spring Boot入门教程( ...

  7. java微信刷卡支付demo_微信刷卡支付例子

    [实例简介] java微信支付样例~ 刷卡支付源码~自测可以使用,有需要的可以下来使用 [实例截图] [核心代码] wx-pay └── ScanPay └── ScanPay ├── WebCont ...

  8. Spring Boot入门教程(四十):微信支付集成-刷卡支付

    分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业 ...

  9. 关于支付宝服务商模式的刷卡支付没有分润的问题

    我申请支付宝服务商后,找了个实体店签约,并开通了当面付,但是测试刷卡支付时,虽然支付宝能成功扣款,暂时在支付宝的服务商的账单管理中看不到分润,我测试了12元.应该有几分钱的分润才对,而且交易额显示也是 ...

最新文章

  1. 使用WakeLock将Android应用程序保持后台唤醒
  2. Mac OS X必备APP推荐之一
  3. java基础分享_一、java基础教程
  4. LSI/LSA算法原理与实践Demo
  5. [Ogre] 创建Ogre项目的一劳永逸的简单办法
  6. 腾讯广告算法大赛已启动,逆向算法,等你来战
  7. Tomcat Script(python)
  8. 计算机组成原理第五版第四章课后答案,计算机组成原理第4章习题参考答案
  9. 服务器远程桌面日志,记录远程桌面连接登录日志的方法及注意事项
  10. 按键脚本c语言,按键精灵脚本代码大全 按键精灵命令使用方法
  11. 【金三银四】MySQL优化面试题(2021最新版)
  12. 从硅谷产品经理谈谈:AI产品经理要不要懂技术算法?
  13. 围棋大师阿里,产品经理腾讯
  14. 5分钟latex 使用入门写llncs论文
  15. Android系统ANR错误实战分析
  16. python画布组件_Python Tkinter 画布(Canvas)
  17. speedoffice表格如何全选表格
  18. 爬虫工程师是干嘛的?Python爬虫工程师需要掌握哪些技能?
  19. 2017年最新App Store审核指南(官方)
  20. MySQL数据库鼠标操作

热门文章

  1. 发朋友圈文案被折叠了怎么办?
  2. 三面蚂蚁金服成功拿到offer,帮你解决90%的问题!
  3. Python numpy输出省略号
  4. 斯坦福在线硕士学位_您现在可以完全在线上获得9个合法的硕士学位
  5. 笔记本显卡未连接计算机,Win10提示“您当前未使用连接到NVIDIA GPU显示器”怎么办?...
  6. python实现自动化(pyautogui全面总结)
  7. js 英文符号转中文符号
  8. uni-app.08.自定义扩展图标
  9. PHP使用topthink/think-queue消息队列实例
  10. 服务器c盘怎么删除临时文件,C盘中internet临时文件夹可以删除吗?将近3GB 爱问知识人...