常见的基础知识点
支付涉及到的对象
- 用户
- 商户(淘宝店主、小店老板)
- 平台(一般都是要收费的)
常见的支付方式
1.平台包括第三方支付平台(微信、支付宝、银联、其他第三方支付机构)
2. 其中网银是银行自己的界面和系统
3. 银行(接收第三方支付平台的指令,进行相应的充、提、转等操作) 余额支付(绑卡->充值支付)、网银付款、支付宝、微信。
4. 货到付款(线下)
T+1:当前时间+一个工作日 2小时内到账,他们对外宣传 24小时,或者T+1到账
诚信,2小时内必须到账,网络波动,设备的问题
备付金账户:公司在银行开立的大金额交易和存储的账户。
小数点:
支付测试必然要验证金额的正确性,所以小数点非常重要
人民币精确到小数点后两位,外币精确到小数点以后4位。
很多支付公司,他们会自定义一个特殊的参数类型,叫money
虚资金:就是你的账户余额,显示的那个数字
实资金: 你实实在在的钱
支付流程
注册-》登录-》浏览-》购物车-》生成订单-》支付方式-》付款完成-》等待发货/收货-》退换货
支付方式:充值支付、网银支付、银联支付、微信、支付宝,账户支付/扫码支付
资金流向:
网银支付:
流程:直接点击订单-》网银支付-》跳转到银行主页-》输入卡号,手机验证码,密码支付-》
支付完成跳转到return_url界面(同步回执),支付状态一般为已支付-》银行打款成功,对方收到(异步回执)-》修改数据库里面订单状态为支付完成
虚资金变化:我的银行余额减少,对方余额增加
实资金变化:我的钱少了订单金额,对方增加了订单金额
资金流向:
假如你是在平台购买商品,然后钱最终是付给商家,采用的是网银支付
你的银行卡账户->平台备付金账户->商户账户
如果平台商就是商家
你的银行卡账户->平台备付金账户
充值支付:
把钱从你的银行卡充值到平台账户,支付时,使用平台账户上的余额进行支付
资金流向:
充值:你的银行卡->平台账户
支付:平台账户->商家账户
提现:平台账户->你的银行卡(通常收费)
转账:你的银行卡->对方银行卡
微信支付:
流程:购物平台生成订单->选择支付方式(微信支付)->跳转到微信界面->输入密码支付
->生成收款二维码->扫码支付
这里分为两种:
1、微信余额支付
2、银行卡支付
资金流向:
1、微信备付金->平台备付金账户->商户账户
2、银行卡->微信备付金->平台备付金账户->商户账户
概念:
支付中涉及的对象有哪些?
我(用户)、卖家(商户)、平台、银行、第三方支付平台(如支付宝、微信等)
备付金账户和备付金的概念:
一般公司支付和收款的时候都不会提供私有账户,一般是对公账户。所以公司一般会
在这个账户里面存较多资金,用来做日常的一些支付和开销。这个就是备付金账户,
里面的钱就是备付金。公司一般需要往外支付的时候,就用备付金进行支付,第三方公司
如果有需要还可以通过备付金进行垫付。
概念:虚资金:虚拟货币或者虚拟的金额,比如网上查询银行卡余额
实资金:实实在在的钱
支付时会涉及到虚资金和实资金的转换。
验证规则:
人民币精确到小数点后两位,外币精确到小数点以后4位。
所以在验证时除了在web或APP界面验证资金的正确性以外,还需要在数据库相关订单数据处理进行验证。
验证时需要考虑的东西:
1、订单金额是否正确
2、收费是否正确
3、银行卡余额变动是否正确
这里涉及到收费问题。
概念:只要采用了第三方支付(按笔收/每笔收1毛钱;按比例收,交易额1%0-3%0),基本都会收费。但是收费并不只是第三方支付平台的行为。
可能要收费的地方:
1、购物平台
2、银行接口
3、第三方支付接口
4、物流、税费、包装、保险、其他费用。
所以,在验证金额的时候,必须保证以上每个部分金额的正确性,精确到小数点后两位。
问题:用户在前端支付了10块钱,最后到商户手里时,只有9块,请问是bug吗?
不一定。
还需要去验证每个账户的余额变动情况是否正确!!!
验证方法:
1、查系统日志 tail -f rizhi.log | gerp “关键字”
2、查数据库
3、前端和后台页面的显示情况
退款流程:
退款一般有全额退款和部分退款的区别
原则:大公司或者利润高的公司,一般是全额退款。小公司一般是部分退款。
一般,支付接口收费不退(微信或支付宝针对每笔订单收费,一般是千1到千3),税费不退,物流费不退,保险不退,平台收费可退可不退。
怎么退:
流向?
第一种:原路返回,哪里来哪里退。
第二种:不管怎么支付的,我都退到你的平台账户。
一笔订单的测试(测试必须借助数据字典,日志信息):
前端:生成订单
后台:可以查询和修改订单
如果订单状态发生改变需要后台查询最新信息,并确认
数据库:确认订单信息是否正确
订单修改或者状态发生改变以后需要去数据库确认数据的正确性
日志:
订单生成时:查看日志,订单入参是否正确
订单入库时:查看SQL语句执行的结果是否正确,并进入数据库检索相关信息验证订单正确性
订单被修改时:查看日志确认修改的参数
订单状态变动时:查看日志,系统是否接收到支付平台/银行回执的信息,并检查数据库状态是否正常切换
以上,总结的不足之处,欢迎网友批评指正