淄博周村学校网站建设报价临海做网站

当前位置: 首页 > news >正文

淄博周村学校网站建设报价,临海做网站,北京网页设计公司招聘,网站文章标题改了 百度快照多久能改对于很多产品小白或求职者而言#xff0c;API接口是一个产品和研发领域的专业术语#xff0c;大家可能在文章或者PRD中都已经有接触过API接口的概念。 实际上#xff0c;接口的应用已经非常广泛和成熟#xff0c;这个概念主要活跃在公司内部的各系统之间的衔接和对接以及公… 对于很多产品小白或求职者而言API接口是一个产品和研发领域的专业术语大家可能在文章或者PRD中都已经有接触过API接口的概念。 实际上接口的应用已经非常广泛和成熟这个概念主要活跃在公司内部的各系统之间的衔接和对接以及公司间合作的场景。如果你可以认真看完这篇文章我相信你们对API接口的认识会更深入甚至超过90%的小白和求职者。 本文目录 API接口是什么 为什么我们需要API接口 API接口的核心 API接口的应用 一、API接口是什么 我们来以一个常见的数学公式理解API比如yx2当x2的时候y4对么 那此时我们把yx2称为接口x2称为参数y4称为返回结果那这个接口的功能就是能把我们输入的数加上2注意这里你可以发现接口自身是带有逻辑的。 类比地我们来理解一个常见的场景比如现在有一个可以把经纬度转化为城市的接口那当我输入经度是55°纬度是88°的时候接口通过自己的逻辑运算返回结果告诉我杭州市。 这样你就可以清晰地了解百度百科的官方解释了接口就是预先定义的函数逻辑他是供其他系统请求然后返回结果的一个东西。 二、为什么我们需要API接口 背景我们的业务系统涉及多方多面如果要一个公司或者一个系统把所有业务都做完那未免工作量太大了吧并且如果其他系统或公司有更好的运算逻辑那我们在设计功能的时候可以考虑利用接口进行开发。 核心需求利用现有接口可以降低开发成本缩短开发成本。 举个例子比如我是打车的APP现在我需要在我的页面上展现地图的功能对于我司而言新做地图功能未免成本过高那我们可以在高德开放平台或者百度地图的开放平台找到地图API这样的话我们只需要购买高德的服务部署调用高德地图API这样就可以快速在我们页面上线地图功能了。 三、API接口的核心 对于小白而言初看API文档可能是一头雾水的——从哪里看怎么看看什么是摆在面前的问题。 其实对于产品经理而言我们应该更关注这个公司可以提供什么样的API接口服务比如我知道高德可以提供地图API规划路线的API这样的话在我们设计功能和工作中就可以想到调用他们的服务或者参考。 所以产品小白们看不懂也不用过于担心未来工作中你也会更深入了解清楚因为看懂并不复杂以下是API接口的核心点所有的说明文档离不开这5个核心点。 以下说明均以微信开放平台为例说明文末有各开放平台的地址大家有空可以去学习。好了事不宜迟现在我们来建立一个场景。 我们现在有一个APP需要用户在购买的时候调起微信支付的API完成购买。请各位自动进入这个场景把自己当作一位产品经理。

  1. 接口地址 现在Now用户点击付款我们需要告诉微信我们要调起你们的收银台啦但去哪里告诉呢这就需要接口地址了也就相当于向微信的这条链接传输指定的数据。 一个链接地址不是我们理解的一个页面你可以理解是一个电话号码小白们要改变这个观念。 此时我们可以看到接口文档告诉我们链接是如下这条那我们现在已经拨通微信的电话了。
  2. 请求参数报文 我们现在需要告诉微信你想调用收银台对吧。那我们需要写下来此时生成的叫做报文也就是你想告诉这个接口的内容是什么相当于前文函数的输入x2。 一般来说报文的格式和内容都是按接口文档规定的。如下文就是微信开放平台对调起收银台的报文要求。 我们先来看前2个参数你现在跟微信在对话是不是应该先告诉微信你是谁这里微信的文档告诉你应该要用应用ID商户号来确定你的身份什么意思呢 比如你是A商户下面有abc三个APP所以微信要知道你是哪个商家下面的哪个APP要用收银台。这是非常重要的微信后面要把收到的钱打到对应的账户以及统计数据等。 那我们就在报文里面写下这两句话 appidwx2421b1c4370ec43b/appid我的应用ID是wx2421……. mch_id10000100/mch_id我的商户号是10000……. 好了现在微信知道你是谁了那你要告诉微信你需要微信支付帮你收多少钱对吧这里定义了货币类型和总金额也就是收什么货币收多少钱。 这里你看货币类型的必填写了否也就是说你也可以不告诉微信支付货币类型是什么因为他在后面备注了默认是人民币。 好的那我们写下两段报文 free_typeCNY/ free_type 我要收人民币 total_fee1/total_fee我要收1元 好了现在微信知道你是谁也知道要收多少钱了那接下来微信支付要把收钱结果告诉你呀因为你得知道用户是成功支付了才能继续发货服务啊等等的。所以这里我们用到通知地址就是告诉微信等下完事了他去哪里告诉你支付结果。那我们把地址写好 notify_urlhttp://wxpay.wxutil.com/pub_v2/pay/notify.v2.php/notify_url
  3. 返回结果 刚刚微信支付已经去收款了现在他要在我们留下的通知地址中告诉我们结果了。结果无非是两种成功收款收款不成功 1成功 很顺利现在用户成功付钱了并且微信也把成功的消息告诉我们了并且他还把用户支付的一些信息也告诉我们。 那这里就是微信支付成功收款后告诉我们的信息。 应用APPID商户号告诉你我成功扣款的是哪家商户的哪个APPID的交易。 业务结果成功或失败 2失败 在产品设计的时候我们往往很关注失败的情况当收款失败的时候微信同时会告诉你失败的原因如下图很好理解失败的原因有很多很多种我们在设计的时候往往要分析每种失败的原因为每个失败的原因设计页面和用户提示以确保用户能理解。 四、API接口的应用 前往查看演示 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.nio.charset.Charset; import org.json.JSONException; import org.json.JSONObject; import java.io.PrintWriter; import java.net.URLConnection;public class Example {private static String readAll(Reader rd) throws IOException {StringBuilder sb new StringBuilder();int cp;while ((cp rd.read()) ! -1) {sb.append((char) cp);}return sb.toString();}public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {URL realUrl new URL(url);URLConnection conn realUrl.openConnection();conn.setDoOutput(true);conn.setDoInput(true);PrintWriter out new PrintWriter(conn.getOutputStream());out.print(body);out.flush();InputStream instream conn.getInputStream();try {BufferedReader rd new BufferedReader(new InputStreamReader(instream, Charset.forName(UTF-8)));String jsonText readAll(rd);JSONObject json new JSONObject(jsonText);return json;} finally {instream.close();}}public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {URL realUrl new URL(url);URLConnection conn realUrl.openConnection();InputStream instream conn.getInputStream();try {BufferedReader rd new BufferedReader(new InputStreamReader(instream, Charset.forName(UTF-8)));String jsonText readAll(rd);JSONObject json new JSONObject(jsonText);return json;} finally {instream.close();}}public static void main(String[] args) throws IOException, JSONException {// 请求示例 url 默认请求参数已经URL编码处理String url https://api-gw.onebound.cn/taobao/item_get/?key您自己的apiKeysecret您自己的apiSecretnum_iid652874751412is_promotion1;JSONObject json getRequestFromUrl(url);System.out.println(json.toString());}}