接口有什么用?

作为一个互联网公司,很多资源和信息需要内部共享或外部流通,那相关的数据就需要通过接口来传输。无论是2C还是2B的产品,都会用到接口,其中2B的产品们——数据、后台、开放平台/供应链,几乎和接口都是正面接触。

接口怎么用?

目的千差万别,用法殊途同归。本文主要以美团门票举例,介绍接口的基本属性、产品逻辑和异常情况等,供大家参考和讨论。

怎么理解接口?

API接口是Application Programming Interface的简称,是一些预先定义的函数,包括接口地址、传入参数和返回参数。

可以简单理解为,当需要访问某些数据,正常状态下传入合格参数,会收到该数据范围内的返回参数。

场景:在美团旅游频道,用户选定时间、地点后搜索航班,后台会调用搜索接口传入时间、地点等参数,接收航班类别、价格等参数,在前台页面上进行排列展示。同理,下单时会调用生单接口确认是否成单,支付时会调用支付接口完成交易,自动修改订单状态。

产品逻辑

很多公司都有开放平台(也叫供应链),比如美团作为一个平台,很多的供应商需要把自身资源导入平台,在平台页面上集中展示,供用户选择。一般情况下,美团会有自身的一套接口,供应商可以开发对应的接口进行对接,这种叫(运价)直连。

以下以美团门票为例,此链接http://open.trip.meituan.com/是商家对接的开放平台,不涉密,商家技术、业务人员可以通过该地址上的接口说明进行商家对接。

1.系统结构

门票直连系统是通过接口,把商家的门票数据导入到美团上收单,按用户行为轨迹来说,实现“搜索-预定-下单-支付-售后”的自动化。异常情况通过邮件等形式预警,手工介入处理。

