【业务】支付总结和GP支付功能测试

背景

我个人支付相关内容测试很少(不是你想接什么业务就能接到,都是各方利益博弈以后结果),有些内容也是听听技术会议,看看其他qa的xmind通过只言片语里面做个总结。

支付类型

直连支付

概述:提供支付接口的渠道提供的支付方式归类为直连支付,支付页面由我方完成设计和开发;我方可以管理用户的账单地址和历史卡,用户在付款的时候可以点击历史卡和历史账单地址完成付款,灵活性高体验好;上报风控可以提供用户卡信息。

渠道:ingenico,stripe。

ingenico直连支付页面:

跳转支付

概述:不提供支付接口的渠道提供的支付方式归类为跳转支付,支付页面由渠道方完成设计和开发,灵活性低体验相对较差。上报风控无法提供用户卡信息。

渠道:钱海,coda等

点卡支付(代金劵)

概述:支持点卡或者代金劵付款的渠道提供的支付方式归类为点卡支付。渠道方不提供支付接口,点卡支付类似于跳转支付,支付页面由渠道方提供,不同之处在于点卡支付在下单的时候,不确定金额和金币,用户在渠道方页面选择点数或者输入代金劵序列号,验单的时候校正金额和金币。

渠道:mintroute等

mintroute代金劵支付:

app支付

概述:应用内支付,由商店提供的支付方式,通过用户商店账户里绑定的银行卡完成扣款,渠道方不提供支付接口。上报风控无法提供用户卡信息。

渠道:Apple支付,谷歌支付,华为支付,三星支付。

表业务设计

对于功能测试和业务设计来说都是重点,也方便我们理解支付流程。

业务表:

cl_orderxxes:业务订单表,uid/code/money/gmoney/product_id/gold等

cl_orderxx_payloads:业务订单扩展表,存储与各微服务的交互数据,币种/档位信息/优惠卷信息等

cl_order_refund:业务退款表,记录退款以及退款追回的数据

底层微服务表:

cl_sorder_20xx(无金币数据,掉单验单依赖)

cl_pay_20xx(支付流水,状态只能到0)

cl_refund(退款记录,状态<0)

cl_sorder_notice_20xx(异步通知业务端,掉单通知依赖)

cl_channel_webhook_20xx(渠道方异步通知我们)

支付配置表:

把各渠道档位固定信息存储在数据库中,不硬编码。

cl_gear(档位信息)

cl_gear_group(档位组)

cl_gear_rate(汇率)

cl_payment_channel(渠道)

服务功能

payment(支付中心)

支付服务主要负责与渠道方的交互,包括金额/币种的校验,支付/订阅掉单修复,订阅续订,异步通知管理,用户常用渠道管理,卡信息管理等。

paycontroller(支付控制中心)

支付控制中心主要负责权限控制/请求转化/操作日志,业务端的所有请求都需要经过paycontroller才能到达payment。

finance

金融微服务在支付流程中扮演的角色是增加和扣减用户的金币。

seller

售货台微服务主要负责管理渠道/档位/汇率等数据,为用户提供档位列表。

risk(风控服务)

风控服务接收业务端上报的支付事件,对用户的支付行为进行拦截和控制。

PHP服务端

业务端主要负责协调各个微服务,控制并完成支付流程。

支付掉单修复

概述:扫描cl_sorder_20xx表获取指定时间内的未完成订单,根据payment_id调用相应渠道的验单方法,完成验单后,给业务端发送支付通知,触发业务端验单流程和支付完成事件;掉单修复根据订单状态划分两个任务:30分钟任务(status=1)和10分钟任务(status>1)。

支付退款

概述:用户向银行或者渠道方发起拒付申请(退款)申请,通过后渠道方会向payment发送支付拒付(退款)通知,payment在cl_refund表生成退款记录后,向PHP业务端发出退款通知,业务端追回金币并上报风控。

支付对账

概述:支付对账可以在支付流程之外发现掉单和汇率亏损情况。日对账获取双方最近一天内的账单数据,月对账获取双方最近一个月的账单数据,对比双方的账单差异,生成对账报告和对账柱状图,来反映掉单情况和汇率亏损情况。

支付报警

概述:通过分析不同渠道的支付数据,总结分布规律,通过支付转化率曲线图和支付阀值报警,定位支付故障,评估支付渠道方的服务质量。

ps:这个主要考验阈值设定,太高发现不了问题,太低报警太多就不跟进了。

接入一个三方支付渠道流程

花钱和时间总结经验流程

1.了解一下要接入的渠道,如果对方是刚起步,或者未完全开发完毕,建议停止接入。

