记一次支付模块产品设计流程:支付模块怎么设计?

本文作者结合自己的实践经验来分享下支付模块产品的设计流程,enjoy~

背景

目前笔者负责的是一款平台类WEB端TO B产品,前期重心放在搭建平台核心功能,同时平台也是免费对客户开放。随着用户数增加,产品本身也考虑从会员分级开始,为不同等级的客户提供不同的服务及平台功能。因此需要引入支付模块,满足客户在线付款和线下银行转账的需求。

需求调研

通过和客户沟通,我们发现目前国内客户普遍比较支持银行转账、支付宝/微信、银行卡(借记卡、信用卡)付款,付款之后需要平台可以给开具发票或者支付凭证,他们能够拿去报销即可。基于这点,我决定首先支持国内用户的支付需求,设计了支付模块v1.0版本。

支付渠道我们选用了国内一家第三方支付厂商,可以提供同时接入支付宝、微信、银联的支持,费率大概是0.6%单笔交易。

需求梳理

WEB端的支付流程相较于APP端更为复杂,需要更多的交互细节考虑。从商品选择到订单确认,再到选择支付币种,选择支付渠道,如何给用户比较友好的用户体验尤为重要。

在产品设计阶段,我将不同等级的会员及所能提供的不同服务差异放在了一个页面,用户可以很清晰的看到每一等级的会员所能享受到的服务差别。这里建议不要设置过多的会员等级,增加用户的学习成本(我们设置了3个级别:免费会员、高级会员、专业会员,同时留下了联系方式可以直接联系我们提供定制化的服务)。

不同层级的会员一定要有足够吸引用户选购的功能点,或者说你要明确自己的客户分层。比如中小企业客户需要哪些功能?大企业用户需要哪些功能等。关于用户分级的问题,这里先不做赘述。

线上支付流程

当用户选择了适合的服务后,进入到确认订单页面。这里我省去了购物车的环节,转而将“选择时长、选择支付币种”等购物车流程,与订单详情合并。让用户做到所选即所得,缩短支付路径。同时可以非常直观的看到自己选择的服务,以及需要支付的金额。

线上支付下单流程

当用户下单后,我们在后台自动生成1笔“待支付”状态的订单,同时第三方接口会回传给我们一个URL。通过二维码生成工具,我们会在新弹出来的页面上将URL转成该笔订单所需要的二维码。(期间涉及到我们需要用第三方支付平台的公钥解密文件,当时开发就出现了密钥格式出错导致解密失败的问题,排查了半天原因最后大家也很尴尬😅)

与此同时,后端数据库会执行一个策略是线上支付的订单如果在30分钟内仍旧没有完成支付,我们会将订单强制关闭。前端页面也会通过计时器的方式,告知用户“您的支付已经超时,请重新发起”这类文案提示。这样避免的大量堆积无效的待支付订单,一定要对订单自动处理。

原支付页面会出现一个手动同步订单状态的弹窗,一旦出现用户完成了支付但是页面状态没有刷新的情况,可以允许用户手动刷新。当然,如果未完成支付的话点击,出现提示“支付尚未完成,请在新弹出的页面完成支付”。

当用户完成支付后,二维码页面会出现支付成功的弹窗,同时倒计时提醒用户将自动关闭。原有的会员页面刷新,提醒用户“会员已经开通啦,ENJOY!”后端订单状态变更为“支付成功”此时一次线上支付流程结束。

线下支付下单流程

TO B产品同样面临着线下支付的环节,此时的业务逻辑是,我们会给用户展示出来需要转账的银行信息,当用户完成转账后,在平台上提交“转账流水单号(或者转账编号)”,同时转账时备注所需要开通的服务及账号信息。我们收到相关业务通知邮件后,运营同学会与财务进行查账核实。如果收到款项则第一时间在后台为此用户开通账号,同时邮件提醒。如果未查收到款项,则会手动关闭此订单(线下订单也会自动关闭,时限设置在72小时)。

比较理想的方式是可以和财务系统对接,这块会在后续迭代继续优化。

管理后台

管理后台我们提供了一系列字段直观的展示给运营同学:例如下单时间、支付渠道、支付金额、支付状态查看,基本的查询功能等。同时允许运营铜同学进行订单状态的修改。后续会考虑加入Dashboard,批量操作等功能。

数据打点

对于支付这种重要流程,数据打点必不可少。需要监控到用户跳入“服务选择”页面前的来源页(也就是说哪个功能能触及到用户需求,他有强烈欲望想看看到底如何开通会员),页面访问量,每个按钮点击量,用户再哪个环节跳出率比较高等等,为后续支付环节优化提供数据支撑。

01APR更新:

昨天线上遇到了一次交易被拒的情况。发现问题后我们第一时间查实原因:因为产品的定价特殊性,我们的客单价相对于其他产品会高一些(平均5K/人)。一些用户如果选择一次购买6个月以上的套餐时,会触发第三方监控本身的封控策略(单笔超过2万人民币)导致交易被拒。

解决:我第一时间联系了第三方那边的技术同学并说明原因,表示需要将我们产品的最高单笔交易额度提升至5万元左右。对方表示支付宝和微信并没有做此限制,是他们自己的风控策略,可以为我们单独设置。但是这就需要如果一旦发现大额交易,一定要进行及时的人工审查。

复盘及后续需要处理的问题

1. 支付宝/微信官方渠道说支付相关的二维码失效时间为2小时,第三方支付渠道建议在2分钟内完成支付。如果真存在订单有效期内,二维码过期的问题。那么后续需要加入页面轮询,及时请求新的支付URL,替换掉失效的二维码;(目前发现京东的交互策略:二维码45秒过期,一旦页面定时器到期,则需要用户手动点击刷新按钮,自动请求一次新的二维码展示给用户)

