前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >支付系统常见问题与解决方案

支付系统常见问题与解决方案

原创
作者头像
windealli
发布2020-03-07 10:38:48
2.7K0
发布2020-03-07 10:38:48
举报
文章被收录于专栏:windealliwindealli

概述

支付系统涉及到资金交易,对数据安全性和一致性有较高要求。

本文简单介绍下几个常见对问题,和一些思考。(作者也是刚刚学习,有理解不对的地方敬请斧正)

防抵赖

支付系统中有一些操作/接口是必须对调用方进行身份强校验的。

  • 支付结果回调
  • 退款、撤销订单(订单回滚)

支付结果回调不作校验的话,如果回调是别人伪装的,就可能导致商户没收到钱,却通知他发货给下单人。

订单回滚操作不作校验的话,可能导致错误地把商户的钱退换给用户。

以上两种情况都会给商户带来损失。

支付回滚

防抵赖通常的措施,是通过密钥对支付关键数据进行签名,请求接收方校验签名。

对于支付系统而言,订单回滚通常需要使用非对称私钥。即支付系统的使用方使用私钥进行加密,然后支付系统通过公钥匙解密。

image.png
image.png

能通过公有解密出来的信息,就是来自对应私钥的拥有者。从而做到防抵赖。

支付成功回调

支付成功回调相比支付回滚对支付系统对要求会低一些。(因为支付系统可以要求使用方收到回调后,需要进行订单查询确认,将一些责任转移到应用/商户)

image.png
image.png

不过整体上,尤其对于不是很强势的小支付平台而言,非对称加密是比较常用的方式。

image.png
image.png

重复支付问题

订单发生重复支付,也回增加系统使用方对负担。

重复支付问题有两个解决思路,

    1. 在支付时,一旦支付人发起支付,在限定时间内其他人不得对同一个订单发起支付,同时支付人必须尽快在限定时间内完成支付,否则支付票据失效,订单解锁。
    1. 确认无法杜绝重复支付时,可以做退款逻辑。(不过这块要尤为谨慎)

数据一致性问题

数据一致性主要是要避免因为网络问题或者系统对一些其它故障,要能够保证最终系统对整个链路中订单对状态是一致的。

  • 数据回调丢失。(尽快回调通常回多次发起,但是还是有可能出现全部丢失的场景)
  • 退款请求没有应答。(系统下游收到退款请求,且执行了实际动作,但是应答丢失了)
image.png
image.png

在退款时,支付系统或应用,一旦想下游发起请求时,不过有没有收到应答,订单的状态都必须更改为退款中。后续在通过应答,或者订单的延时查询将订单的状态修正为确定状态(退款成功或失败)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 防抵赖
    • 支付回滚
      • 支付成功回调
      • 重复支付问题
      • 数据一致性问题
      相关产品与服务
      云支付
      云支付(Cloud Pay,CPay)为您提供开放、可靠的聚合收款技术服务和商户管理功能。云支付支持刷卡支付、扫码支付、一码多付多种支付方式。服务商也可使用云支付提供的 SDK 和 HTTPS 接口,将云支付集成进自己的系统中,为商户提供的个性化解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档