第三方集成:应首先确定的事项

By Manboo Studio4 min read
请求项目估算WhatsApp
第三方集成:应首先确定的事项

“只需要连接到支付系统”这句话往往是三周延误的前奏。编码很少是真正的问题;账户、审批,以及测试环境与生产环境之间的差异才是。

为什么集成并不是一项小任务

连接外部服务不仅仅是调用它:

  • 向服务提供商创建账户并完成验证,通常需要提交企业文件。
  • 在获得生产环境访问权限前完成审批或审核——支付服务提供商尤其如此。
  • 凭证管理,测试环境和生产环境需要分别管理。
  • 处理服务提供商可能产生的每一种失败情况:拒绝、超时、部分成功、重复提交。
  • 对账——将服务提供商所称发生的情况与应用程序记录的情况进行匹配。
  • 针对沙箱环境进行测试,但沙箱的行为与生产环境不同。

真正的工作量集中在最后两项,而它们在功能列表中通常是不可见的。

应尽早启动的前置周期

这些是日历上的事项,而不是开发事项,应在项目启动时开始:

  1. 支付服务提供商。商户账户申请需要企业注册信息、银行资料,有时还需要进行商业模式审核。周期可能从几天到几周不等,某些业务类别也可能被拒绝——在围绕某个服务提供商进行设计前,最好先确认其是否接受你的业务。
  2. 消息服务。在许多市场,短信需要注册发送方标识并预先审批模板,这是一个有正式流程且有自身排队周期的过程。
  3. 平台集成。连接成熟的生态系统通常需要经过验证的账户,并且可能需要审核你的使用方式。
  4. 企业系统。连接客户现有系统意味着需要从第三方获取访问权限、文档和测试环境,而对方的时间安排并不由你控制。这通常是整个项目中耗时最长的环节。

沙箱不是生产环境

测试环境经过了简化。以下差异经常会在正式上线时暴露出来:

  • 速率限制在沙箱中通常不存在或较为宽松,而在生产环境中会很严格。
  • 沙箱中的延迟较低,因此测试中从未出现的超时可能会在生产环境中发生。
  • 错误类型更少——沙箱只能产生少数几种场景,而生产环境可能产生许多种。
  • 沙箱中的数据验证有时更宽松,因此真实数据可能因测试从未揭示的原因而被拒绝。

实际可行的缓解措施是在上线前进行生产环境冒烟测试:使用真实凭证执行少量真实交易,并端到端完成验证,包括对账。

针对必然发生的失败进行设计

外部依赖在某个时刻必然会不可用。届时应该如何处理,是设计决策,而不应由意外决定:

  • 用户的操作应失败,还是进入队列?支付必须明确失败。通知则可以进入队列并重试。
  • 用户会看到什么?具体的提示信息远胜于笼统的错误信息,也能减少支持工作量。
  • 该操作是否可以安全重试?支付和消息 API 通常支持幂等键,使重试请求不会造成重复扣款。任何涉及资金的操作都不能省略这一机制。
  • 如何发现问题?集成产生的错误应记录并触发告警,而不应被静默吞掉。

版本控制,以及你没有进行的变更

服务提供商会更改其 API。版本会提前通知弃用,而通知会通过电子邮件发送给注册账户的人——这也是账户应由客户持有的另一个原因。

两个习惯可以防止由此造成的中断:固定使用特定的 API 版本,而不是自动追踪最新版本;确保账户的通知地址能够触达会采取行动的人。由于已按公开计划停止支持弃用版本而导致集成停止工作,是可以避免的故障。

成本

第三方服务通常按使用量收费,而这往往是小型应用中最大的经常性成本。在作出承诺前,值得确认以下事项:

  • 定价模式——按交易、按消息、按 API 调用或按活跃用户计费。
  • 是否存在免费层级,以及达到其上限后会发生什么。
  • 使用量达到当前的十倍时,成本如何增长。
  • 是否存在最低消费或月度承诺。

在试点使用量下成本低廉的 AI 或消息集成,在规模扩大后可能成为主要运营成本,而提前了解这一点可能会改变服务提供商的选择。

Manboo 相关服务

提交项目需求

把产品目标、当前流程、目标平台、约束条件和决策时间告诉我们。我们会先评估范围,再给出可执行的下一步建议。

第三方集成:应首先确定的事项

补充项目需求(选填,便于评估范围与费用)
我们仅将上述信息用于评估与响应您的项目需求。阅读完整隐私政策。请勿在表单中提交密码或 API 密钥等敏感凭证。