前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【商城应用】扫码支付体系设计

【商城应用】扫码支付体系设计

作者头像
林老师带你学编程
发布2019-05-25 23:53:20
1.8K0
发布2019-05-25 23:53:20
举报
文章被收录于专栏:强仔仔强仔仔

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434180

大的商城一般会有线下门店加盟,例如B2B平台,在平台采购,然后将采购的数据同步到线下门店进行买卖。所以线下门店一般都会有门店pos系统,采用pos进行扫码支付,但是今天跟大家说的不是pos门店的扫码支付,而是采用app二维码收款功能。

扫码支付方案

方案一:一种比较常见的方案是,我们app上面生成一个收款二维码,然后用户采用微信或者支付宝进行扫码支付。但是这种方式弊端是:系统没办法获取买家的订单信息,比如我们想每完成一笔交易,就需要给买家发放对应积分,那用这种模式就很难做到了,而且这种扫码支付也会涉及到手续费的问题。

方案二:付款方和收款方都必须安装平台app,简单的说就是付款用户和收款用户,都必须是同一个app。这样做的好处是:所有的请求全部走的是系统本地,每一个步骤都是可控的,可以获取到任何信息。今天给大家介绍的,也是这种扫码支付模式的。

收款二维码生成过程:

收款二维码分成两种:动态二维码和静态二维码。动态二维码的意思是:收款方设置一个固定收款金额,用户一扫只能支付固定的金额。静态二维码的意思是:收款方没有指定金额,扫款方可以输入任意的金额。

收款二维码本质其实就是一个链接,静态二维码只有收款用户的id,动态二维码会有收款用户id和收款金额的信息。这边大家可能也看到了,如果付款方扫码的时候,下们会出现支付中的状态,付款完毕之后就显示支付成功,实现这种方式有两种方法。

状态推送设计:

状态推送有两种模式:推送模式和轮询模式。

推送模式:采用激光推送的模式,当有买家进行扫码的时候,推送一条支付中的消息,扫码成功再推送一条支付成功的记录,收款方收到消息的时候显示对应的状态就可以了。采用这种模式的好处是:消息及时性,不损耗性能,坏处就是推送存在遗失的情况,有可能收不到消息。

轮询模式:收款方每间隔一段时间,就去服务器请求获取状态数据。采用这种模式好处是:消息不会遗漏,只要控制好间隔时间,也可以做到基本实时获取,缺点也很明显,会影响服务性能。如果同时多个商家一起收付款的时候,就是造成高并发请求。

优点

缺点

推送模式

1.消息及时性,马上推送即可马上获取。 2.因为采用的是第三方推送服务,所以不损耗任何服务器性能。

1.推送存在遗失的情况,有可能收不到推送消息。 2.取决于第三方推送的性能,可靠性不高。

轮询模式

消息不会遗漏,只要控制好间隔时间,也可以做到基本实时获取。

会影响微服务的性能,如果同时多个商家一起收付款的时候,就是造成高并发请求。

扫码支付过程:

用户扫码支付相关而已会比较简单,主要是app那边进行二维码识别。首先进行二维码识别,如果是静态二维码就需要用户手动输入金额,如果是动态二维码,就直接显示需要支付的金额即可。然后用户点击对应的付款方式,输入支付密码就支付成功了。

扫码数据流动过程:

扫码成功之后会跳转到一个付款页面,在用户点击付款的时候会生成一个扫码付款的订单,这个订单是未支付状态,用户选择对应的付款方式支付完成之后,这个扫码订单状态就会变成付款成功,扫码支付的流程也就完成了。这边需要做一点限制,如果是同一个页面反复点击支付按钮,不应该产生多个扫码订单。上面说到的收款状态,其实就是根据支付状态来的。

扫码支付流程图:

技术注意点:

  • 扫码支付的时候,一定要查询一下用户当前余额是否大于付款金额,不满足则返回余额不足。
  • 如果app没有做账户在线个数限制,一定需要做分布式锁,来限制同一时刻只能有一个人支付。
  • 出于安全考虑,支付的手机验证码要设置时效性,比如超过一分钟后验证码失效,必须重新获取。
  • 需要做一个无效页面,有可能扫码方会扫一个非收款码的二维码,所以要做好意外处理。
  • 支付失败也要做错误标识,支付状态显示为支付失败。
  • 每次进入二维码收款页面的时候,获取当前之后的支付状态。
  • 扫码支付金额前端需要做一定的校验,比如不能大于某个值且不能小于某一个值。
  • 扫码需要做行为校验,校验是否是我们系统app发起的扫码支付。

总结:

​今天介绍的这种方式,最大的局限性就是:买家必须安装平台app才可以。这种方式的好处是:支付可控,每一个过程我们都可以获取到对应的数据,还可以进行app引流。缺点也显而易见:支付需要下载app,一定程度上面会造成用户流失或者减少客单量。所以在设计方案的时候一定要充分考虑方案的优缺点,最后选取最合适的方案。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云支付
云支付(Cloud Pay,CPay)为您提供开放、可靠的聚合收款技术服务和商户管理功能。云支付支持刷卡支付、扫码支付、一码多付多种支付方式。服务商也可使用云支付提供的 SDK 和 HTTPS 接口,将云支付集成进自己的系统中,为商户提供的个性化解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档