AIRUDDER API
  1. 加解密对接
AIRUDDER API
  • API 文档介绍
  • Introductions
  • 快速上手
  • Quick Start
  • 鉴权方法
    • 验证并获取令牌
      POST
  • Get the Authorization token
    • Token Authentication and Obtain
      POST
  • 全局错误代码
    • 全局错误代码
  • Error Codes
    • Error Codes
  • 催收
    • 快速上手
    • 调用任务相关 API
      • 创建外呼拨打任务
      • 列出已创建的任务
      • 停止一个呼叫任务
      • 取消指定任务中的某个电话的拨打
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取任务详细信息
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取机器人列表
      • 根据callid获取电话信息和录音链接
    • 调用计划相关的API
      • 获取策略列表
      • 创建策略计划拨打任务
      • 获取计划状态信息
      • 获取计划内任务轮次信息
      • 列出已创建的任务
      • 停止一个呼叫任务
      • 取消计划中的某个电话的拨打
      • 计划结束状态通知
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取任务详细信息
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取计划内某个电话所有的通话录音
  • Collection
    • Quick Start
    • APIs Related to Calling Tasks
      • Create a Calling Task
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Specific Task
      • Webhook of Task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Call Recordings
      • Fetch robot list
    • APIs Related to Calling Plans
      • Obtain the List of Strategies
      • Create a Dialing Plan with Strategy
      • Obtain the Information of Plan Status
      • Obtain the Information of Each Round of the Plan
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Plan
      • Webhook of Plan
      • Webhook of Task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Task Recordings
      • Obtain All Call Recordings of a Number in the Plan
  • 营销&电商
    • 快速上手
    • 调用任务相关的API
      • 创建拨打任务
      • 列出已创建的任务
      • 停止一个呼叫任务
      • 取消某个任务电话拨打
      • 获取任务详细信息
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取机器人列表
      • 根据callid获取电话信息和录音链接
    • 调用计划相关的API
      • 获取策略列表
      • 创建策略计划拨打任务
      • 获取计划状态信息
      • 获取计划内任务轮次信息
      • 列出已创建的任务
      • 取消一个呼叫任务
      • 取消计划中的某个电话的拨打
      • 计划结束状态通知
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取任务详细信息
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取计划内某个电话所有的通话录音
  • Telemarketing & E-commerce
    • Quick Start
    • APIs Related to Calling Tasks
      • Create a Calling Task
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Specific Task
      • Webhook of task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Task Recordings
      • Fetch robot list
    • APIs Related to Calling Plans
      • Obtain the List of Strategies
      • Create a Dialing Plan with Strategy
      • Obtain the Information of Plan Status
      • Obtain the Information of Each Round of the Plan
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Plan
      • Webhook of Plan
      • Webhook of Task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Call Recordings
      • Obtain All Call Records of a Number in the Plan
  • 信审
    • 快速上手
    • 调用任务相关的API
      • 创建拨打任务
      • 列出已创建的任务
      • 停止一个任务拨打
      • 取消某个任务电话拨打
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取任务详细信息
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取机器人列表
      • 根据callid获取电话信息和录音链接
    • 调用计划相关的API
      • 获取策略列表
      • 创建策略计划拨打任务
      • 获取计划状态信息
      • 获取计划内任务轮次信息
      • 列出已创建的任务
      • 停止一个任务拨打
      • 取消计划中的某个电话的拨打
      • 计划结束状态通知
      • 任务结束状态通知
      • 任务电话维度拨打结束状态通知
      • 获取任务详细信息
      • 获取单个案件通话录音
      • 获取任务录音文件
      • 获取计划内某个电话所有的通话录音
  • Info Check
    • Quick Start
    • APIs Related to Calling Tasks
      • Create a Calling Task
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Specific Task
      • Webhook of task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Task Recordings
      • Fetch robot list
    • APIs Related to Calling Plans
      • Obtain the List of Strategies
      • Create a Dialing Plan with Strategy
      • Obtain the Information of Plan Status
      • Obtain the Information of Each Round of the Plan
      • List the Task Created
      • Cancel a Calling Task
      • Cancel a Certain Call in a Plan
      • Webhook of Plan
      • Webhook of Task
      • Webhook of Call
      • Obtain the Detailed Information of Tasks
      • Obtain a Call Recording
      • Obtain Call Recordings
      • Obtain All Call Records of a Number in the Plan
  • Workflow 工作流
    • 预测式外呼信息回调
      • PDS 坐席状态更改回调
      • PDS 联系人状态更改回调
      • PDS 任务状态更改回调
    • 创建一个新的Workflow任务
    • 获取workflow模板列表
    • 为workflow任务新增名单
    • 更新workflow任务内的名单信息
    • 取消workflow任务内某个电话的后续流程
    • Workflow外呼电话拨打结束通知 (催收/营销/电商示例)
    • Workflow外呼电话拨打结束通知 (信审示例)
    • 自定义API 节点数据推送
    • 验证 自定义API 节点数据推送
    • 停止workflow任务
    • 获取workflow任务列表
    • 获取workflow实例的子任务列表信息
    • 获取workflow节点运行的外呼任务
    • 获取workflow外呼任务明细 (催收/营销/电商示例)
    • 获取workflow外呼任务明细(信审示例)
    • 根据callee/caseid和taskid/workflow_id获取电话信息和录音链接
    • 根据callid获取电话信息和录音链接
    • 获取workflow里单个电话的所有录音
    • 通过 case_id/callee 查询 workflow_id
    • workflow 名单结束通知
    • workflow 状态变更通知
    • 获取workflow节点运行的WABA任务
    • 获取workflow内WABA任务明细
    • Workflow内WABA Template消息状态变更通知
    • Workflow内Chatbot会话结束通知
    • 【J&T】Workflow内电话拨打完成&WABA状态变更&Chatbot会话结束通知
  • Workflow
    • Webhooks of the Info of Predictive Dialer System
      • Webhook of Predictive Dialer Task Status Changes
      • Webhook of Predictive Dialer Contacts Status Changes
      • Webhook of Predictive Dialer Agents Status Changes
    • Create a New WorkFlow Task
    • Obtain the List of Workflow Templates
    • Add lists to an workflow task
    • Update the List Info of Workflow Task
    • Cancel the processes for a specific list
    • Notification of Call Completion in Workflow (Debt Collection/Marketing/E-commerce)
    • Notification of Call Completion in Workflow(Info Check)
    • Custom API Node Data Push
    • Verify the Custom API Node Data Push
    • Stop the Workflow Task
    • Obtain the Workflow Task List
    • Obtain the Subtask List of the Workflow
    • Obtain the Outbound Task List of Workflow
    • Obtain the Outbound Task Details of Workflow(Collection/Telemarketing/E-commerce)
    • Obtain the Outbound Task Details of Workflow(Info Check)
    • Obtain Call Information and Recording Links by callee/caseid and taskid/workflow_id
    • Obtian Call Information and Recording Link by Call ID
    • Obtain All the Recordings of a Single Number in the Workflow
    • Query workflow_id using case_id/callee
    • Notification for Workflow List Completion
    • Notification of Workflow Status Change
    • Obtain the WABA Tasks List of Workflow
    • Obtain the WABA Task Details of Workflow
    • Notification of WABA Message Status Alteration in Workflow
    • Chatbot Session End Notification in Workflow
  • 加解密对接
    • API接口使用AES加解密对接
    • API接口使用AES加解密对接-示例
    • API Integration with AES Encryption/Decryption
    • API Interface with AES Encryption/Decryption - Example
  • WorkFlow_LeadsGeneration
    • Webhooks of the Info of Predictive Dialer System
      • Webhook of Predictive Dialer Task Status Changes
      • Webhook of Predictive Dialer Agents Status Changes
      • Webhook of Predictive Dialer Contacts Status Changes
    • Create a New WorkFlow Task
    • Obtain the List of Workflow Templates
    • Add Workflow Contacts
    • Update the List Info of Workflow
    • Cancel a Call
    • End Status Notification from the Dimension of Phone Call
    • Stop the Workflow Task
    • Custom API Data Push
    • Verify the Custom API Data Push
    • Obtain the Task List of Workflow
    • Obtain the Subtask List of the Workflow
    • Obtain All the Recordings of a Single Number in the Workflow
  • Flex_Route
    • LendSwift-Outbound-Push-Data-to-AI-Rudder
    • SDR-Webpage-Push-Data-to-Workflow
    • Talmarket Debt-Consolidation Push Data to Make Outboud Call
    • Use AI Rudder Make Outbound Call
  • API_Store
    • Push-Data-to-Boberdoo-After-EnablementData-Inbound-Call
    • AI Rudder Ping Doucet Before Transfer
  • DIDI营销定制
    • 获取机器人列表
    • 获取机器人详情
    • 创建外呼拨打任务
  • Chatbot
    • 接入准备
    • 错误码
    • HSB关于custom字段使用说明
    • 华为
      • api
        • 用户发送消息
        • 转人工结果
      • webhook
        • 回调机器人回复消息
        • 回调转人工申请
        • 结束会话
    • bot
      • 用户发送消息
      • 回调机器人回复消息
      • 回调转人工申请
      • 回调结束会话
    • 查询可用WABA账号
    • 查询模版列表
    • 查询模版详情
    • 发送模版消息
    • 查询模版消息发送结果
    • 回调模版消息发送结果
    • 发送单个模版消息接口
    • 回调单个模版消息用户响应
    • 回调转人工申请
    • 回调坐席消息发送之后的状态变更
    • 回调转人工后用户发送的消息
    • 回调会话结束事件
    • 转人工结果
    • 查询会话列表
    • 查询消息列表
    • 将用户消息标记为已读
    • 发送普通消息
    • 结束会话
    • 上传文件
    • 上传文件(谷歌地图缩略图)
    • 会话结束后上报
    • 查询公司所有渠道信息
    • 用户发送的消息事件上报
    • 渠道发送的消息事件上报
    • 渠道发送的消息状态变更事件上报
    • 获取公司信息
    • 查询运单号物流轨迹
    • 重开会话
  • Chatbot English
    • Quick Start
    • Error Code
    • bot
      • User send message
      • Callback bot reply message
      • Callback transfer to agent request
      • Callback for ended session
    • Query available WABA accounts
    • Query the template list
    • Template details
    • Send template message
    • Query the template message sending result
    • Callback template message sending result
    • Send single template message
    • Callback single template message user response
    • Callback agent transfer request
    • Callback status change after the message is sent
    • Callback message sent by user
    • *Callback agent transfer request
    • *Callback for status change after the agent message is sent
    • *Callback for messages sent by the user after transferring to agent
    • Callback for session end event
    • Agent transfer result
    • Query conversation list
    • Query message list
    • *Query message list
    • Mark user message as read
    • Send regular message
    • End session
    • Upload file
    • Upload file (Google maps thumbnail)
    • Report after session ends
  • Inbound Callback
    • inbound业务对接介绍
    • Inbound Business Integration Guide
    • 转人工成功后通知
    • Notification after Successful Transfer to an Agent
    • 电话结束后通知
    • Notification after the Call Ends
  1. 加解密对接

