1. 1.接入指南
飞来汇开放平台
  • 0.版本记录
  • 1.接入指南
    • 1.1 接入指南
    • 1.2 SDK接入指南
  • 2.平台认证
    • 获取access_token
      POST
  • 3.入网实名
    • 企业实名认证
      POST
    • 实名审核结果回调通知
      POST
    • 实名审核结果查询
      POST
    • 会员费率设置
      POST
    • 会员费率查询
      POST
  • 4.进件开户
    • 账户开通申请
      POST
    • 开户结果回调通知
      POST
    • 账户信息查询
      POST
  • 5.账户入金
    • 5.1 VA账户入金
      • 资金到账通知
      • 资金到账查询
    • 5.2 外币入账飞来汇
      • 创建/修改入账交易单
      • 查询入账交易单详情
      • 关联入账流水并发起入账申请
      • 入账申请审核结果查询
      • 交易订单入账审核结果回调
      • 查询补充贸易审核结果
      • 补充贸易背景审核结果回调通知
  • 6.账户提现
    • 查询可提现金额
      POST
    • 提现到账金额试算
      POST
    • 提现申请
      POST
    • 提现结果回调通知
      POST
    • 提现记录状态查询
      POST
    • 提现CNY换卡重发
      POST
  • 7.汇兑
    • 即时换汇汇率查询
      POST
    • 即时换汇申请
      POST
    • 即时汇兑结果回调通知
      POST
    • 即时换汇申请详情查询
      POST
    • 支持即时汇兑的货币对查询
      GET
  • 8.飞来汇账户
    • 账户余额
  • 9.通用接口
    • 文件上传
  • 10.附加说明
    • 附加说明
    • 返回码说明
  1. 1.接入指南

1.1 接入指南

1.1 准备工作#

进行飞来汇开放平台接入,需要在飞来汇开放平台注册开通开发者帐号,并拥有一个应用,并获得相应的client_id和client_secret,可开始接入流程。

1.2 流程说明#

飞来汇开放平台(Flyway Open Platform)是驼驼数科的开放平台,对外部合作伙伴提供开放API能力,如入网实名、进件开户等。
该整体流程为:
1.
第三方平台通client_id和client_secret,进行飞来汇开放平台认证获取access_token。
2.
平台会根据相应的client_id通过邮件方式下发AES密钥和飞来汇RSA公钥,第三方平台可以通过AES密钥对请求数据包进行加解密。
3.
第三方平台可以通过1.6.2的示例生成私钥,通过私钥进行签名,通过平台公钥对请求结果进行验签。
4.
第三方平台通过access_token进行接口调用API。接口调用需要对协议内容进行加密。
5.
KYC开户、账户入金、账户提现、资金汇兑调用流程,请查看1.7章节。

1.3 API调用说明#

1.3.1 请求Header#

1. 请求Header
除了【获取access_token】接口不需要access_token,其他接口都需要传输access_token
除了【获取access_token】接口不需要加密签名,其他接口都需要加密签名,加密签名方式,请查看【10.2 签名加密说明】
API协议采用https , Content-Type: application/json;charset=UTF-8
调用接口,access_token统一通过请求头header进行传输
头参数名:Authorization,参数值:Bearer+空格+access_token值
字段名是否必须字段类型最大长度字段说明
Authorization是String1024Bearer + 空格 + access_token值
Request-ID是String32唯一
Tuotuo-Signature是String256签名串
Tuotuo-Timestamp是String16单位:毫秒
其中:ciphertext为业务数据加密串,后面章节接口定义中的协议参数中data加密后的加密串。
2. 响应Header
字段名是否必须字段类型最大长度字段说明
Request-ID是String32唯一
Tuotuo-Signature是String256签名串
Tuotuo-Timestamp是String16单位:毫秒
HTTP/1.1 200
Server: TuoTuo/1.22.1
Date: Wed, 09 Aug 2023 06:04:15 GMT
Content-Type: application/json;charset=UTF-8
Request-ID: 2de71fd52602408a8afaf4ffe1142695
Tuotuo-Signature: WcQkjBLdmIYAoGsHneYBT1eH0jcq6s9MqhRq69Sl
Tuotuo-Timestamp: 1691134045524

