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

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

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. 5如何将表格的一行数据清空_微信公众号推文中如何自定义添加表格?
  2. chmod g+s 、chmod o+t 、chmod u+s:Linux高级权限管理
  3. 009_TreeSet对实现了Comparable接口的对象排序
  4. express不是内部或外部命令,也不是可运行的程序
  5. 互联网1分钟 | 0307 阿里巴巴与NBA升级中国合作伙伴关系;小米成立AIoT战略委员会...
  6. 云效飞流Flow项目版本管理的最佳实践
  7. 专转本计算机专业录取分数线,2018江苏专转本各专业分数线一览!
  8. exe打包工具哪个最好_一键分发工具哪个最好用?这款30万人都在用,很优秀!...
  9. Windows Phone本地数据库(SQLCE):13、更新数据(翻译)
  10. Docker第三方项目小结
  11. 凯撒密码 (Python实现)
  12. dateutils java_java中DateUtils时间工具类详解
  13. 服务器lsass状态代码c0000005,提示lsass.exe失败状态代码c0000005
  14. ios12安装描述文件失败问题
  15. spamhaus反垃圾邮件联盟黑名单PBL申诉详细步骤
  16. 近年图像翻译先进模型小结
  17. 一款 ≥28倍变焦的4K高清会议云台摄像机动态功能
  18. Orcal ETL 增量抽取--ORA_ROWSCN伪列
  19. SOPHP免费稳定的微信公众号开源框架
  20. 企业如何有效防止内部文件泄密风险...

热门文章

  1. 为虚构的游戏世界设计文字
  2. 【OCR】图像预处理-文字背景分离方法
  3. web前端学习路线图,WEB前端开发新手学习路线
  4. 静图怎么做成gif动画图片?三步教你在线生成gif图片
  5. Android 服务(Service)详解
  6. hub设备_小米生态链电源新品,除了50w快充,还支持HUB扩展
  7. 关于Global.asax文件不被执行的问题
  8. 一加系统android版本,一加良心了,三年前的老款手机也可以升级安卓9.0系统
  9. DECIPHER:疾病相关的CNV数据库
  10. swiper默认选中,swiper组件