API Integration with AES Encryption/Decryption

1. Implementation Plan#

API requests support the AES+sha256 encrypted signature authentication scheme. AES is used to encrypt request parameters and response data, while sha256 digest signatures applied to both request parameters and response data.

1.1 AES Encryption Parameter#

Key: A string of length 16/24/32 (digits/letters), corresponding to 128/196/256-bit encryption respectively. Test key:airudderredduria. To obtain production keys, please contact us in advance.
Encryption ECB
Padding zeropadding (\0)
The examples are in Python; the actual implementation language is flexible.
def aes_encrypt(text, aeskey):
    """aes encryption"""
    
    if isinstance(text, str):
        text = text.encode("utf8")
    enc_secret = AES.new(aeskey.encode("utf-8"), AES.MODE_ECB)
    # ECB Padding: ECB requires the plaintext length to be multiple of the block size, so the text must be padded accordingly. This document specifies zero-padding(\0) for alignment. 
    tag_string = text + (AES.block_size - len(text) % AES.block_size) * b"\0"  
    cipher_text = base64.b64encode(enc_secret.encrypt(tag_string))
    return cipher_text


def aes_decrypt(text, aeskey):
    """aes decryption"""

    if isinstance(text, str):
        text = text.encode("utf8")
    dec_secret = AES.new(aeskey.encode("utf-8"), AES.MODE_ECB)
    raw_decrypted = dec_secret.decrypt(base64.b64decode(text))
    clear_val = raw_decrypted.rstrip(b"\0")
    return clear_val

