精华内容
下载资源
问答
  • 2019-02-19 22:36:34
    说到API,往往是和SDK放在一起的。什么叫API,看一下餐厅里怎么点餐的就行了。
    

    到了饭店,喊一场服务员,点餐。服务员拿出来菜单给你看,你点什么,她在小本本上记什么。点好了之后,再把菜单送到后厨去。这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?点餐服务。
    点餐服务需要什么呢?谈一个服务,通常就是要谈输入是什么,输出又是什么。从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。有了输入和输出,服务员就可以提供了点餐的功能,这就是API顾客就是调用者,服务员就是服务的提供者。
    你可以在这里把服务员替换成猫猫,假设女王大人猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使用的。而且,所有的顾客都可以用这种方式来点菜 的再想想 ,是不是有的服务员手里拿的是点餐机? 想想一个漂亮的小姑娘,拿着一个和手机大小差不多的点餐机,这个点餐机,就是需要和后厨删除线格式 系统有交互,这种交互,就需要一种约束,来声明点菜功能的输入是什么,输出是什么。比如说,如果用户点了一道已经估清的菜,是不是服务员要告诉顾客一下?
    API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就

    可以来使用我。比如说,服务员是中国姑娘,顾客是美国人,没关系,只要美国人能说中国话,这套API就可以使用。如果美国人只会说英语,怎么办?让和美国人一起来吃饭的中国朋友翻译成中文,就可以了~~~~
    那么什么是SDK呢?当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。同样的,我们再把思维模式扩大一点。除了Http这种API,内部系统集成的组件,是否也是有API?你会发现,确实是这样的,比如说,JDK本身提供的各种API,在这里,API和SDK的概念没有那么清楚了,但是API本身的含义就是,当服务的提供方对外提供服务的时候,应该声明输入和输出和功能的明确含义。而一组组明确声明了的输入,输出和功能描述,就是服务方提供的各种API。比如说数组对外暴露的方法,链表对外暴露的方法等等。那么,API和方法之间有没有明显的区别呢?暴露出去的,可被公开使用的方法,统称为API~~~以上解释不够严谨,但是对于初学者来说,理解起来应该够了。如果你在理解API的时候有困难,大概问题并不是在API上,而是你有没有理解清楚什么叫做封装,什么叫做服务?

    更多相关内容
  • api对接什么意思由于第三方政策大调整,行业也逐渐紧缩,市场上需要接口的人越来越多,需要接口而又没办法轻松申请到接口,此时出现了api接口程序,解决了申请不了接口难题,api接口程序是接入第三方接口,接入...

    什么是API,相信很多人还不是很了解,而这对于从事互联网的技术人员一点也不陌生。那么什么是API呢?大家经常看到的API对接是什么意思呢?今天就重点来介绍下API对接是什么意思。

    api对接是什么意思

    由于第三方政策大调整,行业也逐渐紧缩,市场上需要接口的人越来越多,需要接口而又没办法轻松申请到接口,此时出现了api接口程序,解决了申请不了接口难题,api接口程序是接入第三方接口,接入之后可以无限下发接口,api接口程序适合很多行业使用:棋牌游戏,有些做棋牌游戏的不想使用平台自带接口或是想添加更多接口,api程序就可以实现;还有做商城的商家,需要接入接口,也可通过api程序实现对接接口;想做第四方支付接口的人,买一套api接口程序对接好第三方接口就可以无限给商户下发接口。

    API接口程序

    简单的说API接口程序就是整合市面所有的支付通道,全力给合作方提供多途径通道、倾情打造以互联网为支撑的全新营销渠道,实现资源共享、风险共担的全新网络支付程序。

    它功能齐全、覆盖范围广,货币流通顺畅,支持网银支付,开通了最安全最广泛的交易快捷通道。有了网银支付这一功能,我们的在线交易就得到全面完善,从而就给人们带来多种多样的在线交易方式。

    功能

    1、人性化界面,科学严谨,简洁易用的操作流程和管理界面。

    2、全方位通道优势

    程序可以接入多家支付公司,输入自己的ID和密钥就可以接入。

    3、程序支持功能定制

    4、完善的后台管理

    通过后台管理系统,方便查询定单管理、定单统计、商户管理、代理管理、系统设置、数据分析、比例设置等功能。

    上文就关于api对接是什么意思的相关解答,相信看完后你就懂了。

    公司简介

    99API(厦门乐榜网络科技有限公司)于2017年4月成立,是国内专业的数据接口服务与数据分析解决方案供应商。2018年12月25日上线http://99api.com,专注于数据挖掘、数据融合、数据分析和数据管理,为超过二十万企业、开发者、投资人提供数据服务,并覆盖全球17个国家地区。

    99API是厦门乐榜网络科技有限公司推出的国内专业的数据接口平台,是国内同时打通旅游、交通、资讯、应用商店的数据对接服务平台。其将人工智能与专业的大数据结合,通过标准的格式化数据结果以及一行即集成的理念,方便开发人员程序对接,大大降低了客户数据获取,数据清洗,数据整合的难度。自主研发的AI云爬虫分布式数据采集引擎,覆盖全球30000+网站,和1000+款APP。

    展开全文
  • 顺丰丰桥平台,顺丰丰桥接口.NET版本接口类。集成验证、下单、订单结果查询、订单筛选、路由查询等。
  • FedEx的公共API对接文档,接口文档中详细描述了各个服务参数,并带有示例代码。相当于一部FedEx的百科全书,讲解非常详细,方便第三方对接FedEx各个服务。
  • API(Application Programming Interface,应用编程接口),简单来说就是把不同的系统通过统一的接口协同一起来完成需求任务,就像像USB数据线一样不管两端连的是什么,都就可以使用。
  • 2. 订单信息接入 2.1 接口说明 2.2 订单接入接口描述 2.2.1通用技术描述 2.2.2安全及数据完整性 2.2.3【新一代寄递平台:订购服务申请】接口 2.2.4【新一代寄递平台:服务审核】接口 2.2.5【新一代寄递平台:下单取号】...
  • 百度 原生信息流广告转化数据API对接文档.pdf
  • API对接文档-模板文档

    2020-12-22 22:37:41
    免费API对接文档,服务器接口开发,模板规范
  • ERP对接webapi的架包_java,webapi的jar。金蝶云星空h
  • API对接实战

    千次阅读 多人点赞 2020-09-26 21:23:00
    在平时工作中,经常会遇到的一种场景是:A公司要对接B公司的API方法,这时,A公司就要阅读B公司的接口文档,从接口文档中找到自己需要对接API,并根据接口文档的要求,完成编码工作,最终完成对接工作。...

    目录

    一 背景

    二 了解B公司接口的基础约定

    三 基础域名

    四 请求及相应格式说明

    五 确定要对接哪些API

    六 根据API文档,编写一些基础工具类。

    七 根据API文档,编写必要的DTO

    八 针对每个API方法,进行对接

    九 对接代码结构

    十 一些对接技巧


    一 背景

    在平时工作中,经常会遇到的一种场景是:A公司要对接B公司的API方法,这时,A公司就要阅读B公司的接口文档,从接口文档中找到自己需要对接的API,并根据接口文档的要求,完成编码工作,最终完成对接工作。

    本篇是站在A公司的角度,去对接B公司API接口的实战。

    二 了解B公司接口的基础约定

    一般情况下,B公司都会给出以下类似约定来满足基础对接,并且会提供测试环境和正式环境的两套信息。

    appkey:A公司商户平台 id

    appsecret:A公司商户平台 secret

    三 基础域名

    一般情况下,B公司会提供测试环境和生产环境两个基础域名。

    例如

    测试环境 : https://api-b-dev.com.cn

    生产环境 : https://api-b-prod.com.cn

    四 请求及相应格式说明

    一般情况下,B公司会提供请求及相应的基础格式说明。

    例如:

    1 请求方式

    post

    2 请求消息格式

    application/json

    3 响应消息格式

    application/json

    4 请求公共参数

    例如,B公司有以下要求

    所有接口均需要以 Http Header 方式传递以下参数;

    参数名

    描述

    必填

    appkey

    商户平台 id

    request_id

    请求标识 ,每次请求唯一

    sign_type

    签名方法,固定为 sha256

    signature

    签名,算法为 HMACSHA256(appkey+timestamp+appsecret,appsecret)

    version

    版本, 固定为 2.0

    callback_url

    回调地址, 以 https://或者 http://开头并进行 base64 编码

    是(同步响应的接口可不必填写)

    timestamp

    时间戳(秒), 30 分钟过期

    当然,不同的公司提供的参数各不相同,因公司而异。

    5 响应/回调参数说明

    例如:B公司所有API都有响应,并且有的API还有回调响应,不论是响应还是回调响应,它们的参数格式都一样。

    参数

    类型

    描述

    code

    int

    状态码

    msg

    String

    消息

    request_id

    String

    请求时的 request_id

    data

    Object

    数据

    appkey

    String

    商户平台id

    6 针对异步回调的说明

    例如:B公司对异步回调说明如下:

    异步回调:

    某些特定的接口需要异步返回结果,因此需商户A提供一个回调地址,将其进行base64 编码后,配置在 Http 请求 Header 中的 callback_url 里。

    应答机制:

    应答机制是指当商户A收到B公司数据通知时,必须回写 success 字符串,不区分大小写,B公司收到该“ success”,便认为商户A已收到通知; 否则会继续重复请求回调接口 3 次, 时间间隔为 1s, 5s, 30s。如果 4 次都访问不通,则会间隔 3h 继续轮询回调。

    回调解密:

    回调使用 aes 加密,需解密后使用。为避免由于网络波动造成回调失败,长时间未收到回调,请主动查询。

    7 请求体加密说明及示例

    数据采用AES加密,加密后作为data的值。

    示例:

    加密前:

    {"settlement_code":["JS19BUB14F5D8D4C"],"random_code":["19BUB14F5D8D4C","19BUAD0E89D780"]}

    加密后:

    {"data":"236agZcupcSsMZghtlmzhb7lEWzGZc3FO5GWQyrSB5kP/y1ESvd+CuBgQiWU/fwAICY/s0mideku/rXSKEb8In41F4SkUVLyLzYoYGed4QTjsqohTM0T6wmbkOiT1TH3"}

    对 {"settlement_code":["JS19BUB14F5D8D4C"],"random_code":["19BUB14F5D8D4C","19BUAD0E89D780"]} 进行AES加密,结果为:

    236agZcupcSsMZghtlmzhb7lEWzGZc3FO5GWQyrSB5kP/y1ESvd+CuBgQiWU/fwAICY/s0mideku/rXSKEb8In41F4SkUVLyLzYoYGed4QTjsqohTM0T6wmbkOiT1TH3

    8 回调解密说明以及示例

    数据采用AES解密,解密data值部分,解密后是json字符串

    解密前:

    {
        "code":0,"
        "msg":"处理成功",
        "request_id":"47fbb4ce-ae8e-4276-9d4a-4d279c9dfa78",
        "data":"TI6H4Zx7YeWM0dSiial6L+nCvrEv8Oqk1ZFhWXqYZcRzzZyy/xECQW0nf
                DszpNDmRMlSmsWkBJMmu4a/PmBivUBoNJwFBzAnOfn8gtYKdxDU16lDFwN5d/I
                W1UJijJ2lU5YkDs/rMTyRN1NTR+0vJ1So0lmeZQiGQWEwE5t4wZykSC3cMQZyvJ95
                2J7KU6aBXv1ZUGncZbWHQQaLw4UxFaBWIO8bVlkBIAqzolswI4dhtqBzFwmdEx+7
                hzHSeidOVbIja5adgKMAjvIUTdtUEb/cO0ipO6QbK8wglk6dQ8+7rFTchBYIoaaqM9Sf
                hcdvAYuSGk6yHIyN4GEtLBA5Zw==",
        "appkey":"47fbb4ce-ae8e-4276-9d4a-4d279c9dfa78"
    }

    解密后:

    {
        "code":0,"
        "msg":"处理成功",
        "request_id":"47fbb4ce-ae8e-4276-9d4a-4d279c9dfa78",
        "data":
        {
            "settlement_code":"JS19BR19A690E9F9",
            "order_random_code":"09708757-7ea1-4fda",
            "refund_merchant_amount":54736.84,
            "refund_service_amount":263.16,
            "change_code":"FW19BRAA9A200255",
            "change_merchant_amount":4263.16,
            "change_service_amount":236.84
        },
        "appkey":"47fbb4ce-ae8e-4276-9d4a-4d279c9dfa78"
    }

    9 一般公司B还会对code值进行说明。

    五 确定要对接哪些API

    一般情况下,公司B会针对某个项目提供必要的API,我们往往只需要对接少部分API接口,因此,首先确认要对接哪些API方法。我们只需要按照API的要求进行对接即可。

    六 根据API文档,编写一些基础工具类。

    工具类分两类。一类工具类,公司B会提供DEMO,我们拿来用即可。另外一类就需要自己根据API要求自己编写了。

    1 公司B提供的基础工具类

    例如,公司B提供了AES加解密以及签名的工具类

    import org.apache.commons.codec.binary.Base64;
    
    import javax.crypto.Cipher;
    import javax.crypto.Mac;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    import java.security.Security;
    
    /**
    * AES加解密工具
    */
    public class EncryptUtil {
        private static final String CipherMode="AES/CBC/PKCS7Padding";
    
        private static final String EncryptAlg ="AES";
    
        private static final String Encode="UTF-8";
    
        private static final String APPSECRET = "7da8046aa2da46bfb08429058e910081";
    
        private static final String AESIV = "ff465fdecc764337";
        /**
         * 加密:有向量16位,结果转base64
         * @param context
         * @return
         */
        public static String encrypt(String context) {
            try { //下面这行在进行PKCS7Padding加密时必须加上,否则报错
                Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
                byte[] content=context.getBytes(Encode);
                Cipher cipher = Cipher.getInstance(CipherMode);
                cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(APPSECRET.getBytes(Encode), EncryptAlg), new IvParameterSpec(AESIV.getBytes(Encode)));
                byte[] data = cipher.doFinal(content);
                String result= Base64.encodeBase64String(data);
                return result;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 解密
         * @param context
         * @return
         */
        public static String decrypt(String context) {
            try {
                byte[] data=Base64.decodeBase64(context);
                Cipher cipher = Cipher.getInstance(CipherMode);
                cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(APPSECRET.getBytes(Encode), EncryptAlg), new IvParameterSpec(AESIV.getBytes(Encode)));
                byte[] content = cipher.doFinal(data);
                String result=new String(content,Encode);
                return result;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 生成 HMACSHA256
         * @param data 待处理数据
         * @param key 密钥
         * @return 加密结果
         * @throws Exception
         */
        public static String HMACSHA256(String data, String key) throws Exception {
            Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
            SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
            sha256_HMAC.init(secret_key);
            byte[] array = sha256_HMAC.doFinal(data.getBytes("UTF-8"));
            StringBuilder sb = new StringBuilder();
            for (byte item : array) {
                sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
            }
            return sb.toString();
        }
    
        public static void main(String[] args) {
            //test256();
            testEncrypt();
            //testdecrypt();
        }
    
        private static void testdecrypt() {
            String s1 = "TI6H4Zx7YeWM0dSiial6L+nCvrEv8Oqk1ZFhWXqYZcRzzZyy/xECQW0nf" +
                    "DszpNDmRMlSmsWkBJMmu4a/PmBivUBoNJwFBzAnOfn8gtYKdxDU16lDFwN5d/I" +
                    "W1UJijJ2lU5YkDs/rMTyRN1NTR+0vJ1So0lmeZQiGQWEwE5t4wZykSC3cMQZyvJ95" +
                    "2J7KU6aBXv1ZUGncZbWHQQaLw4UxFaBWIO8bVlkBIAqzolswI4dhtqBzFwmdEx+7hzHSeid" +
                    "OVbIja5adgKMAjvIUTdtUEb/cO0ipO6QbK8wglk6dQ8+7rFTchBYIoaaqM9Sf" +
                    "hcdvAYuSGk6yHIyN4GEtLBA5Zw==";
            System.out.println(decrypt(s1));
        }
    
        private static void testEncrypt() {
            String s = "{\"name\":\"小明\",\"certificate_num\":\"451121196209260032\",\"certificate_type\":1,\"phone_num\":\"1388888888\",\"merchant_id\":\"c7c114d5da444df2b5d47a66c9c11111\"}";
            String afterEncrypt  = encrypt(s);
            System.out.println(afterEncrypt);
        }
    
        private static void test256() {
            // 签名算法
            String s2 = "c7c114d5da444df2b5d47a66c9cbd3fc16010271967da8046aa2da46bfb08429058e910081";
            String key = "7da8046aa2da46bfb08429058e911111";
            try {
                String s1 = HMACSHA256(s2,key);
                System.out.println(s1);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    2 根据API要求自己编写的工具类

    例如:根据公司B的要求,编写特定的post方法

    // 满足公司B的post方法
    public static String sendPostByJsonWithHeader(String url, String body, Map<String, String> headers) throws Exception {
        CloseableHttpClient httpclient = HttpClients.custom().build();
        HttpPost post = null;
        String resData = null;
        CloseableHttpResponse result = null;
        try {
            // 封装 url,并且是 post 请求。
            post = new HttpPost(url);
            HttpEntity entity = new StringEntity(body, Consts.UTF_8);
            // 基本配置
            post.setConfig(RequestConfig.custom().setConnectTimeout(30000).setSocketTimeout(30000).build());
            // 封装消息头
            if (null != headers && !headers.isEmpty()) {
                for (Entry<String, String> entry : headers.entrySet()) {
                    post.setHeader(entry.getKey(), entry.getValue());
                }
            }
            // 消息头支持 json
            post.setHeader("Content-Type", "application/json");
            // 封装数据
            post.setEntity(entity);
            // 发送请求
            result = httpclient.execute(post);
            if (HttpStatus.SC_OK == result.getStatusLine().getStatusCode()) {
                // 返回结果
                resData = EntityUtils.toString(result.getEntity());
            }
        } finally {
            if (result != null) {
                result.close();
            }
            if (post != null) {
                post.releaseConnection();
            }
            httpclient.close();
        }
        return resData;
    }
    
    // 生成header的方法
    private static Map<String, String> generateHeader(String callbackUrlParam) {
        Map<String, String> headers = new HashMap<>();
        // 商户结算平台 id,固定
        headers.put("appkey", Constant.appkey);
        // 请求标识 ,每次请求唯一,动态数据
        String requestID = UUID.randomUUID().toString();
        headers.put("request_id", requestID);
        // 时间戳(秒),30 分钟过期,动态数据
        Date date = new Date();
        String timestamp = String.valueOf(date.getTime() / 1000);
        headers.put("timestamp", timestamp);
        // 签名方法 ,暂支持 sha256
        headers.put("sign_type", "sha256");
        // 签名,算法为 HMACSHA256(appkey+timestamp+appsecret),动态生成
        String signatureStr = Constant.appkey + timestamp + Constant.appsecret;
        String signature = null;
        try {
            signature = EncryptUtil.HMACSHA256(signatureStr, Constant.appsecret);
        } catch (Exception e) {
            e.printStackTrace();
        }
        headers.put("signature", signature);
        // 版本, 本文档为 2.0
        headers.put("version", "2.0");
        // 回调地址, 以 https://或者 http://开头并进行 base64 编码
        String callbackUrl = callbackUrlParam;
        if (callbackUrl != null) {
            // 需要对callbackUrlParam进行base64 编码,然后赋值给 callbackUrl
            Base64.Encoder encoder = Base64.getEncoder();
            byte[] textByte;
            try {
                textByte = callbackUrlParam.getBytes("UTF-8");
                callbackUrl = encoder.encodeToString(textByte);
                headers.put("callback_url", callbackUrl);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    
    
        // 项目编号,暂不支持
        headers.put("project_code", null);
        return headers;
    }

    七 根据API文档,编写必要的DTO

    针对每个API,主要包含请求DTO,响应DTO,回调响应DTO,这个就要跟踪API要求,编写满足要求的DTO。

    当然有些DTO是可以抽象成一个类,例如一般响应DTO和回调响应DTO都是一样的,这个时候就可以抽象为一个DTO了。

    例如:

    package GDDto;
    
    /**
    * @className: GDCommonRes
    * @description: 共同响应结果
    * @date: 2020/9/24
    * @author: cakin
    */
    public class GDCommonRes {
        /**
         * 状态码
         */
        private int code;
        /**
         * 消息
         */
        private String msg;
        /**
         * 请求时的 request_id
         */
        private String request_id;
        /**
         * 数据
         */
        private String data;
        /**
         * appkey
         */
        private String appkey;
    
        public int getCode() {
            return code;
        }
    
        public void setCode(int code) {
            this.code = code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public String getRequest_id() {
            return request_id;
        }
    
        public void setRequest_id(String request_id) {
            this.request_id = request_id;
        }
    
        public String getData() {
            return data;
        }
    
        public void setData(String data) {
            this.data = data;
        }
    
        public String getAppkey() {
            return appkey;
        }
    
        public void setAppkey(String appkey) {
            this.appkey = appkey;
        }
    }

    八 针对每个API方法,进行对接

    做好以上准备工作,就可以一个个接口进行对接了。可采用下面方式一个一个接口进行对接。

    public static void main(String[] args) {
        // 1. 批量创建结算单    回调接口。
        // batchSettlement();
        // 2. 查询结算单       非回调接口。
        //querySettlement();
        // 3. 结算单退款       回调接口。
        refundSettlement();
        // 4. 授权签约      非回调接口。
        // authorizSigned();
        // 5. 获取签约结果     非回调接口。
        // querySigned();
    }

    九 对接代码结构

    十 一些对接技巧

    1 遇到问题,如果需要公司B的帮助,需要主动和公司B的对接人员交流,尽快找到问题所在。

    2 有些基础代码,如果公司B能提供,主动要一下,如果确实因为信息安全问题,公司B不方面提供,那就得自己写了,写完后,如果不确定代码是否符合B的要求,可以发给公司B的对接人员看看,以确定代码的正确性。

    3 学习公司B的接口文档中好的地方,应用到自己的工作中。

    4 委婉指出接口文档中的错误和不足,帮助公司B文档质量改进,这样在对接时,公司B的对接人员也会更热心的帮助你。

    5 公司A的对接代码,放到正式代码的test目录中,一来可以方便调用正式代码中的工具类,二来方便将对接代码移植到正式代码中。

    展开全文
  • 现在电商行业发展很快,很多企业订单量大,手写快递单比较慢,所以开通对接电子面单打印API接口就成了很多企业迫切需要的功能; 关于电子面单: 电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热...

    现在电商行业发展很快,很多企业订单量大,手写快递单比较慢,所以开通对接电子面单打印API接口就成了很多企业迫切需要的功能;

    关于电子面单:

    电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。

    电子面单的应用主要包括电子面单接口和电子面单服务等内容,通过整合平台优化服务,可减少电子面单所受限制,使电子面单的应用更广泛使用更便捷优质。电子面单的单号是卖家向合作的快递公司去购买的。快递公司会给到一个号段,然后卖家在此号段之内,可以在电脑上打单操作。

    电子面单样式:
    常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)
    目前我国电子面单的接口主要有三种方式,分别是快递公司电子面单接口、快递鸟电子面单接口、菜鸟电子面单接口和拼多多电子面单接口:

    1、快递公司接口

    由各个快递公司单独开发的接口,面向商家。商家需先注册账号申请对接,快递鸟与快递公司确定相应网点及具体信息,然后快递公司进行揽件派送,但商家每联系一家快递公司就需要进行一次对接。流程简便,但应用范围稍受限制,使用不同快递公司业务,需向各家快递公司申请对接。

    2、菜鸟电子面单接口

    菜鸟接口在使用时可一次对接四通一达、EMS、宅急送、德邦等十五家快递公司,但不能与顺丰对接。商家在网络上向菜鸟发起对接申请,菜鸟将服务申请转移到相应的快递公司,然后快递公司与商家联系确认具体的合作细节,热敏打印纸由快递公司提供,打印机即可由商家自行购买也可由相应网点提供。在打印从菜鸟网络生产的面单号后完成电子面单打印,快递公司相应网点进行揽件派送。

    3、快递鸟电子面单接口

    快递鸟接口同样可支持30多家快递公司(四通一达、百世、邮政、顺丰、德邦等),并且可与顺丰对接,与顺丰对接时可选择使用顺丰的电子面单服务或者快递鸟的电子面单服务。快递鸟为独立电商、仓储和物流等系统平台提供电子面单接口,客户在快递鸟网络上选择快递公司并进行在线发货。快递鸟在接收由快递公司得到的数据之后,通知相应快递公司的合适网点进行揽收派送。在下单成功后,快递鸟还可进行快递路径的监控,方便客户查看。

    菜鸟和快递鸟的电子面单接口平台的适用范围广泛,免去了商家使用各家快递公司的电子面单时分别对接各个快递公司的繁琐,他们的业务既有重叠又有各自突出的特点和适用性,为不同需求的客户提供相应的快递服务。

    接口定义及说明

    由于,当前快递鸟支持的电子面单接口相对于其他家的有一定优势;所以以下主要以快递鸟为例进行展开阐述一一说明。
    Api接口请求地址:快递鸟

    请求方式:POST

    编码:UTF-8

    系统级参数(公共参数)
    常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)
    常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)
    常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)
    请求示例:

    {
                              "OrderCode": "012657018199",
                              "ShipperCode": "SF",
                              "PayType": 1,
                              "MonthCode": "1234567890",
                              "ExpType": 1,
                              "Cost": 1.0,
                              "OtherCost": 1.0,
                              "Sender": {
                                "Company": "LV",
                                "Name": "Taylor",
                                "Mobile": "15018442396",
                                "ProvinceName": "上海",
                                "CityName": "上海市",
                                "ExpAreaName": "青浦区",
                                "Address": "明珠路"
                              },
                              "Receiver": {
                                "Company": "GCCUI",
                                "Name": "Yann",
                                "Mobile": "15018442396",
                                "ProvinceName": "北京",
                                "CityName": "北京市",
                                "ExpAreaName": "朝阳区",
                                "Address": "三里屯街道"
                              },
                              "Commodity": [
                                {
                                  "GoodsName": "鞋子",
                                  "GoodsQuantity": 1,
                                  "GoodsWeight": 1.0
                            },
                            {
                               "GoodsName": "衣服",
                               "GoodsQuantity": 1,
                               "GoodsWeight": 1.0
                            },
                              ],
                              "AddService": [
                                {
                                  "Name": " INSURE ",
                                  "Value": "1000"
                            },
                                {
                                  "Name": "COD",
                                  "Value": "1020"
                            " CustomerID ": "1234567890"
                                }
                              ],
                              "Weight": 1.0,
                              "Quantity": 1,
                              "Volume": 0.0,
                              "Remark": "小心轻放"
                            }
    展开全文
  • 美团券对接API文档

    2016-09-01 15:50:12
    美团券开发的接口和测试账号
  • 封装了VMLogin提供的api,有使用vmlogin的同志可以使用该源码.不用你自己封装对接调用了。@阿杰大大。
  • DSP对接文档。。广告接入DSP中的广告同步,审核查询,广告上下线等。
  • 对接金蝶的demo,帮助快速对接金蝶webapi,金蝶,java,webapi帮助工具
  • 调研美团、饿了么、口碑外卖
  • php对接百度翻译代码
  • 代付系统API+手工代付系统+代付系统+微信支付宝代付系统+代付程序+多平台对接 这套代付系统简单易懂,对接了微信支付宝QQ的和第三...平台提供简单的API对接文档方便一切接口快速接入! 代付通道 本平台支持微信支付宝Q
  • java C# PHP 支付宝微信支付api接口 以及详细接口文档和demo
  • 微信公众号使用fastapi对接werobot框架的视图生成源代码,自己编写的原创代码,100%可用!
  • 平台api对接

    千次阅读 2019-02-14 20:11:05
    在工作日常中,跨平台api对接是再正常不过的事情了,例如,需要调用api,这个api:免费api ,这是个免费的获取天气信息Get Api。 为了调用这个api,我们需要使用Apache的网络通信java包:org.apache....
  • 压缩包里有一个中通对接的类,一个手画面单的文件夹. 本人水平有限, 也希望大家给我挑挑毛病, 欢迎联系我,咱们共同改进这个类.
  • API接口生成签名与验证签名思路,本文只提供生成签名的思路和验证签名的思路,不喜勿碰
  • 新一代轻型API接口网络验证系统,app专用网络验证,服务端使用Discuz插件框架,PHP脚本语言+MySQL数据库的高效组合。独创框架、代码分离、独特加密、动态验证、支持二次开发扩展,是功能最大强的收费管理系统。客户端...
  • 关于API技术对接

    万次阅读 2017-10-26 16:06:12
    API的技术是见证当前网络时代的发展,什么api,我们要如何运用这项技术,都能在文章中体现
  • 这是一个第三方支付的一些资源文档,里面有开发的api文档和源码,希望对朋友们有帮助,也可以希望大家有所改进,一起分享
  • 快递API接口对接分析

    2019-08-14 01:07:01
    NULL 博文链接:https://guoxiangyuan.iteye.com/blog/2314924
  • API 手工代付系统源码,多平台微信支付宝代付系统源码,这套代付系统简单易懂,对接了微信支付宝 QQ 的和第三方 API 代付,也可以自己对接其他平台,很不错的一套代付源码,有需要的自行下载研究。 系统特点: 1、...
  • 使用Delphi对接企业微信API,例子中演示了如何通过Delphi获取Token,获取部门成员,进行消息推送。测试时需要对下载源码中的TestForm.pas进行修改,仅需要将企业微信的一些信息替换成自己的。编译出来的exe需要和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,399
精华内容 29,759
关键字:

api对接是什么意思