互联网产品接入支付功能如何测试?

互联网产品接入支付功能如何测试?

现在有不少测试朋友做的项目中,可能也会涉及到支付相关的功能。比如:做商城的,做游戏的以及其他在线交易的网站、APP等。如果支付出了问题,或者用户拿少的钱通过篡改请求数据购买大金额的商品,如果是实物的话,发货前还有可能被发现。如果是虚拟商品话费、游戏币等就有可能造成损失。

  所以,不管是实物也好,虚拟商品也好,涉及到支付功能时,大家在测试的过程中一定要重视,否则,会造成很大损失。之前可能大家也都看到过或者听过一个bug损失4.6亿美金的惨痛教训或者身边也有发生过其他因为支付功能的bug导致直接损失的案例。

  给大家举个真实的案例:比如使用支付宝购买虚拟商品,往支付宝跳转时,篡改了小的金额,结果购买虚拟商品成功了。(原本10元的商品,0.01元就搞定了)。多么可怕的一个bug啊,当然这个问题可能对于一个做过支付有过经验的测试朋友来说,可能会想:哎呀,这个问题都发现不了,还做什么测试?是的,问题是很简单,对于一个刚入职场的测试朋友或者没有支付相关经验的测试朋友来说,很有可能会忽略。

  那么,问题来了,对于支付模块的相关测试,我们应该如何进行呢?比如,针对游戏来说,使用第三方支付往游戏充值游戏币功能,看起来是不是很简单,大家主要思考下以下内容:

  1、支付都是与第三方支付(支付宝、微信、财付通、QQ钱包、短信支付等)进行对接,那么,是否了解了第三方接口有哪些?是否都能清楚我们的产品与第三方是如何交互的?是否能画出流程图?

  2、异常场景有哪些?

  3、有哪些风险,如何规避?

  第三方支付的流程,与商户的对接方式基本相似,大同小异。(题外推荐:如下流程图使用的chrome插件:Gliffy,个人感觉比较好用。)

  支付流程:

  退款流程:

  查询流程:

  先看下流程图,是否对流程图有些了解,不仅仅是做支付功能相关测试才去搞清楚其中的流程,做其他的测试一样也要搞清楚流程,只有搞清楚流程,才能更好的评估其中的风险,才能有利于测试用例的设计。当然流程图中只是提到了商户与第三方是如何交互的,同样商户内部处理的流程也要有所了解及数据怎么存储的,涉及到哪些DB也要清楚。

  流程清楚之后,我们再来看看其中会涉及到哪些接口?这个支付流程图里面就涉及到了第三方支付接口:

  · 下单接口:商户提交下单请求到第三方支付接口,第三方支付收单成功后返回下单成功结果给到商户系统。(下单接口的最终处理结果分为下单成功和下单失败,若未收到明确结果可调用单笔订单查询接口查询结果。)

  · 支付接口:调用该接口时指定支付参数,完成买家账户向商户账户的支付,采用页面跳转交互模式和后台通知交互模式。(结果分为两路返回:一路为前台在return_url页面跳转显示支付结果;一路为后台在notify_url收到支付结果通知后进行响应。)

  · 退款接口:调用第三方支付的支付请求接口返回付款成功后,在需要做退款处理时调用退款请求接口发起退款处理。(退款接口的最终处理结果分为退款成功和退款失败,若未收到明确结果可调用退款查询接口查询结果。)

  · 单笔订单查询接口:根据订单号查询单笔订单信息和状态。

  · 退款订单查询接口:调用第三方支付的退款接口返回后,在需要查询退款请求状态可调用退款订单查询接口查询退款订单的状态和订单信息。

  那么针对第三方的接口,我们大致也有所了解了,接下来针对测试过程中涉及到主要的测试点整理如下:

  测试过程中需要注意的主要测试点及异常场景:

  · 首先要保证接口都能正常调用;

  · 生成一笔订单,支付完成后,同步或异步重复回调,只有一次有效;

  · 生成一笔订单,复制订单号和金额,再次生成一笔订单,用fiddler设置断点,用第一笔已完成的订单号和订单金额去替换现有的订单号和金额,无法完成支付;

  · 生成一笔订单,跳转到第三方时修改金额,无法到账,或者如果是游戏充值游戏币的话,到账为篡改后的金额对应的游戏币;

  · 异步通知屏蔽,同步有效,进行支付,同步能够正常到账;

  · 同步设置无效,异步有效,进行支付,异步能够正常到账;

  · 同步异步都设置无效,在第三方支付完成后,在重发机制时间范围内,设置异步有效,到下次通知时间点时,能够正常通知到账(补单机制的验证,如果商户收到第三方支付成功的通知后,要告知第三方支付收到了成功的通知,如果第三方支付收到商户应答不是ok或超时,第三方支付就会认为通知失败,会在规定的时间内持续调用notify_url,一般有时间或次数的限制);

  · 针对支付订单在数据库中存储是否完整和正确进行校验(比如:第三方订单号--方便与第三方对账和问题排查、订单金额、订单状态等);

  · 如果是用户购买实物商品,用户发起退货,要保证退货流程正常,资金能正常返还,要考虑下并发情况的验证以确保安全性;

  · 如果是用户购买虚拟商品,比如话费、油卡之类的商品,只有在发货失败的时候才能发起退货,注意验证;

  遇到过的坑:

  · 用户购买100元游戏币时,前往第三方支付跳转进行金额的篡改由100元改成0.01元,结果就拿了0.01元充值了100元的游戏币。对订单金额没有做校验导致这样的后果,损失比较大。大家在测试的过程中一定要注意对服务端进行校验,支付时数据的篡改一定要有校验。

  · 当同步、异步通知都存在的情况的,异步通知(第三方支付成功后台通知),没有到账,导致部分用户充值不到账,引起客诉。当同步、异步并存的时候,一定要分别对同步和异步进行检验,确保都能正常到账。

  我们所做的绝大多少的互联网产品都会涉及到第三方支付,所以支付功能必然是重要的,作为测试互联网产品的一员,我们必须要做好支付的安全性。

  那么,如何规避支付风险?

  为了进一步的加强支付功能的安全,也可以适当的增加一些监控机制,比如:订单与第三方订单进行对比,可以使用跑批完成,当我们完成支付的订单从数据库中查出来与通过第三方订单查询接口查询出来的同一个订单金额有异常时,进行报警通知能够及时发现处理,甚至当有异常情况进行创建订单的终止,从而把损失降到最低。

