# 2.1.1 HTTP接口

# 网关地址

https://open.ainfinit.com/

# 接口规范

  • 使用 RESTful API 接口规范;
  • 请求header中包含Authorization字段,进行认证和校验,Authorization的生成规则请参考下文的安全策略;
  • 响应数据默认为JSON格式,包含status,messagedata三个字段,例如:
{
    "status": 10200,
    "message": "OK",
    "data": {
        "vendingMachine": {
            "id": 53,
            "code": "00e0671539e7",
            "location": "门头沟科技园区5号楼1层"
        }
 }

status含义和data格式请参考每个接口的说明.

# 系统全局状态码

响应json中的status状态码,用于表示业务含义

Code Description
200 成功
40101 认证失败

# 安全策略

出于安全考虑,所有api交互的请求必须携带签名信息,签名值作为Authorization字段保存在http请求的header中.

# 签名算法

  1. 将商户code和当前系统时间戳(Unix timestamp毫秒)组装成json格式字符串,例如{"merchant_code":"merchant","timestamp":1557218157315}.
  2. 商户的secret_key为密钥,使用AES算法(ECB模式,PKCS5Padding)对上一步生成的字符串进行加密,生成nonce_str.
  3. 将上一步骤生成的nonce_str加入步骤2的json字符串中,例如{"merchant_code":"zhonlgiang","timestamp":1557218157315 ,"nonce_str":"eyJzdWIiOiJjZTk4NmM0NjA2YWU0NGRjOTgzNmFmNmY1Y2E2NzFlMTciLCJib"},进行base64编码,生成最后的认证字段.可以参考以下sample进行验证。

签名样例

商户code为merchant,密钥为4UafmbIJroNY2lXX

  1. 组成json格式字符串{"merchant_code":"merchant","timestamp":1557218157315}
  2. 使用密钥进行AES加密生成nonce_str,放入上一步json数据中,注意按照json字段属性按照字母顺序
{"merchant_code":"merchant","nonce_str":"VSHv3B3PmL49R2Yphnx/HRkl6ULR34Aq/OI7UFNnLeuPngEvvV7HR+2DXPQQb8zcSxYZUWA1H3WxM4TxSfkPhg==","timestamp":1557218157315} 
  1. json格式数据进行base64编码,生成最终的签名
eyJtZXJjaGFudF9jb2RlIjoibWVyY2hhbnQiLCJub25jZV9zdHIiOiJWU0h2M0IzUG1MNDlSMllwaG54L0hSa2w2VUxSMzRBcS9PSTdVRk5uTGV1UG5nRXZ2VjdIUisyRFhQUVFiOHpjU3hZWlVXQTFIM1d4TTRUeFNma1BoZz09IiwidGltZXN0YW1wIjoxNTU3MjE4MTU3MzE1fQ==

可以参考2.1.2 接口签名示例(Authorization)页面的Java代码实现。

Last Updated: 2/27/2026, 10:27:52 AM