2.拿到对方的技术文档后,研究一下对方的接入流程是否存在刷单风险(比如支付的参数能否篡改,跳转链接的数据修改后会不会错发金币,支付凭证是否可以多次付款等)。

3.对方的数据与我们的订单能否关联,没有的话怎么防止被刷单。

4.对方的webhook有没有签名,没有的话要尽量做防刷处理。

5.验单的时候,金额/币种/档位ID有的话都要验证,没有的话可以考虑不接了。

6.验单上锁,阻塞锁+乐观锁。

7.掉单修复。

8.如果对方提供服务端对账服务,要接入对账服务。

GooglePlay支付功能测试

我测试客户端逻辑重不多,直接xmind吧测试点,重点还是跟业务交叉点上。支付只是手段,业务才是核心。

GP支付流程

拉取档位->下单->支付成功 ->验单->加金币-> 退款

在进行支付之前, 会判断是否有未消耗订单,如果有未消耗的订单, 点击同一个档位, 需要先修复未消耗的订单, 如果是不同的档位, 则会走正常支付流程; 点击客户端地步的修复, 客户端会把GP sdk 中未消耗的订单,挨个执行1遍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流

10月24日&#xff0c;全球数智化领域的目光齐聚于中国石家庄正定&#xff0c;一场关于数字经济未来的盛会—2024中国国际数字经济博览会在此拉开帷幕。 云边端算力底座的领航者&#xff0c;图为科技携其明星产品惊艳亮相&#xff0c;期待与您共赴一场数智化的非凡之旅&#xff…

ESP32 gptimer通用定时器初始化报错:assert failed: timer_ll_set_clock_prescale

背景&#xff1a;IDF版本V5.1.2 &#xff0c;配置ESP32 通用定时器&#xff0c;实现100HZ&#xff0c;占空比50% 的PWM波形。 根据乐鑫官方的IDF指导文档设置内部计数器的分辨率&#xff0c;计数器每滴答一次相当于 1 / resolution_hz 秒。 &#xff08;ESP-IDF编程指导文档&a…

【Python】强大的正则表达式工具:re模块详解与应用

强大的正则表达式工具&#xff1a;re模块详解与应用 在编程和数据处理中&#xff0c;字符串的处理是不可避免的一项任务。无论是从文本中提取信息、验证数据格式&#xff0c;还是进行复杂的替换操作&#xff0c;正则表达式&#xff08;Regular Expression&#xff0c;简称Rege…

IP协议知识点总结

IP协议主要分为三个 1. 地址管理 每个网络上的设备, 要能分配一个唯一的地址 2. 路由选择 小A 给小B 发消息, 具体应该走什么路线 3. 地址管理 IP 地址. 本质上是一个 32 位的整数 通常将, 32 位的整数使用点分十进制来表示, 如 192.168.1.1 一共可以表示 42 亿 9 千万个地址…

动态规划 之 路径问题 算法专题