{"code":200,"message":"请求成功","data":{"ciphertext":"rty789"}}

1.3.2 回调Header#

接口回调是指飞来汇调用第三方接口通知消息。通知回调的Header和请求Header的区别是:通知回调Header不包括:Authorization。
字段名是否必须字段类型最大长度字段说明
Request-ID是String32请求id,唯一
Tuotuo-Signature是String256签名串
Tuotuo-Timestamp是String16时间戳,单位:毫秒

1.4 域名地址#

环境域名说明
开发地址https://open-test.inflyway.com对IP白名单无限制
生产地址https://open.inflyway.com对IP白名单限制

1.5 接口加密#

1.5.1 加密密钥#

开发者自行对请求参数做 AES 加密然后再做 RSA 签名提交请求,AES密钥由飞来汇开放平台提供,通过邮件下发通知。

1.5.2 加密例子#

1.5.3 加密调用#

原文:
{
    "requestNo":"1517635190864238633205408",
    "bankCardNo": "10000000000006",
    "openID":"61bff460b5a74a6b91868de432e33ace",
    "bankAccountName": "mock company name.Ltd",
    "supplementInformation": {
    }
}
加密后:
{
    "ciphertext" : "rty789qeuoanl23nj23"
}

1.5.4 解密例子#

1.5.5 解密调用#

原文:
HTTP/1.1 200
Server: TuoTuo/1.22.1
Date: Wed, 09 Aug 2023 06:04:15 GMT
Content-Type: application/json;charset=UTF-8
Request-ID: 2de71fd52602408a8afaf4ffe1142695
Tuotuo-ClientId: C123456789
Tuotuo-Signature: WcQkjBLdmIYAoGsHneYBT1eH0jcq6s9MqhRq69Sl
Tuotuo-Timestamp: 1691134045524

{"ciphertext":"rty789"}
解密后:
{
    "code":200,
    "message":null
}
注:请将报文中属性为ciphertext的值,调用解密方法进行解密

1.6 请求签名#

1.6.1 签名说明#

RSA私钥与公钥皆是通过OPENSSL来生成得出的。商户一套公私钥,驼驼另有一套公私钥,双方交换各自的公钥。私钥用于生成签名串,公钥用于验签。(请妥善保管勿泄露)
按照Request-ID&Tuotuo-Timestamp的方式拼接,获取待签名字符串。&为分隔符
把待签名字符串与私钥一同进行签名运算,将运算后的数据进行base64_encode,从而得到签名结果字符串
当接收到响应后,把待签名字符串、公钥、参数中的sign进行base64_decode后的值三者一起进行验签

1.6.2 生成签名#

    /**
     * 测试生成RSA公私钥对
     */
    public static void testCreateKey() throws Exception {
        // 使用默认密钥长度 1024
        Map<String, String> keyMap = OpenRsaUtil.createKey(1024);
        
        String publicKey = keyMap.get("publicKey");
        String privateKey = keyMap.get("privateKey");
        
        System.out.println("生成的公钥: " + publicKey);
        System.out.println("生成的私钥: " + privateKey);
        System.out.println("公钥长度: " + publicKey.length());
        System.out.println("私钥长度: " + privateKey.length());
        
        // 验证密钥不为空
        assert !publicKey.isEmpty() : "公钥不应为空";
        assert !privateKey.isEmpty() : "私钥不应为空";
    }

1.6.3 签名例子#

1.6.4 验签例子#

1.7 调用时序图#

1.7.1 KYC开户#

image.png

1.7.2 账户入金#

image.png

1.7.3 账户提现#

image.png

1.7.4 账户付款#

image.png

1.7.5 资金汇兑#

image.png
修改于 2025-12-10 10:32:07
上一页
0.版本记录
下一页
1.2 SDK接入指南
Built with