APP是如何实现自动续费的?

移动开发 移动应用
会员自动续费本质是委托扣款模式。只有用户完成签约,商户才可以对用户账户进行自动扣款,从而完成会员订单的支付操作。

01、目标

在APP内实现会员自动续费的功能

02、流程

2.1、会员自动续费授权

会员自动续费本质是委托扣款模式。只有用户完成签约,商户才可以对用户账户进行自动扣款,从而完成会员订单的支付操作。

用户在应用内通过微信或支付宝的SDK完成代扣签约,微信或支付宝在用户签约成功后将签约信息通过异步通知的方式通知给商户后台。商户后台需要维护用户的签约信息,签约ID为核心信息,在订单的代扣请求中用于验证授权。

2.2、会员到期后自动发起续费流程

系统在检测用户会员即将到期后,发起该用户自动续费流程。需要完成订单创建及订单支付环节(代扣),***在支付通知回调时为用户延迟会员时间。续费订单和普通订单主要区别在于是否调用委托代扣接口。

03、委托扣款授权

用户委托扣款授权是会员自动续费的前提,主要有支付中签约和纯签约两种模式。

3.1、支付中签约

支付的同时完成代扣协议的签约。只需要在原先的下单参数增加签约信息就可以支持签约功能,看上去非常适合我们会员自动续费的场景。在用户下单购买会员连续包月之后一并完成签约功能。

APP是如何实现自动续费的?

然而在实践的过程中发现有个问题忽略了,支付中签约默认是不开启签约的,需要用户手动开启委托代扣。我们是希望可以提高用户签约比例的,需要用户手动勾选这一步的操作成本真的太大了,不符合我们的预期。

3.2、仅签约

纯签约模式是商户先通过前端页面调用纯签约接口与用户完成代扣协议签约,当需要扣款时可调用申请扣款接口进行自动扣款。用户在签约后商户后台会接收到回调通知。

APP是如何实现自动续费的?

04、方案设计

调整后会员自动续费基本流程如下所示:

APP是如何实现自动续费的?

4.1、自动续费流程优化

使用仅签约接口,不使用支付中签约接口

仅签约接口可以限定用户必须签约后才可以购买连续包月商品。为了模拟用户签约并支付的体验,在用户签约成功后由系统发起自动续费流程。

4.2、如何避免会员签约后的重复续费

优化流程后,用户签约成功之后需要发起自动续费流程。这里需要确保不会对用户重复续费,这里可以考虑使用签约ID作为订单幂等元素。相同的签约ID只会发起一次自动续费。

4.3、如何避免会员到期后的重复续费

当会员到期后会发起自动续费流程,这里可以考虑使用会员到期时间戳作为订单幂等元素。若会员续费成功,会员到期时间戳会相应延长,不会再触发会员即将到期的逻辑。若会员续费失败,会员到期时间戳还是不变,也不会发起多个续费订单。

05、小结

在功能实现时换个思路可能会有不一样的发现。在这个功能上,使用仅签约接口可以模拟用户支付并签约的效果,符合我们的预期

责任编辑:未丽燕 来源: 程序员共成长
相关推荐

2021-05-20 10:26:17

企业业务自动化数字化转型信创

2009-06-12 11:14:39

2021-11-11 19:31:15

APP自动续费支付宝

2011-05-16 11:29:00

MySQL自动备份

2020-01-18 16:33:26

AI 数据人工智能

2021-09-17 12:50:10

MySQL数据库ACID

2024-11-05 15:02:41

2020-10-19 07:26:23

APP启动面试官

2022-05-16 08:22:37

零拷贝Netty

2010-05-31 14:32:44

SVN自动同步

2022-08-02 11:27:25

RabbitMQ消息路由

2022-07-18 23:49:19

区块链民主数据

2023-12-26 01:07:03

TCP拥塞控制

2019-10-08 11:10:18

React自动保存前端

2014-09-17 11:45:20

iOS编程App运作

2009-07-22 09:43:30

Scala类型

2023-04-11 10:52:19

IT自动化AI和RPA

2022-04-13 14:43:05

JVM同步锁Monitor 监视

2020-06-30 15:35:36

JavaSPI代码

2019-04-15 08:32:25

Spring Boot日志门面模式
点赞
收藏

51CTO技术栈公众号