测试员支付网关测试指南:
什么是支付处理器(payment processors)?
根据维基百科,"支付处理器是由商家指定的公司(通常是第三方),用于处理来自各种渠道的交易方式,例如商业银行的信用卡和借记卡。
支付处理器将收集到的信息进行转发给相信卡的银行和会所进行验证,并对交易行为进行一系列反欺诈措施。"
常见的支付网关有Braintree, Authorize.net, PayPal, Bluepay, Citrus Payments 等。
支付网关术语
让我们来讨论一下在这篇文章中涉及到的术语:
1)商户(Merchant)
--商户是销售产品或服务的个人或公司。Flipkart,Amazon,eBay都是是商户的例子。
2)信用卡(Credit Card)
--可用于信用账户购买产品或服务的塑料卡。它具备16位数字卡号,有效期,全息图,磁条,签名面板和卡验证值(CVV)号码等。
信用卡正面:
信用卡背面:
3)收单银行(Acquiring bank)
--收单银行 (Acquiring Bank)服务对象为特约商店,收单银行向商店推广接受信用卡为付款工具,但收单银行会先在严格审核商店信用的优劣之后,再与商店签约成为特约商店,并提供信用卡单据兑现服务及收取手续费。
4)开证银行(Issuing Bank)
--开证银行是指接受开证申请人的要求和指示或根据其自身的需要,开立信用证的银行。开证行一般是进口人所在地银行。开证行是以自己的名义对信用证下的义务负责的。
例如,如果卡的有效期不正确,或者购买金额超过卡信用限额等情况下,交易将被拒绝
5)交易(Transaction)
--通过端到端的方式与客户交流产生交易行为。
6)授权(Authorization)
--客户在购买时会要求授权。此授权由客户开证行提供,并确认持卡人的有效性,支付能力,存在足够的资金等。一旦符合资金持有资格,余额会从客户的信用额度中扣除但此时尚未转入商家帐号。
7)捕获(Capture)
--在此操作中,商家收集相关的客户支付信息,并向处理器发送结算和捕获请求。处理器使用此信息来启动客户和商家银行帐户之间的资金转帐。
支付网关和支付处理器的差别
网上有很多关于支付网关和支付处理器是否是具有不同功能的文章。在我做测试项目期间,我观察到付款处理器和付款网关是可以互换使用的,并没有什么实际的区别。商家通常将"付款网关"称为支付处理器,因为这两个都是用于支付业务。
交易流程
以下流程图总结了客户从提交订单到订单成功或拒绝之后的完整流程。
void和return之间的区别在于交易是否被捕获。未结算的付款可以视作为无效,这也就意味着资金被记入持有人账户。若交易已经结算或者信息已经被捕获,则会启动退款,这也就是说资金将将从商家账户中扣除并存入持卡人的账户。
为什么我们需要测试支付网关?
如果我们在实际的实体店购物,我们将在结帐时通过支付现金或刷卡(信用卡或借记卡)以完成交易。如果使用信用卡或借记卡,POS机将显示支付处理是否被准许或拒绝。同样,在网络交易中,我们需要一个可比较的系统,即时批准或拒绝交易。
从客户的角度来看,电子商务网站上的在线支付处理应该是无缝的。客户点击"立即付款"按钮,并在接下来的几秒时间内就能够看到支付成功或者失败的消息提醒。
从电子商务店的角度来看,商家需要确保完整的付款流程(从网上商店获取交易,获取和授权,退款,无效)都可以正常运作。如果流程中的任何一个部分没有达到预期的结果,那么对于商家来说都可能是一个问题。
从商家的角度来看,在测试阶段使商家适应支付流程并评估选择的选项是否适合其应用程序和业务是很有必要的。
需要进行的各种测试
根据付款处理器的选择和产品或应用的要求,可能会需要执行以下类型的测试:
功能测试--功能测试的测试对象为刚出现在市场上,并且系统不很成熟的支付网关,以确保应用程序能够按照应有的流程保证质量,建立更加完善的支付处理器。
集成测试--集成测试在与支付网关集成时至关重要。作为测试人员,需要验证网站、网上商店、应用程序的集成是否与所选支付网关正常工作。
作为测试者,你需要验证整个交易流程:
-
下订单
-
检查商家帐户中是否收到资金
-
验证交易是否可以成功退款或失效
性能测试--必须测试网站、网上商店、应用程序的性能。如果多个用户试图同时完成交易,支付处理器应该也能成功。
安全测试--在交易过程中,客户会提供敏感信息,如信用卡号,CVV号等。确保所有敏感信息在加密后传输并且信道安全是非常重要的。
支付网关测试清单和测试用例
像任何其他应用程序一样,测试支付处理器也有正确的测试计划
以下清单可用于测试人员参考:
1)设置支付处理器沙箱。
2)收集用于测试不同信用卡的号码。例如,Braintree支付处理器的信息可以在Braintree支付中找到。