本文作者主要从网络接入流程、支付流程、对账流程三个方面对支付系统进行了梳理,分享给大家。
我从事支付产品有一段时间了。 我想简单回顾一下作为一名网络商家从上网到对账的流程,作为我这段时间工作的总结。
网络接入流程 1.确定支付方式
您首先需要确定支付场景并选择合适的支付方式。
我们简单罗列一下主流产品和常见的支付方式:
从用户体验角度来看,PC端支付方式可以选择聚合支付,即同一个二维码支持所有主流支付App扫码支付; App端一般支持微信、支付宝支付; 微信公众号和小程序也支持微信。 这就够了。 虽然在浏览器中打开也可以实现支付宝支付,但用户体验不是很好。
从产品本身来看,跨端产品的快捷支付是一个合适的选择,而且由于快捷绑定卡需要四因素验证,所以也实现了用户的实名制。 但由于它需要用户输入四个因素,因此很多对信息敏感的用户都会排除卡绑定。
虽然网上银行是一种只支持PC端的支付方式,用户支付相对麻烦,但它适合大额支付,而且限额比其他支付方式高很多。
银联云闪付和手机闪付的优势在于,银联始终乐于搞各种全额折扣和随机即时折扣活动。 优质商户可以更多利用银联资源,实现共赢。
以上列出的支付方式主要针对C端用户。 如果产品面向B端用户,可以考虑企业网银或直接线下汇款。
2.确定收单机构
确定付款方式后,就该选择收单机构了:
如果所需的支付方式比较简单,比如只有微信或支付宝,那么可以直接接入微信或支付宝;
如果您需要支持多种支付方式,并且对费率比较敏感,可以尝试比较市场上的第三方收单机构或者知名的第四方聚合支付公司,比较他们提供的产品和费率。
3. 接入网络
不同机构所需的入网材料有所不同,但一般都是营业执照信息、结算账户信息和业务相关信息。 按照所选院校的要求准备即可。 协议签署后,组织将发放商户编号、证书等参数,为下一步技术对接做好准备。
付款流程
不同的收单机构和支付方式接口有所不同,但总体流程差别不大。 以微信为例,主要界面如下:
统一下单、支付接口、支付结果通知、订单查询、退款申请、退款查询、账单下载。
具体的开发流程在各个收单机构的文档中都会写得很详细,我就不赘述了。 我主要讲一下我认为需要注意的几个点:
1.支付成功以后台通知为准
在这方面我确实处于劣势。 当我接手这个产品时,大部分支付渠道已经打通,并且已经在线上运行很长时间了,所以我不需要技术来重新组织流程。 后来有一天财务部门来找我,告诉我支付宝缺款,找技术询问后发现支付宝订单的技术处理是前端回调成功,下单了更改为支付成功。
正常情况下,前台通知和后台通知的状态确实是一致的,但是当不一致时,后台通知是准确的。 这个问题造成了我们公司的货款短缺,给我们留下了深刻的印象。
但以后台通知为准。 如果通知晚了,会稍微影响用户体验。 建议如下处理:当前后台回调后,检查后台交易状态是否收到通知,更改为支付成功。 如果仍在付款中,请主动发起订单查询。 查询订单支付状态的接口。
2.添加支付订单处理
设计产品时除了考虑正常流程外,还需要增加异常处理,尤其是涉及真实货币的支付交易,更加敏感。
一般认为,由于网络异常等原因导致交易状态不清楚是小概率事件,但在实际处理中确实时有发生。 因此,建议增加付款下降处理,即在没有收到明确回复时,回查交易状态,以节省资金。 可以将系统资源设置为合理的查询次数,并加大查询时间间隔。
偶尔会出现个别交易订单超出系统自动处理数量或时限的情况。 错误可以按照对账流程进行处理。
3. 重复付款处理
重复付款大多是由于掉单造成的。 当用户看到自己的货款已成功扣款,但订单仍处于待付款状态时,就会产生疑惑。 一般情况下,他们不会继续付款。 但如果是一些限定或限时活动或者用户没有注意到扣款,即使支付成功,也可能会出现重复支付的情况。
可以做的就是订单支付后再次收到支付完成通知后进行退款。 如果您考虑到资金安全,认为系统自动退款有风险,您可以在次日对差异进行调节。 稍后再处理。
4.添加退款重试机制
如果结算时间为T+1,金额自动提现至结算实体账户,次日退款很可能因当天持仓或账户余额不足而失败。
避免这种情况的一种方法是推迟退款时间。 例如,凌晨的退款交易推迟到上午9点之后,但仍很难完全避免失败。 其次,系统增加了退款重试功能。 如果退款遇到此类错误,将推迟到下午或晚上重试退款。
对账流程
正常情况下,收单机构提供的对账文件与收到的结算付款始终是正确的。 系统主要关心对账文件是否与订单相符。 一般至少需要提供混合序列号、交易时间、交易类型和交易金额,手续费以收单机构提供的为准。
差异主要包括以下几种情况:
1、对账文件较多
如果用户重复付费,多付的金额必须退还;
付款并放弃订单。 如果订单未取消,请将订单状态更改为付款已完成。 如果订单被取消,则需要退款。
2. 调节文件很少
这种差异可能是日切造成的。 付款记录将参与后续的混配。 如果连续2天混合不成功,如果记录混合失败,将进行手动处理。
3、金额差异
金额差异很少发生。 如果出现差异,则需要人工干预,查看系统是否存在问题。