android接入支付宝自动续费,APP是如何实现自动续费的?

2023-11-16

01目标

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

02流程

2.1、会员自动续费授权

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

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

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

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

03委托扣款授权

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

3.1、支付中签约

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

0aee1278e7c20947b9a4da1612b551f0.png

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

3.2、仅签约

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

2fb60c993bc1aa6bf81cf2d55068002e.png

04方案设计

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

290f21bc958ad728cf890d276102f12d.png

4.1、自动续费流程优化使用仅签约接口,不使用支付中签约接口

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

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

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

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

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

05小结

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android接入支付宝自动续费,APP是如何实现自动续费的? 的相关文章

  • 多元统计分析与R语言练习

    多元考试练习 文章目录 多元考试练习 一 多元线性回归模型 1 建立回归模型 2 逐步筛选 3 最优标准方程 影响最大 4 全局择优法 使用4 2 1版本的R 5 分析 6 由标准化偏回归系数可见 方差分析结果 二 判别分析 1 线性判别
  • python学习心得总结

    21年7月8上午是我第一次接触python这个语言 对于python这个语言之前了解的也并不是很多 也可以说几乎为零 因为我们之前的学习也不考python 所以也没想过去主动学习它 然而当我听老师讲解的时候 首先我发现python这个语言相
  • 使用VS2005下自带的MSSQL 2005 EXPRESS

    VS2005安装后自带一个试用版的SQL2005 EXPRESS版 方便了开发时使用数据库 不用再安装一个sql 2005 怪占用资源的 如何使用 安装后 在开始菜单里出现个sql的菜单组 但是找不到sql server的控制台 习惯用sq
  • 《机器学习实战》——决策树

    本章介绍的决策树算法为ID3算法 Iterative Dichotomiser 3 迭代二叉树3代 主要流程为 根据信息增益找到划分数据的最佳特征 判断划分后每个数据子集是否为同一分类 若是 返回分类结果 若不是 再次划分数据子集 递归 同
  • iOS. Xcode11 dylib封装成framework 图文教程

    Frameworks 制作 Xcode 版本 1 framework是什么 framework是一个层级的目录结构 将一系列可共享的资源 比如动态共享库 nib文件 图形文件 本地化相关文件 头文件 以及相关引用文档 包装成一个包 pack
  • 输入PM2.5的值,判断空气质量

    一个简单的if语句 a int input 请输入PM2 5的值 if 0 lt a lt 35 print 优 elif 35 lt a lt 75 print 良 elif 75 lt a lt 115 print 轻度污染 elif
  • Linux下的文件名空格处理

    转载原文 https blog csdn net michaelzhou224 article details 12708333 解决空格问题的几种方案 1 使用 来替代一个含有空格的文件以及目录 jorncess red black 可以
  • Android开发-Android项目结构

    文章目录 前言 一 Gradle 1 1什么是Gradle 1 2Gradle是一个构建工具 那么为什么要用构建工具 二 项目结构 三 app目录结构 四 res目录结构 总结 前言 Android工程的项目结构比较复杂 在进行Androi
  • AWD简单介绍和搭建AWD平台

    AWD简单介绍和搭建AWD平台 何为AWD 比赛中每个队伍维护多台服务器 服务器中存在多个漏洞 利用漏洞攻击其他队伍可以进行得分 修复漏洞可以避免被其他队伍攻击失分 1 一般分配Web服务器 服务器 多数为Linux 某处存在flag 一般
  • KNN数据分类算法的matlab仿真

    目录 1 算法概述 2 仿真效果 3 MATLAB仿真源码 1 算法概述 KNN的本质是通过距离判断待测样本和已知样本是否相似 待测样本找到与已知样本中与其距离最近的K个样本 对这k个样本 它们大多数属于哪一类别 就把待测样本归为哪一类别
  • [工程编写]cmakelist多版本python环境编写

    问题 最近在写一个工程的时候需要用到python3 但是由于引入了ROS相关的环境 导致希望使用python3的那部分代码一直默认使用ROS中的python2 这样环境就不对了 解决的方法 很顺理成章的想法是为需要python3的那部分代码
  • 注解&反射学习笔记

    1 注解的作用域及使用方式 表示我们的注解可以使用在那些地方 Target value ElementType METHOD ElementType TYPE 表示注解在什么地方有效 RESOUT 源码 lt CLASS 类 lt RUNT
  • IntelliJ Idea 常用快捷键 超实用!

    IntelliJ Idea 常用快捷键 列表 实战终极总结 1 自动代码 常用的有fori sout psvm Tab即可生成循环 System out main方法等boilerplate样板代码 例如要输入for User user u
  • Pytorch如何保存训练好的模型

    0 为什么要保存和加载模型 用数据对模型进行训练后得到了比较理想的模型 但在实际应用的时候不可能每次都先进行训练然后再使用 所以就得先将之前训练好的模型保存下来 然后在需要用到的时候加载一下直接使用 模型的本质是一堆用某种结构存储起来的参数
  • docker 迁移 /var/lib/docker(解决 /var/lib/docker 占用大 / 根目录空间占满问题)

    迁移docker工作目录 目的 为了解决 var lib docker 占用大 var 分区空间不够问题 说明 由于centos7 4系统 系统默认根目录下面为50G空间 docker默认数据目录在 var lib docker中 所以 会
  • 云孚快写:自动生成多级目录,一键生成万字长文

    1 产品简介 云孚快写是云孚科技自主研发的一款智能写作产品 基于大模型技术打造 针对长文写作场景深度优化 可根据文章标题一键生成目录 再根据目录一键生成正文 文章字数无上限 可极大提升用户的长文写作效率 云孚快写以哈工大与云孚科技联合研发的
  • Hive的常用HiveQL操作

    文章目录 Hive的常用HiveQL操作 1 HiveQL概述 2 HiveQL操作命令 2 1 数据定义 2 1 1 创建 修改和删除数据库 2 1 2 创建 修改和删除表 2 1 3 视图 索引创建 修改和删除 2 1 4 用户自定义函
  • 【如何处理信息收集时子域名爆破泛解析的问题】

    如何处理信息收集时子域名爆破泛解析的问题 子域名泛解析的成因 泛域名解析举例 子域名爆破中解决泛解析的方式 推荐工具 子域名泛解析的成因 在子域名解析中 每个子域名都会解析为一个特定的IP地址 只有被设置解析 用户才能正常进行访问 一旦用户
  • 一种解决ChatGPT报错“Sorry, you have been blocked“的方法

    ChatGPT突然不能用 尝试了网上说的重启V某N 打开隐私模式等方法都不管用 采用下面方式 解决 1 打开浏览器的 设置 2 找到语言设置 3 将首选语言改成英语 搞定