注明:以上内容摘自网络

时间: 2024-09-27 21:57:11

互联网产品接入支付功能如何测试?的相关文章

互联网产品接入支付功能如何测试?__(支付功能网上搜集资料)

那么,问题来了,对于支付模块的相关测试,我们应该如何进行呢?比如,针对游戏来说,使用第三方支付往游戏充值游戏币功能,看起来是不是很简单,大家主要思考下以下内容: 1.支付都是与第三方支付(支付宝.微信.财付通.QQ钱包.短信支付等)进行对接,那么,是否了解了第三方接口有哪些?是否都能清楚我们的产品与第三方是如何交互的?是否能画出流程图? 2.异常场景有哪些? 3.有哪些风险,如何规避? 第三方支付的流程,与商户的对接方式基本相似,大同小异.(题外推荐:如下流程图使用的chrome插件:Gliff

Android 个人开发者接入支付功能

如果是公司的产品,那么也就不存在问题了,Ping++对所有支付做了一个集成.如果开发者个人想接入支付系统,这个申请过程几乎是不大可能的.而Bmob为广大开发人员提供的统一.正规的收费手段,让没有企业认证的个人开发者,也能通过支付宝和微信向用户收费.但是有一个缺点,支持的渠道少,只支持支付宝和微信.此外,微信支付还要安装一个插件,用户体验及其不好. 官方的文档在这里Android支付SDK 接入Bomb也很简单,首先下载BmobPay_Sdk_V1.0.2a.zip 将Lib中的四个jar文件拷到

互联网产品经理职能与职责

由于每次都会被人问,"产品经理是什么岗位 ?","产品经理都做什么东西?"之类的问题.于是,我决定写一篇大体说得过去的,关于互联网产品人的职能与职责概述.如果有些的不对的或者需要补充的,欢迎来"搞". 首先我们先列一个提纲吧,由浅入深. 1. 产品经理在公司中是什么岗位 2. 产品经理在项目中担任什么角色 3. 产品经理都需要储备哪些专业知识 4. 产品经理需要把控什么 5. 产品经理作业流程是什么 列出这么浅显易懂的问题之后,再来一一作答就感觉

微信开发——申请微信支付功能及支付环境设置

很久没写博客文章了,最近一直负责微信开发实现微信支付功能,所以在这方面有一定的了解. 在开始实现微信支付功能的前提是公众号已认证的并已通过审核的服务号,具体微信支付申请人的流程没有比官 方公布的流程更详细的了,附上链接https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/faq_tmpl,开通 并与微信工作人员沟通微信支付相关授权路径之后,在微信后台可以看到微信支付的相关功能 在支付申请选择下可以查看商户的基本资料以及我们开发支付功

带有支付功能的产品如何进行测试

软件测试人员在进行测试的时候,根据测试项目或者测试对象的不同,会采用不同的方式方法来进行测试,那么,带有支付功能的产品该如何测试呢?在测试过程中又应该注意些什么?        财务人员有句老话叫:财务无小事.因为,首先,任何涉及到财务的问题,不论金额有多么的小,它在性质上也是严重事件:其次,在各种金融支付功能已深入老百姓生活的方方面面的今天,一个程序中,哪怕仅有一个小小的支付问题,那么,最后引起的也可能是涉及成百上千乃至上亿元金额和大量用户的大问题.        因此,专业的测试人员,在对待

互联网产品上线前,做些什么——产品、开发、测试的视角

这阵子,经历了一个做产品以来速度最快的一个项目,太多第一次遇到的情况,从中秋节前到现在,除去校招出去的5天,一直都在赶项目.即使是校招,也是以项目为主题进行群面和创意PK. 每天早上9点多到公司,晚上12点后收工,甚至有到凌晨4点才下班,早上7点多起床,中午还不休息. 赶项目的节奏,大抵如此吧.这不是一种健康的状态,会逐步调整过来. 先说一点特别重要的事情: 无论进度多赶的项目,发布前,请一定内测. 无论进度多赶的项目,发布前,请一定内测. 无论进度多赶的项目,发布前,请一定内测. 这段时间,真

手机网站和App如何接入支付宝简易版支付功能PHP版

接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台  2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的接口权限 3.添加功能:一般有扫码付,电脑网站支付,手机网站支付,APP支付.看你的需求什么.移动应用选择APP支付或者是扫码付,而网页应用分为移动端和PC端. 4.商户签约 需要提交相关的资料 一般是要求你提供你的网站地址和APP包等要求 按照支付宝要求来签约相关的支付功能 5.配置你的应用开发配

iOS接入支付宝(支付功能)

前几天做好的支付宝,进行一下总结  只是实现了支付功能. 1. 先说需要导入的东西 上面的那俩是因为我想偷懒  就直接倒的他的了,注意的是路径问题 自己集成支付宝SDK时的错误 这个是路径错误, 解决办法:在自己工程文件夹里建一个文件夹,随便起什么名字.把支付宝所需要的东西都拷贝进去,然后add files,然后找到TARGETS-Build Settings,在里面找到如下位置 把自己新建的文件夹拖动到这个框里面,再次运行就OK了.(当初困扰了我好久...) 2. 需要哪些自己的东西 因为我是

互联网产品消息推送设计策略(转)

在移动互联时代,消息推送越来越受到各个APP的重视,本文就以互金产品为例阐述消息推送的几个类别以及应用的场景方式.运营策略,希望对你有益. 在之前一文中,笔者概括性的介绍了通知功能是互金理财平台的一个基础但重要的功能.消息推送能将个人账户相关.平台相关内容送达终端用户,是为互联网产品一个重要的功能.在移动互联网时代,移动客户端出现寡头效应,消息推送愈发重要,而在互金产品中尤甚. 因此本文将开始重点阐述互金产品消息推送的类别.场景.方式和前后端推送设计策略以及运营策略. 1 定义 本文所指的"互金