1.2 sha256 Signature Method#

Encode the raw data in utf-8 and take the lowercase hexadecimal value of its sha256 digest.
The examples are in Python; the actual implementation language is flexible.
def sha256_sign(text):
    """sha256 signature"""
    
    if isinstance(text, str):
        text = text.encode("utf8")
    return hashlib.sha256(text).hexdigest()

2. Encrypting Request Data and Decrypting Response Data#

2.1 The connecting party should process the request as follows before sending#

.Add Is-Encrypted 1 in the request HEADER to mark whether it is encrypted
.Add Signed xxx in the request HEADER to mark the sha256 signature value
{
    "Is-Encrypted": "1",
    "Signed": "6956d7af4c89b89f19f9ae0a8be4bcf12abe7c6ed893691733f3480ad3f3aabc"
}
*.The raw encrypted request data is divided into GET requests and POST requests.
The raw encrypted data for GET requests is the URL-encoded value of all parameters (i.e., query_string)
The raw encrypted data for POST requests is the JSON-dumped value of the parameters (i.e., body)

*.Encrypt the raw data to generate encrypted data, and replace the original with the encrypted version. Then calculate the sha256 signature of the original data, place it in the request header, and send the request.

2.2 If the request is encrypted, the corresponding response will also be encrypted. The connecting party should decrypt the response as follows#

.Add Is-Encrypted 1 in the response HEADER to mark whether it is encrypted
.Add Signed xxx in the response HEADER to mark the sha256 signature value
*.The response data is the encrypted data (i.e., content)
*.Decrypt the encrypted response to obtain the raw data, and then generate a sha256 signature of this decrypted data and compare it with the Signed value in the response HEADER. Only proceed with further processing if the signatures match.
修改于 2025-07-03 05:50:01
上一页
API接口使用AES加解密对接-示例
下一页
API Interface with AES Encryption/Decryption - Example
Built with