随机推荐

  • OpenStack主要功能和作用

    OpenStack主要组件和作用 openstack是一个开源的云计算管理平台 由几个重要的组件结合起来完成工作 openstack支持所有类型的云环境 实施简单可以大规模扩展丰富标准统一的云计算管理平台 openstack通过各种互补的服
  • C++之模板<template>

    目录 前言 模板 1 泛型编程 2 函数模板 2 1 函数模板的概念 2 2 函数模板的格式 2 3 函数模板的原理 2 4 函数模板的实例化 2 5 模板参数的匹配原则 3 类模板 3 1 类模板的概念 3 2 类模板的格式 3 3 类模
  • Android进程间通信(IPC)机制Binder介绍

    转载自 http blog csdn net luoshengyang article details 6618363 在Android系统中 每一个应用程序都是由一些Activity和Service组成的 这些Activity和Servi
  • 2012-03-25 17:31 以太网中的UDP编程:udp分包问题

    1 在进行UDP编程的时候 我们最容易想到的问题就是 一次发送多少bytes好 当然 这个没有唯一答案 相对于不同的系统 不同的要求 其得到的答案是不一样的 我这里仅对 像ICQ一类的发送聊天消息的情况作分析 对于其他情况 你或许也能得到一
  • ffmpeg常用编解码命令

    ffmpeg常用编解码命令 1 ffplay exe 1 播放MP4文件 指定标题以及播放分辨率 ffplay exe window title 视频监控 x 720 y 576 i 2019 09 19 14 21 20 Ch7 mp4
  • 数组17--机器人的运动范围

    数组17 机器人的运动范围 jz66 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 地上有一个m行和n列的方格 一个机器人从坐标0 0的格子开始移动 每一次只能向左 右 上 下四个方向移动一格 但是不能进入行坐标和列坐标的数
  • Qt重绘之update,repaint详解

    Qt里面的重绘和Windows编程里面的重绘差不多 但是Qt的重绘更有特色 更加智能 在讲之前 先说说paintEvent paintEvent 是一个虚函数槽 slot 子类可以对父类的paintEvent进行重写 当调用update r
  • 【C51自学笔记】数码管(静态与动态显示)+74HC138+点阵的动态显示

    数码管 数码管由7个发光二极管组成一个日字形 如果需要显示小数点 那么就再加一个点 就是8段数码管 数码管显示亮度高 响应速度快 分共阴和共阳两种形式 常用的有单个的和 联的 还有两联的和专门用来显示时间的 分类 共阴 共阳 编码问题 必须
  • sqli-labs(34)

    0x01构造闭合 同样 发现 被注释掉了 试探了一波发现什么信息都不会返回 正确错误的页面都一样 之前我们的方法就是将过滤函数添加的 给吃掉 而get型的方式我们是以url形式提交的 因此数据会通过URLencode 如何将方法用在post
  • 本地以图搜图识图工具——嗅图狗!(python3.6实现图像比对指路,代码git)

    1 写在前面 因为之前做完后 当毕业设计做的 为了尽量实用打了个exe 结果好多人反应问题 索性直接把代码 更新exe的链接都写个博客放在这里 这么晚才放出源码就是怕毕设查重 全部项目源码git及说明 https github com na
  • 获取outputstream大小_apache POI - 获取生成的excel文件的大小

    I m using Apache POI for generating excel file in my spring mvc application here is my spring action RequestMapping valu
  • 【微信小程序】scroll-view滚动

    1 竖向滚动 wxml文件
  • 在解决程序问题中遇到的比较有用的模块

    retry 用来判断程序是否异常 pbar tqdm a b c d for char in pbar time sleep 3 pbar set description Processing s char 安装 pip install r
  • 内网安全之:Kerberos 域用户提权漏洞(MS14-068;CVE-2014-6324)

    郑重声明 本笔记编写目的只用于安全知识提升 并与更多人共享安全知识 切勿使用笔记中的技术进行违法活动 利用笔记中的技术造成的后果与作者本人无关 倡导维护网络安全人人有责 共同维护网络文明和谐 Kerberos 域用户提权漏洞 MS14 06
  • rate-based 拥塞控制吞吐测量

    要点 一个方法无法精确刻画链路画像 就用多种方法组合刻画 设计一个 自定义平均 当前 Linux kernel TCP 实现的 TCP delivery rate 测量机制 BBR 有使用到 如下图 简略后可展示为下图 详见 net ipv
  • 入行十年,卷王也卷不动了,想对新人说...

    很多年前 当我还是一名学生的时候 有一次高我好几届已工作几年的师兄回校给我们做交流 听说他已经是 高级自动化测试工程师 在深圳某企业月入上万 那时候心里一阵崇拜 觉得 高级 开发该是多么厉害的存在 让我无数次憧憬着成为像他一样厉害且收入高的
  • css flex布局 —— 容器属性 flex

    flex flow属性是flex direction属性和flex wrap属性的简写形式 默认值为row nowrap box flex flow
  • Udacity Deep Learning课程作业(五)

    作业五是根据Text8的语料库训练一个语言模型word2vec 得到语料库中每个词的嵌入式表达 向量 Mikolov提出的word2vec包括skip gram和CBOW两种模型 前者是根据给定词预测其周围的词 后者是根据周围的词预测中间的
  • Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property ‘

    记一次踩坑 SpringBoot2 2 5 mybatis plus 启动出现异常 org springframework beans factory BeanCreationException Error creating bean wi
  • android接入支付宝自动续费,APP是如何实现自动续费的?

    01目标 在APP内实现会员自动续费的功能 02流程 2 1 会员自动续费授权 会员自动续费本质是委托扣款模式 只有用户完成签约 商户才可以对用户账户进行自动扣款 从而完成会员订单的支付操作 用户在应用内通过微信或支付宝的SDK完成代扣签约