(详细流程见此链接https://www.processon.com/view/link/5943ec7ae4b0bdefc0582e3e)

①正常情况下,涉及前台和用户行为的业务流程:

②涉及后台的产品数据&订单状态更新(部分简略):

2.接口总览

按接口类型和属性可分为三类:数据类、交易类和通知类。有一部分为美团接口,另一部分接口需要商家进行开发。

数据类:商家数据对接到美团(涉及到商家的4个接口,拉取产品信息、产品变化通知、拉取景点信息、拉取价格日历)
交易类:“用户——美团——商家”的交易行为(涉及到商家的5个接口)
通知类:包括商家开发的已出票、票已使用、已退款3个接口,美团自有的已退款、查余额、编审状态通知的3个接口。
异常问题

我做过的接口产品不多,但问题类似,主要包括两类:接口问题、产品问题。接口问题就是无响应、响应过慢、重复响应等,产品问题就是存量少、变价快、时间差导致下架更新不及时等。

在做接口相关的产品时,异常与正常流程同等重要,这与核心用户和边缘用户不是一个概念。所以在考虑每一步的流程时,必须兼顾异常问题的发生与解决方法,尽量避免损害用户体验和商家损失。

一般的解决方法是数据监控,通过对每个业务节点的多项指标进行监控,一旦超出阈值,就可以用邮件、短信等形式通知相关人员,及时解决问题。

接下来我们从两个方面具体探讨如何应对这些问题。

1.用户体验——具体场景&数据监控

对用户来说,流程的任一节点不顺畅,都会导致体验不好,故根据用户行为轨迹来进行数据监控。

①页面展示慢——接口响应时长、用户页面停留时长、跳失率

Reason:实时调接口查询景点&产品信息,因数据量大或频率快导致。
Solution:缓存数据,每N分钟更新一次。
②数据展示异常——后台返回接口异常的次数和概率

Reason:接口超时或异常。
Solution:可以设定重复调用,多次重试失败后,通过邮件等形式通知到运营、技术或商家。
针对数据型接口,对产品进行下架或隐藏处理。

针对交易型接口,下单、支付的问题可以提醒用户、为用户推荐同类产品、对产品进行下架或隐藏处理;退票类问题可以建议用户之后重试,如果比较紧急可以联系客服加急处理。

针对通知型接口,不涉及用户,邮件处理即可,可人工介入更新信息。

③产品变动,特别是变价——下单失败率、变价率、出票失败率

Reason:数据更新有时间差。
Solution:
当某一产品的失败率或变价率超出规定,可隐藏或下架;
针对某些产品库存少的情况进行提示,预告风险;
设定合理的定时更新任务。
④下单/支付/退票失败——失败率、失败原因

Reason:用户可能多次提交,或者订单已使用、已关闭等客观原因,无法成功。
Solution:
需要加入检验机制,比如在短时间内重复提交不调用接口,直接返回原结果;
善意提醒用户不要重复提交,如“您的手太快了,请休息30s后再试”;
可以提供IM人工或电话咨询、留言等选项。
⑤服务响应时间长——手工操作订单量和占比

Reason:比如用户提交退票后长时间不退款;支付后长时间不出票
Solution:
定时调用订单查询接口,更新订单状态并短信/推送消息告知用户;
超过服务规范时间前发送预警邮件,人工介入处理。
2.商家体验——数据监控&具体场景

对商家来说,用户体验不重要,转化率和利润才是重点,故数据监控以业务指标为主。

①重复生单、生单不支付占库存——订单量、订单支付转化率、支付失败率、库存占用量和支付量

Reason:用户手速太快;恶意占库存
Solution:制定规则,同一人只能占一个库存;同一订单最多只能订N个人。
②恶意重复调用接口——涉及到的每个接口调用频率

Reason:比如短时间重复调用某一接口
Solution:
规定同一IP地址不能在短时间内多次调用;
直接返回第一次调用接口的结果,不再重复调用;
每个接口在同一时间最多N次调用,否则返回失败等。
③因数据更新不及时等导致的亏损——(佣金、广告)投入产出比、人为损失

Reason:用户使用后退款完成、用户支付后变价等
Solution:根据时间差、处理规则来明确划定责任方。
④结算问题——财务对账自身支出(退款)和收入(美团给商家的结算金额)

Reason:平台和商家以“T+N”的方式结算
Solution:
B端订单系统里的财务对账功能,可以用邮件形式每日发送;
监测异常数据,如当日无结算、结算金额与订单金额不一致。
以上即为接口主要的应用对象和逻辑,逻辑不难但复杂度高,需要细心周到地考虑各种情况,希望能与大家一起讨论。

作为产品经理,懂接口是必须的相关推荐

  1. 产品经理懂技术=流氓会武术(zz)

    最近七年,我都在做互联网产品,其中前五年分别在创业公司和上市公司里,做别人的产品:近两年在创业,做自己的产品. 我的体会是:产品经理需要懂技术,创业者尤其需要.但前提是你总觉得有股憋不住的想要做点儿什 ...

  2. 产品经理懂点技术之:什么是前后端,他们怎么分工的?

    产品汪在验自己产品时,经常遇上bug了,就去找测试小姐姐,测试小姐姐看了看,就说:"这个找后台的XX吧","这个找前端的XX吧",小汪就好奇了,那么多程序猿哥哥 ...

  3. 产品经理懂点技术之:常见的网络传输方式

    终于等到了复工的时间,产品汪也迫(害)不(怕)及(至)待(极)的踏上了搭上了返工的地铁.回到公司,看到程序猿跟供应商正在群里聊着一个问题并@了自己,大致意思是,我方的系统需要定时从对方系统上获取账单进 ...

  4. 产品经理懂点技术:几种常用的系统开发方法

    常用的系统开发方法有: 结构化系统开发方法 原型法 面向对象方法 计算机辅助软件工程方法 下面一一为大家详细介绍: 1 结构化系统开发方法 结构化系统开发方法(Structured System An ...

  5. 产品经理懂点技术之:4K/8K

    近年来,4K.8K超高清可谓火爆,连2020年的央视春晚,都出现了他们的身影.本文将简单介绍一下什么是分辨率.4k/8k的创新.难点及前景的内容. 分辨率与像素 分辨率又称解析度,用于衡量印刷品.显示 ...

  6. 产品经理是否需要懂技术

    一 产品经理需要懂技术吗? 我的理解:产品经理只需了解"技术边界"和懂得开发的"最少必要知识"即可. 二 所谓"技术边界",其实就是问个问题 ...

  7. AI产品经理必懂5种技术关系

    http://www.woshipm.com/pmd/1629952.html AI产品经理在对于AI技术上都会有迷茫和焦虑,那么AI产品经理需要了解技术关系有哪些呢? 产品经理面临对AI技术都有迷茫 ...

  8. 轮播图最后一张图结束如何平缓回到第一张_产品经理早期如何学习?

    关于这个问题,多数同学学习的目的是就业,大学里面也没有产品经理专业,所以不会去考学分,也不需要考证,更不需要考研.产品经理是一个职位,我们学习的目的是如何能够用所学到的能力去就业,去工作.如果达到工作 ...

  9. 为什么不懂技术的人可以做产品经理?

    作为一个UI转行的产品经理,在学习技术的道路上,我觉得我是有发言权的. 产品经理要不要懂技术? 如果要问产品经理要不要懂技术,那我觉得要.产品经理懂技术可以带来以下好处: 1.有利于锻炼你的逻辑思维能 ...

  10. 应届生求职产品经理系列【三】:0岁产品经理的八大困惑(上)

    随着近几年互联网的火爆,越来越多的人开始投身于互联网.产品经理由于待遇尚可.硬性要求低.无专业限制.重沟通.重创意等特点,成为校招季互联网求职最火的方向. 但是在决定要不要all in 产品经理的过程 ...

最新文章

  1. centos 重启网络服务的方法
  2. Boost1.62.0 + VS2015 配置
  3. python资料库-Python 操作数据库之 records
  4. 保护眼睛的电脑设置_电脑文件加密怎么设置?一键快速保护重要文件
  5. 迭代列表不要For循环,这是Python列表推导式最基本的概念
  6. [Swift]LeetCode599. 两个列表的最小索引总和 | Minimum Index Sum of Two Lists
  7. 为啥你写的代码总是这么复杂?
  8. 【洛谷】P1111 修复公路
  9. 七月最后一波!微软专属内推码等你来抢
  10. 程序员为什么要懂物联网?
  11. JVM 内存管理、自带性能监测调优工具 (jstack、jstat)及 JVM GC 调优
  12. python利器-Python利器|给大家推荐几个既好看又好用的-Python编程器
  13. 实训-利用HTML+CSS制作某米官网首页
  14. js代码在调试状态执行正确,但是正常使用时没有反应
  15. GateWay 集成 Swagger
  16. 源代码加密几种简单方法
  17. java中23%5_23.5 jumpserver介绍
  18. Jenkins简介与应用
  19. 如何调试微信内置浏览器应用(企业号、公众号、订阅号)
  20. 怎么样才能在服务器显示皮肤,服务器怎么使用皮肤

热门文章

  1. Android Jetpack组件(九)DataStore
  2. CAD.net 根据句柄获取图元
  3. ice1000烧写程序_[转载]Altera FPGA的EPCS配置的2种方法FPGA下载程序的方法(EPCS)
  4. 24位掩码和30个掩码_高级ds位掩码和dp的问题
  5. WPS如何在同一篇文档针对不同章节设置不同的页眉页脚
  6. 字符串ucfirst解析
  7. 计算机访问网络延迟越低越好吗,内存延迟参数是否越低越好
  8. 批改网复制粘贴_如何使用批改网组织线上考试
  9. 用计算机问你叫什么名字,计算器功能有哪些呢
  10. Vue 电商后台管理项目阶段性总结