下面我简单说下消费(网银、扫码下单)、出款、通知、查询接口的部分测试点
用例主要分为正确输入、错误参数名、错误参数值、异常测试四个模块
正确输入:对正确范围内的参数值进行设计用例,验证结果;比如说,支付方式参数有微信、支付宝、银行卡三个值,需要对着三种情况各设计一条用例
错误参数名:对每一个参数名设计错误的参数名,进行提交测试;覆盖范围大概就是边界值、类型、空
错误参数值:对每一个参数值设计错误的参数值,进行提交测试;覆盖范围大概就是边界值、类型、空、正确值范围外和逻辑关联的值
网银下单接口
订单状态
1.订单状态为待支付,再次使用此订单号执行网银、扫单下单接口
a.订单状态为待支付,修改金额不一致,再次使用此订单号执行网银、扫单下单接口
2.订单状态为支付成功,再次使用此订单号执行网银、扫码下单接口
3.订单状态为关闭,再次使用此订单号执行网银、扫码下单接口
网银支付页面
1.多次打开返回的网银支付页面url(关闭页面,再打开页面)
2.多个窗口同时打开网银支付页面url,同时支付
3.网银支付页面和本系统订单的超时时间不相同,需要验证不同超时二者的表现情况
a.网银支付页面未超时,本系统订单超时,打开网银支付页面url,同时支付。验证后台订单情况
b.本系统订单未超时,网银支付页面超时后,打开网银支付页面url
c.本系统订单未超时,网银支付页面超时后,重新使用此订单号提交网银下单接口
d.本系统订单超时,网银支付页面超时后,打开网银支付页面url
4.打开网银支付页面url后,验证每个可选择的银行渠道
5.打开网银支付页面url后,选择银行渠道之后返回,重新选择其他银行
扫码下单
订单状态
1.订单状态为待支付,再次使用此订单号执行网银、扫单下单接口
a.订单状态为待支付,修改金额不一致,再次使用此订单号执行网银、扫单下单接口
2.订单状态为支付成功,再次使用此订单号执行网银、扫码下单接口
3.订单状态为关闭,再次使用此订单号执行网银、扫码下单接口
二维码状态
1..二维码和本系统订单的超时时间不相同,需要验证不同超时二者的表现情况
a.二维码未超时,本系统订单超时,扫二维码进行支付。验证后台订单情况
b.本系统订单未超时,二维码超时后,扫码进行支付
c.本系统订单未超时,二维码超时后,重新使用此订单号提交扫码下单接口
d.本系统订单超时,网银支付页面超时后,扫码进行支付
支付通知
1.金额异常,通知金额和原订单金额不一致,验证后台订单情况
2.漏单,通知中的订单号在本系统中查不到记录,验证后台订单情况
3.重复通知,先通知订单失败,再通知支付成功,验证后台订单情况
4.多笔成功,两笔支付成功的通知对应了一笔商户订单,验证后台订单情况
5.本系统订单超时关闭后,收到支付通知,验证后台订单情况
查询
1.关注轮询机制,验证定时查询逻辑
2.扫码支付后,轮询后页面是否更新正确
3.轮询后,后台订单状态变化情况
签名规则说明
在接口传递时,都会验签,我们用的MD5加密。
机制就是:请求方把参数组成一个字符串,再通过MD5加密,最后把加密所得的参数连同其他参数一起发送给接收方;接收方收到请求之后进行验签操作,把接收到的参数通过MD加密,得到的加密字符串和请求方传递的加密字符串进行比较,如果一致则验签通过,不一致则返回签名验证失败(最关键的是商户id和商户key,加密时用到了id和key,但是请求参数里面只传了id,接受方会根据id查询到商户key,再进行MD5加密并进行比较MD5加密后的值;避免传递中途被人拦截篡改参数值)
比如说
1.请求方的加密字符串:input_charset=UTF-8&pay_type=20&merchant_code=101711&key=FDSFKHSD574523&order_no=asdfasdgasdimzxbertrtt
2.请求方加密后的值:CCE52BF1784C45B8A38C4CCAA3FF009F
3.请求参数:input_charset=UTF-8&pay_type=20&merchant_code=101711&order_no=asdfasdgasdimzxbertrtt&sign=CCE52BF1784C45B8A38C4CCAA3FF009F
4.接收方查询到key后重组字符串:input_charset=UTF-8&pay_type=20&merchant_code=101711&key=FDSFKHSD574523&order_no=asdfasdgasdimzxbertrtt
5.接收方通过MD5加密后和请求参数里面的sign参数值进行比较