一. 不同路径 不同路径 状态表示 dp[i][j] 表示走到[i][j]位置, 有几种不同的路径状态转移方程 以离[i][j] 最近的位置划分问题 1.从[i - 1][j] 到[i][j], 到[i][j]位置的不同路径数 就是和 到[i - 1][j]位置的不同路径数相同, 即dp[i][j] dp[i - 1][j] 2.从[i][j - 1] 到[i…

浮动路由:实现出口线路的负载均衡冗余备份。

浮动路由 Tip&#xff1a;浮动路由指在多条默认路由基础上加入优先级参数&#xff0c;实现出口线路冗余备份。 ip routing-table //查看路由表命令 路由优先级参数&#xff1a;越小越优 本次实验测试两条默认路由&#xff0c;其中一条默认路由添加优先级参数&#xff0c;设置…

补一下 二维 平面直角坐标系 到三维

上一篇帖子写到 二维的平面直角坐标系&#xff0c;是那样的&#xff0c;这次补充一下三维的。首先需要&#xff0c;安装一个包&#xff0c;如下&#xff1a; 然后&#xff0c;把参数输入&#xff0c;输入这个坐标系的参数&#xff0c;如下&#xff1a; 这样就可以输出如下的三…

CertiK创始人顾荣辉出席新加坡商业与慈善论坛,发表主旨演讲并主持专题讨论

2024年11月5日 —— 美国哥伦比亚大学教授、CertiK联合创始人、MAS国际技术顾问顾荣辉受邀参加2024年度新加坡商业与慈善论坛&#xff08;Business & Philanthropy Leadership Forum Singapore&#xff0c;简称B&P Forum&#xff09;&#xff0c;期间发表主旨演讲并主持…

基于STM32的智能物联网家用机器人设计

引言 本项目基于STM32微控制器设计了一个智能物联网家用机器人&#xff0c;通过集成多个传感器模块、摄像头以及Wi-Fi模块&#xff0c;实现远程控制、家庭监控和环境数据采集等功能。该系统可以监测家中的环境状况&#xff0c;如温湿度、烟雾浓度等&#xff0c;还可以作为安全…

jenkins流水线pipeline

创建项目 1. 新建item 并选择pipeline 1.1 和普通项目配置的区别 普通项目配置目录&#xff1a; pipeline项目目录&#xff1a; pipeline的两种语法 声明式语法 2. 配置 2.1 流水线配置 2.2 选择声明式 声明式需要添加一个名为Jenkinsfile的文件实现流水线 Jenkinsfile的…

【CSS】标准怪异盒模型

概念 CSS 盒模型本质上是一个盒子&#xff0c;盒子包裹着HTML 元素&#xff0c;盒子由四个属性组成&#xff0c;从内到外分别是&#xff1a;content 内容、padding 内填充、border 边框、外边距 margin 盒模型的分类 W3C 盒子模型(标准盒模型) IE 盒子模型(怪异盒模型) 两种…

系统上云-流量分析和链路分析

优质博文&#xff1a;IT-BLOG-CN 一、流量分析 【1】流量组成&#xff1a; 按协议划分&#xff0c;流量链路可分为HTTP、SOTP、QUIC三类。 HTTPSOTPQUIC场景所有HTTP请求&#xff0c;无固定场景国内外APP等海外APP端链路选择DNS/CDN(当前特指Akamai)APP端保底IP列表/动态IP下…

linux操作系统的开机引导

一、linux操作系统的开机引导的过程 1、开机自检 根据bios的设置&#xff0c;对cpu&#xff0c;内存&#xff0c;显卡&#xff0c;键盘等设备进行初步检测&#xff0c;如果以上检测设备工作正常&#xff0c;系统会把控制权移交到硬盘 2、MBR引导/GPR引导 分区之后&#xff…

【c++丨STL】vector的使用

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 vector简要介绍 一、vector的默认成员函数 构造函数(constructor) 析构函数(destructor) 赋值运算符重载operator 二、vector的容量接口…

[前端] 为网站侧边栏添加搜索引擎模块

前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块&#xff0c;可以引导用户帮助本站SEO优化&#xff08;让用户可以通过点击搜索按钮完成一次对本人网站的搜索&#xff0c;从而实现对网站的搜索引擎优化&#xff09;。 最开始&#xff0c;我只是想实现一个简单的百度搜索…

Git - 两种方式撤销已提交到远端仓库的记录并删除提交记录

文章目录 命令行方式附 命令行方式 确定要撤销的提交记录 首先&#xff0c;使用以下命令查看提交历史&#xff1a; git log找到想撤销的提交记录的哈希值&#xff08;SHA&#xff09; &#xff0c;比如9c9c98d6f7f28c41d971f8efd51ed31f9720792c 撤销提交记录 根据需求选择以下…

【命令执行waf绕过】

一、绕过空格 二、绕过黑名单 三、绕过长度限制 四、练习 发现了两个文件&#xff0c;cat读取&#xff0c;但是被过滤了&#xff1a; 用 I F S IFS IFS绕过读出index的源码&#xff0c;发现过滤了很多东西&#xff0c;黑名单过滤&#xff1a; 字符串拼接绕过&#xff1a; …

Beans模块之工厂模块注解模块AnnotatedGenericBeanDefinition

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

【毫米波雷达(三)】汽车控制器启动流程——BootLoader

汽车控制器启动流程——BootLoader 一、什么是Bootloader(BT)&#xff1f;二、FBL、PBL、SBL、ESS的区别三、MCU的 A/B分区的实现 一、什么是Bootloader(BT)&#xff1f; BT就是一段程序&#xff0c;一段引导程序。它包含了启动代码、中断、主程序等。 雷达启动需要由BT跳转到…

原生鸿蒙的竞争力到底如何?

目录 1. 崛起与挑战2. 安全机制3. 自动化检测前移4. 深入探讨开发者服务优势 1. 崛起与挑战 长期以来&#xff0c;移动操作系统市场被IOS和安卓所垄断&#xff0c;一直都难以推出完整的自主系统&#xff0c;面临诸多挑战&#xff0c;如推广困难、应用适配难度大&#xff0c;以及…