2. 会员续费:后续会加入此功能;

3. 会员升级:需要制定升级策略,如何补差价,如何计算有效期,是否某些情况下不允许升级等等;

4. 折扣价:这块我们在后台设计时已经预留了字段,可以满足定额折扣、比例折扣、选择某些套餐时折扣、达到某个值后折扣等需求;

5. 页面交互:需要优化现有页面交互,让支付流程更加流畅;

6. 风控环节:因为目前订单量不大,因此采用人工审核的方式。后续会加入机器自动风控的策略,对于一些操作违规的账号第一时间作出限制;

7. 支付是业务逻辑比较复杂的模块,需要在需求评审前想清楚各个环节的逻辑及可能出现的问题,这样可以一定程度避免因为需求没有考虑清楚导致开发延期的问题。

欢迎互撩~~

 

作者:Jeffery(微信公众号:猫狗奇谈,MDJUN_1234),数据产品经理

本文由 @Jeffery 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自StockSnap.io,基于 CC0 协议

给作者打赏,鼓励TA抓紧创作!
6人打赏
评论
欢迎留言讨论~!
  1. 你好、我想问下我想着弄的一个项目涉及到买卖家付款、退款、提现的功能、请问第三方支付公司可以解决这些吗?

    回复
  2. 流程图第2、3步不明白,为什么要先选择支付方式再提交订单?按照流程图的意思如果用户支付失败岂不是要重新提交订单了?个人觉得应该是先提交订单然后再进行支付环节,楼主的出发点是什么?能否分享下~

    回复
    1. 楼主应该是省掉了放入购物车提交订单的环节,所以选择支付方式之后就默认是提交订单到商户了

      回复
  3. 有个问题请教下,支付完成一般 第一步是同步返回结果,返回的只是该操作完成,但是真正执行扣款与否还没执行。该操作一般返回结果为正常,第二步异步返回真正的扣款结果正常与否。在第一步与第二步之间,用户的订单页面应该显示什么状态呢?

    回复
    1. 建议给个倒计时页面,在异步拿回结果的时候给用户安抚。倒计时结束后自动跳转

      回复
    2. 异步这个可能根据情况的话有可能很久都不会回来,有些可能就直接中断掉了。倒计时时间该怎么定呢?

      回复
    3. 跳转到处理中界面,在APP缴费记录中查看最终付款结果。

      回复
    4. 我们原来做法就是跳转到订单界面了。如果失败,则会重新更改订单状态。

      回复
  4. PP支付费率4%,客户退款退货也需要手续费 :grin:

    回复
    1. paypal坑的要命,不同国际收费不同,收款的人想提现还得收钱

      回复
  5. 0.6的费率,还找第三方,为什么不直接接微信支付宝比较稳定。

    回复
    1. 微信是1%噢,而且我们是有特殊原因不能同一公司主体不能在申请账号所以综合考虑选择了第三方

      回复
    2. 我们找的第三方特别低,还会给我们返点,所以我们极力鼓励我们的商户开通在线支付。

      回复
    3. 可以推荐一下😁

      回复
  6. 貌似没看到差错处理环节咩

    回复
    1. 后面陆续补充😃

      回复
  7. 限额一般是银行控制,单笔单次限额每家银行都不一样,不同的第三方支付公司银行给的额度也有差异

    回复
  8. 流程二 ,支付超时以后 笔者写的是订单关闭,是不是可以考虑在订单列表加入未完成支付/支付超时的订单,并给到用户二次支付的选择(如果平台提供的是服务,而不是实物商品)?

    回复
    1. 可以的,后续如果做到订单号合并的话,这样对于用户的体验是更好的

      回复
  9. 1.我看你第二张流程图,标题是分为三块吗?用户,公司名,支付方式(比如支付宝或微信)
    2.如果是这样的话,我有疑问。在你的流程图中,某种支付方式返回URL,二维码付款页面是在公司的产品页面上生成的吗?还有定时器30分钟过期也是在你们产品上设置的吗?
    可我接触的支付,比如支付宝,是在新页面生成,并且,URL是excashier.alipay.com开头的

    回复
  10. 三方支付成功,后台回调失败,这种情况怎么处理?

    回复
    1. 第三方支付一般都会有主动给后台推状态的情况,我使用的这家了解到的是十分钟会推8次。

      当然一定可能出现支付成功但是后台回调失败的情况,这时候建议是给用户一个窗口提示他如果支付成功没有主动跳转,引导他点一下主动发起接口调用。

      回复
    2. 不一定会给,我们是自己去请求支付状态,支付后频繁请求

      回复
    3. 遇到掉单可以主动做订单查询对账

      回复
  11. 流程图很好,上次就是这样

    回复
  12. 如果是线下支付,后台对账的流程后面有设计吗

    回复
    1. 线下支付,后台只需要查账,款到没有到就行了,没有对账的。

      回复
  13. 受用 很详细

    回复
  14. 小白没做过支付 请问去找第三方支付厂商和直接去对接找微信支付宝银联 优势在哪?
    直接对接会有费率吗?

    回复
    1. 假如你提供的支付方式不仅限于一种,第三方支付会提供打包解决的方案,要比一个个的去申请对接来的快很多,对接都有费率,不同的交易额费率也不同

      回复
    2. 1. 费率这块,第三方支付一般来说可以做到和官方持平或者比官方低,因为相比较个人,他们就好像是支付宝 银联的“大客户“一样,会有返点

      2. 相对于你一家一家接入,找个第三方支付是最快捷的方式

      3. 提现一般是T 1,也有T 7, 15这种

      回复
    3. 第三方没有稳定性,一起崩就无法支付了

      回复