本篇文章给大家谈谈做支付接口测试,以及做支付接口测试怎么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享做支付接口测试的知识,其中也会对做支付接口测试怎么做进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
支付方式测试点
支付测试
引言:如今,随着非现金支付手段的不断推广和应用,“非现金社会”正在形成。非现金支付已成为日常生活中不可或缺的伙伴。那么,对于互联网产品来说,支付也是涉及到公司收入的一个重大环节。对于我们测试人员,支付测试也是测试中的重要一环。下面就结合工作中遇到的问题,来给大家介绍一下常用的支付测试。
★ 支付分类 ★
首先,根据不同维度,我们可以把支付分为不同的种类。如下图所示:
其次,一般来讲,线上支付分为两种消费模式。一种是直接支付金额,如淘宝,京东等购物网站,或是360云盘,视频会员等这种会员服务;另一种是充值购买金豆之类的虚拟币,在网站中使用虚拟币进行消费,比如游戏平台、花椒等产品。
★ 测试方法 ★
功能测试:
通过将边界值分析、等价类划分、错误推测、因果图等各种测试方法进行结合,整理出尽可能全面的测试案例,对支付功能及其相关功能进行测试,以确保整个支付流程以及涉及到支付流程的其他流程在任何情况下都能正常进行。
接口测试:
明确整个支付流程所需要调用的接口,分清楚商家和第三方支付平台的接口以及参数和请求方式。包括对接口特定参数的加密,使用异常订单号模拟支付,对服务端的校验等等。
安全测试:
支付涉及到金额方面,所以要考虑安全测试方面。支付请求的伪造、金额的恶意篡改、恶意模拟第三方接口来调用商家接口等等。这都是我们需要考虑到的问题。
★ 支付流程 ★
常见的支付流程如下图所示:
★ 测试点 ★
支付流程测试点
▼
(比如会员服务产品,购买后会员到期时间是否正常延迟;比如购买商品,支付成功后,订单状态是否更改,商品种类和数量是否正确等等)
支付金额测试点
▼
a) 正常金额支付
b) 金额的最小值:0.01
c) 无意义的值:0元
d) 最大金额:设置支付的最大金额
e) 银行卡或微信等,设置每日最大消费金额或者单笔最大消费金额
f) 银行卡或微信余额不足时支付
支付流程测试点
▼
a) 正常完成支付流程
b) 调起订单后,取消订单
c) 支付中断后,继续支付
d) 支付中断后结束支付
e) 单笔订单单笔支付
f) 多订单合并支付
g) 持续点击支付,是否会出现多次购买
▼
a) 支付宝支付
b) 支付宝网页支付
c) 微信支付
d) 银行卡支付
优惠券或折扣(有一定的优惠)
▼
a) 支付中使用优惠券/折扣,应付金额和实际支付金额是否正确
b) 优惠券/折扣是否是必选,是否可以不选择折扣
c) 支付订单退款完成后,优惠券/折扣是否还能使用
接口测试注意的点
接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期,有些情况是功能测试无法覆盖的,所以接口测试是非常必要的。
接口测试分为两种,一种是webservice接口,走soap协议通过http传输,请求报文和返回报文都是xml格式的,测试时通过工具soapUI进行测试。使用情况比较少;另一种http api接口,走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求。
get请求和post请求的区别在哪里呢?网上的答案为:
1、get请求可以在浏览器中请求到,post请求的测试需要借助工具
2、get请求使用url和cookie传参,post的数据放在body中
3、post比get更安全,因为传递的参数在url上是看不到的
4、get请求的url会有限制,而post请求的数据可以非常大
5、一般get请求是来获取数据,post请求是传递数据的
其实,对于现在飞速发展的 互联网来说,上面的说法已经不严谨了。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次表面上看起来,post利用body传参,比get的url传参安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的URL,所以也不再有限制一说了。这么说来,种种区别只有最后一条是最根本的了。
怎么来测试接口呢?根据什么来测呢?这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的。包括:接口说明、调用的url,请求方式(get or post),请求参数、参数类型、请求参数说明,返回结果说明。这里接口文档生成可以使用apipost接口文档生成工具。有了接口文档后,我们就可以设计用例了,一般接口测试的用例分为以下几种:
1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果
2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以在设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到
3、接口的安全性,这个又分为几种情况:
1)绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问题了。
2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢
3)参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大。
4) 密码安全规则,设置密码时复杂程度的校验。
4、根据业务逻辑来设计用例
用例设计完了,用什么来测试接口呢?我们可以借助一些工具,比如apipost和jmeter。apipost使用比较简单,可以在列表中选择请求方式,在输入框中输入URL,如果是get请求,直接点击发送就可以看返回结果了。
如果是post请求,会涉及到几种参数的上传方式和添加请求头、权限验证还有添加cookie等操作。apipost都可以简单实现
还有一种测试接口的工具是jmeter,用途比较广泛,不但能测接口的功能,还能对接口进行性能测试。比如:压力测试、负载测试等。在jmeter中需要创建线程组,如图:
Apipost官方链接: https://console.apipost.cn/register?utm_source=10008
PHP 工商银行B2C支付接口怎么做
merID
做支付接口测试:银行提供.唯一确定一个商户
做支付接口测试的代码
做支付接口测试,由商户在工行开户时,由工行告知商户。
merAcct
做支付接口测试:银行提供 , 商城收费入账账号 (只能交易时指定)。
懂得html代码跟PHP的程序员一名
方法/步骤
到银行开户,说明要做B2C在线支付接口,此时银行会提供给你 merID 、merAcct 这两个
由程序员按照一下步骤来做即可,在商城提交表单的页面添加以下控件。
<html xmlns=http://www.w3.org/1999/xhtml
<head
<meta http-equiv=Content-Type content="text/html;charset=utf-8"
<title百度一下,你就知道 </title
</head
<body
<FORM name="order" METHOD=POST ACTION="https://mybank.dccnet.com.cn/servlet/ICBCINBSEBusinessServlet"
<!--
订单只能使用POST方式提交;使用https协议通讯;
2、接收servlet名称固定为:/servlet/ICBCINBSEBusinessServlet
3、银行地址:如果是生产则为“mybank.icbc.com.cn”,若为模拟测试环境则为“mybank.dccnet.com.cn”
--
<INPUT NAME="interfaceName" TYPE="text" value="ICBC_PERBANK_B2C"
<!--接口名称固定为“ICBC_PERBANK_B2C”--
<INPUT NAME="interfaceVersion" TYPE="text" value="1.0.0.0"
<!--接口版本目前为“1.0.0.0”--
<INPUT NAME="orderid" TYPE="text" value="000000001"
<!--订单号商户端产生,一天内不能重复。--
<INPUT NAME="amount" TYPE="text" value="100"
<!--金额以分为单位--
<INPUT NAME="curType" TYPE="text" value="001"
<!--币种目前只支持人民币,代码为“001”--
<INPUT NAME="merID" TYPE="text" value="XXXXXXXXXX"
<!--银行提供(max20),唯一确定一个商户的代码,由商户在工行开户时,由工行告知商户。--
<INPUT NAME="merAcct" TYPE="text" value="XXXXXXXXXX"
<!--银行提供(max19),商城收费入账账号 (只能交易时指定)。--
<INPUT NAME="verifyJoinFlag" TYPE="text" value="0"
<!--“1”判断该客户是否与商户联名;取值“0”不检验客户是否与商户联名。--
<INPUT NAME="notifyType" TYPE="text" value="HS"
<!--HS方式实时发送通知;AG方式不发送通知;--
<INPUT NAME="merURL" TYPE="text" value="http://kinderpower.com/servlet"
<!--接收银行通知地址,目前只支持http协议80端口--
<INPUT NAME="resultType" TYPE="text" value="0"
<!--对于HS方式“0”:发送成功或者失败信息;“1”,只发送交易成功信息。--
<INPUT NAME="orderDate" TYPE="text" value="20050801192556"
<!--14位时间戳--
<INPUT NAME="merSignMsg" TYPE="text" value="SFVdS3Kca6d/wetLFwynBl1q5nDIyxxEUXCzniIa47mhxs1BM9mPsnRc2lOqqrfwBdwBjSE82jS/iBHYKolf2sppjEyOImVZycv96321QPDgPA1yleO83K1XA1rmB3zxsIuwLKIICSWwdttn1XPYOQLJ/WAtZ5DFYFog7J8pXw0="
<!--商户签名数据BASE64编码--
<!--签名数据串,这里举例用的测试私钥user.key(顺序固定;被商户签名的串为各输入项的值):
接口名称的值+接口版本号的值+商城代码的值+商城账号的值+通知地址的值+结果发送类型的值+订单号的值+订单金额的值+支付币种的值+通知类型的值+交易日期时间的值+校验联名标志的值--
<INPUT NAME="merCert" TYPE="text" value="MIICVjCCAb+gAwIBAgIKI9fKEDP6AAAO3DANBgkqhkiG9w0BAQUFADA0MRgwFgYDVQQDEw9wYmouaWNiYy5jb20uY24xGDAWBgNVBAoTD3Biai5pY2JjLmNvbS5jbjAeFw0yMDA5MjAwOTI3NDFaFw0yMTA5MjAwOTI3NDFaMEMxGDAWBgNVBAMTD2JpYW5sdTIyLmUuMDIwMDENMAsGA1UECxMEMDIwMDEYMBYGA1UEChMPcGJqLmljYmMuY29tLmNuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG+u/C5pad0ZbwvAk9Gv1rr+SpknfFUsTMhJLcI2KiYa+XLSf5vCib0OclOoDDXKIWPt/hkMEz+ED8YukQpsstXHvnxVFxVtPh23dubQjB8/kJ7X5EbwngsHMLFEXqr3UvNfcGZHuAFqMRPtr8ys3YnL3UG43Xienc3cD8jXFdQQIDAQABo2AwXjBLBgNVHR8ERDBCMECgPqA8pDowODEOMAwGA1UEAxMFY3JsMTMxDDAKBgNVBAsTA2NybDEYMBYGA1UEChMPcGJqLmljYmMuY29tLmNuMA8GA1UdYwQIAwYA/wAAAAAwDQYJKoZIhvcNAQEFBQADgYEAQe6tLhKaNX8OPNT2XzH7dTXIFmTm37hSvmbEL/Q/pWV386KVrNSCnyN3fowanMt5TE9qZFn9enVvyDJw4nAUx38F2PFn2Tt7JUtzt/pNKC5FiebpFJH48AXIP1Xt5GjdcBx0oXM9QNBtYvY0189t357EH4UaBfO+c+L8fkOt37o="
<!--商户证书公钥BASE64编码--
<!--这里举例用的测试证书user.crt--
<INPUT NAME="goodsID" TYPE="text" value="abcd001"
<!--商品编号,自商城获得--
<INPUT NAME="goodsName" TYPE="text" value="小毡帽"
<!--商品名称,自商城获得--
<INPUT NAME="goodsNum" TYPE="text" value="1"
<!--商品数量,自商城获得--
<INPUT NAME="carriageAmt" TYPE="text" value="100"
<!--已含运费金额,金额以分为单位,自商城获得--
<INPUT NAME="merHint" TYPE="text" value="跳楼甩卖!" size="60"
<!--商城提示,以上五个字段用于客户支付页面显示--
<INPUT NAME="remark1" TYPE="text" value=" "
<!--备注字段 MAX(100)--
<INPUT NAME="remark2" TYPE="text" value=""
<!--备注字段 MAX(100)--
<INPUT TYPE="submit" value=" 提 交 订 单 "
</form
<body
END
注意事项
注意商户提交订单数据不能提交接口中没有定义的字段
提交按钮不能设置name属性,如果设置了,提交按钮的值将作为一个变量提交,可能造成数据检查错误
经验内容仅供参考,如果您需解决具
怎么对接汇付宝支付接口
以第三方支付接口为例。
第一步:签订合约通过第三方拿到接口(可以邮件形式发送、也可以在第三方系统下载),拿到接口后,要确认下接口类型,是否是自己需要的接口,比如B2C接口、B2B接口等类型。
第二步:支付接口分很多语言版本,比如ASP、JSP、PHP、.NET语言版本,所以要选择与自己网站语言匹配的接口进行安装。商城网站的技术一般比较清楚商城的开发语言。
第三步:拿到的支付接口一般包括接口文档和接口代码示例,选择合适的接口代码示例,进行联调,比如自己网站是PHP开发的,就选择PHP代码示例联调。
第四步:接口联调的时候,需要第三方支付提供联调测试账号,方可以联调。联调除了需要联调账号除外,还需要该账号的支付密钥,联调过程中,有什么问题,可以直接找第三方支付技术支持给予协调处理。
第五步:接口联调通过后,可先换成生产环境账号,进行交易测试,测试没问题后,可以放到商城网站进行交易。
网站如何做个页面接入网银在线支付接口?
一、申请网银在线;
1、注册网银在线 http://www.shouxufei.net/ ;
2、下载并安装支付接口 ;
3、合同的签订 (需要和网银在线的销售人员联系,确定收费价格,并索要合同,流程完后就是后面的一些资料寄送) ;
4、合同生效开始提供服务。
二、做页面:
有两个是用来接收网银在线的反馈传递页面(这两个页面一般是进行下面的第四步)
一个是配置文件
一个是网银在线的一些函数(一般不需要修改)
1 、先做商品支付页面;
2、 用户确定提交订单(同时本地写入数据库一个唯一的订单号,并设定成未支付状态);
3、提交订单到网银在线支付页面;
4、用户支付成功后返回网站操作页面(对用户进行操作,数据中的当前订单更改成已支付)。
关于做支付接口测试和做支付接口测试怎么做的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
做支付接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于做支付接口测试怎么做、做支付接口测试的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~