支付接入常规问题

简介: 以前写过一篇如何对接第三方支付的文章[如何高效对接第三方支付](https://mp.weixin.qq.com/s/NM34aevx3DBT1czcoFMJWw),因为对接的大多数是海外支付公司,这些公司有很多神奇的问题,往往会埋坑,所以开发之前,整理出问题列表,以便尽早发现和解除问题,保证按时上线。

以前写过一篇如何对接第三方支付的文章如何高效对接第三方支付,因为对接的大多数是海外支付公司,这些公司有很多神奇的问题,往往会埋坑,所以开发之前,整理出问题列表,以便尽早发现和解除问题,保证按时上线。

问题如下

1. 支付

a. 同一个订单号,支付成功之前,是否可以使用该订单号重复发起支付请求

b. 同一个订单号是否能够保障只能被成功支付一次

c. 支付过程是否有其他限制,导致支付失败?比如:地区、ip等

d. 是否支持请求时设置同步/异步通知的url地址

e. 第三方需要支持请求时设置订单过期时间

f. 请求支付的数据是否需要签名,签名规则是什么,如果没有如何防止数据不被篡改?

g.能否提供用户测试的信用卡或者储蓄卡等

2. 同步/异步通知

a. 同步通知的结果是否可信?是否需要同步通知到达时查询一次支付结果以查询结果为准

b. 查询的交易状态与交易的实际状态是否有时间延迟(如:用户支付后,我方立即查询是否会得到一致的结果)

c. 异步通知策略,通知的时间间隔,通知的次数,触发异步通知的条件

d. 通知数据中是否包含交易号,即第三方系统内的一笔交易的唯一标示,以及通知的种类标示字段(交易成功通知/退款成功通知/其它通知)

e. 针对异步/同步通知如何判断支付成功,是否有pending状态(可发货出库的状态)

f. 同步/异步请求的方式是GET/POST哪种方式,传输数据的方式是json/xml/formdata

g. 异步/同步返回的数据是否有签名,如何进行验证?如果没有如何保证数据是安全未篡改的?

h. 是否有风控流程?时间间隔多久?超过间隔时间为收到成功或失败的通知导致发货后的损失怎么解决?

i. 哪个状态可以认为真正支付成功了?

j. 处理失败是否会阻塞

3. 查询

a. 是否支持订单状态查询,通过我们的订单号或第三方的交易流水号

b. 是否支持退款单状态的查询,如果不支持,如何检查之前退款是否成功,主要用来检测是否会重复退款

c. 支付订单的查询与退款订单的查询是否是孤立的?比如:支付单如果支付成功,无论该订单是否退款,查询的状态都是支付成功,而退款状态需要通过其他接口获取

d. 接口是否有签名相关安全措施,如果没有如何保障安全

e. 查询的金额不会因为交易状态的变更而发生变化

4. 退款

a. 是否支持部分退款,退款接口是否包含唯一退款单号标示,对于同一退款单号第三方要保证不超退不重复退。退款是否为幂等操作。

b. 退款接口,直接调用退款接口即可,还是调用退款接口后还有异步通知

c. 需原路退款,确认退款时效和退款期限

d. 退款是否有任何限制?比如某种支付渠道需要支付后多少时间后才可退款,某种渠道不支持部分退等,部分退款有无次数、频率限制。

e. 退款必须只能由小米商城通过接口或者在其后台手工操作,不能由用户申请而直接进行退款

f. 如果在第三方的退款金额不足,第三方如何处理?理论上应该资金充足时自动重试

g. 如果是卡支付,用户是否能够直接向银行申请退款,如果可以,这部分流程如何处理?

5. 对账/结算

a. T+1日获取第三方前一日的完整交易记录,提供api还是ftp

b. 是否提供结算单明细:每一笔结算给mi.com的资金,由哪些交易构成的明细,以及第三方每一笔收的手续费、产生的费率等。

c. 对账单的数据在交易产生后,每个字段值不应该发生变化,比如:某笔交易部分退款后,它的支付交易金额应该保持不变。

6. 线上配置

  1. 配置线上账号需要多长时间
  2. 配置线上账号需要什么信息,对于这些信息有无特殊需求

7. 支付系统支持的qps为多大

a. 常规系统支付的qps

b. 大型活动是否需要提前沟通,预估交易相关数值

c. 对方服务的部署位置

8. 开发&测试

a. 开发阶段需要提供完备的测试环境、测试账号

b. 测试如何模拟各种场景的case

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. Go语言
  2. MySQL/Redis
  3. 算法
  4. 架构/网络/项目
  5. 思考/读书笔记
相关文章
|
数据采集 自然语言处理 大数据
​「Python大数据」词频数据渲染词云图导出HTML
使用Python,本文展示数据聚类和办公自动化,焦点在于通过jieba分词处理VOC数据,构建词云图并以HTML保存。`wordCloud.py`脚本中,借助pyecharts生成词云,如图所示,关键词如"Python"、"词云"等。示例代码创建了词云图实例,添加词频数据,并输出到"wordCloud.html"。
281 1
​「Python大数据」词频数据渲染词云图导出HTML
|
10月前
|
存储 人工智能 文字识别
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
本文介绍了纸质档案数字化的技术流程,包括高精度扫描、图像预处理、自动边界检测与切割、文字与图片分离抽取、档案识别与文本提取,以及识别结果的自动保存。通过去噪、增强对比度、校正倾斜等预处理技术,提高图像质量,确保OCR识别的准确性。平台还支持多字体识别、批量处理和结构化存储,实现了高效、准确的档案数字化。具体应用案例显示,该技术在江西省某地质资料档案馆中显著提升了档案管理的效率和质量。
1077 1
|
11月前
|
存储 数据采集 监控
大数据技术:开启智能决策与创新服务的新纪元
【10月更文挑战第5天】大数据技术:开启智能决策与创新服务的新纪元
|
运维 Linux
Linux Ping协议解析与应用
Ping是网络通信中常用的工具和协议之一,用于测试网络连通性和测量往返时间。在Linux系统中,`ping`命令是基于ICMP(Internet Control Message Protocol)协议实现的,它通过发送ICMP回显请求和接收ICMP回显应答来测试网络连接。本文将深入解析Linux下的Ping协议,包括原理、使用方法和应用场景,帮助读者全面理解Ping协议在网络通信中的重要性。
432 0
|
druid Java 关系型数据库
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
1242 0
|
运维 Kubernetes JavaScript
云效产品使用报错问题之gitlab库导入到云效失败如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
人工智能 自动驾驶 算法
人工智能伦理:技术发展与道德责任的交汇点
随着人工智能技术的飞速发展,其伦理问题亦成为社会关注的焦点。本文将探讨AI技术在带来便利的同时,所面临的伦理挑战和责任归属问题。通过分析AI在不同领域的应用案例,并结合最新的研究成果和统计数据,文章旨在提供一个全面的视角来审视人工智能的伦理维度,同时呼吁制定更为严格的伦理准则和监管政策,以确保技术的健康发展与社会价值的和谐统一。
Java面向对象知识总结+思维导图
Java面向对象知识总结+思维导图
239 0
|
XML 存储 JSON
Spring Cloud Alibaba Sentinel 整合 nacos 进行规则持久化
Spring Cloud Alibaba Sentinel 整合 nacos 进行规则持久化
3429 0
Spring Cloud Alibaba Sentinel 整合 nacos 进行规则持久化
|
JSON 数据格式
FileBeat替换@timestamp的四种方法
FileBeat替换@timestamp的四种方法
1194 0