QrCode - nxtele/http-api-document GitHub Wiki

二维码管理

利用二维码管理 API,您的商家可以创建和管理 WhatsApp 二维码,用户扫描后可以向您的商家号码发送预设消息。WhatsApp 二维码和短链接为商家创造了一个数字门阶,能帮助商家维持与现有客户的联系并与新客户建立联系。通过这种方式,客户只需使用移动设备的相机扫描二维码或输入短链接,即可开始对话,而无需输入电话号码。

运作方式

WhatsApp 二维码的工作流程:

  • 商家可以创建包含预设消息的二维码,用户扫描后会自动打开 WhatsApp 对话并填充该消息。
  • 每个二维码都有唯一的 code 标识和对应的深度链接(deep_link_url)。
  • 商家可以随时更新二维码的预设消息内容。
  • 支持获取单个二维码详情或列表查询。
  • 不再需要的二维码可以删除。

限制

  • 一个 WABA 电话号码关联的二维码和短链接数量不能超过 2,000。
  • 扫描二维码可发起一条预先填好的消息(最多包含 140 个字符的文本)。
  • 预设消息(prefilled_message)为必填参数。
  • 二维码创建后,code 值不可修改,但可以更新预设消息。
  • 删除的二维码无法恢复。

功能

此 API 包含 5 个接口:

// Create QR Code
/api/wa/createQrCode

// Get QR Code
/api/wa/getQrCode

// Update QR Code
/api/wa/updateQrCode

// Delete QR Code
/api/wa/deleteQrCode

// List QR Codes
/api/wa/listQrCodes

鉴权机制

鉴权规则请参考地址:API接口调用约定

请求参数

header参数:

参数名 类型 必选 示例值 说明
accessKey String fme2na3kdi3ki 用户身份标识
ts String 1655710885431 当前请求的时间戳(单位是毫秒),牛信服务端允许用户端请求最大时间误差为60秒
bizType String 2 WhatsApp业务类型,取固定值"2"
action String mt WhatsApp业务操作,取固定值"mt"
sign String 6e9506557d1f289501d333ee2c365826 API入参参数签名,签名算法

创建二维码

使用此端点创建一个新的 WhatsApp 二维码,用户扫描后可以发送预设消息。

接口

  • URL:https://api2.nxcloud.com/api/wa/createQrCode
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

body参数:

参数名 类型 必选 示例值 说明
appkey String xxx 应用appkey
messaging_product String whatsapp 发送消息的通道,应用于WhatsApp消息的发送时,值必须为"whatsapp"
business_phone String xxx 商户的WhatsApp号码,需要带国码。
prefilled_message String Cyber Monday 用户扫描二维码后预填充的消息内容
generate_qr_image String SVG 首选图片格式:SVGPNG

请求示例

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx",
    "prefilled_message": "Cyber Monday",
     "generate_qr_image": "SVG"
}

响应结果

参数 描述
code 状态码,0表示成功
message 响应消息
data对象 返回数据

data 对象

code 二维码的唯一标识符
prefilled_message 预填充的消息内容
deep_link_url 二维码对应的深度链接,用户可以通过此链接打开对话
qr_image_url 二维码图片地址【注意保存,该值在查询接口不会返回】

响应示例 SUCCESS

{
    "code": 0,
    "data": {
        "prefilled_message": "Cyber Monday",
        "code": "XWSX6W323G5HJ1",
        "deep_link_url": "https://wa.me/message/XWSX6W323G5HJ1",
        "qr_image_url": "https://scontent-hkg4-1.xx.fbcdn.net/m1/v/t6/An_itZzcZpwq7DikZr4GKSObhCgJt1SymdZSti1STsAzKTkfxXjlE9pAMzOhexcnQqR-eJoB5B2JHOMQa2-eSHKsmIFev_Qw-9z0CZJ-sMA2oBqQnThAmRTr1E7i_Y-cmh7IthT3Ez9D?edm=ADZZtP0EAAAA&_nc_gid=c9-Wvukne06Ui-BIJbp0EA&_nc_oc=AdkmH_3P7Q3VMw0ylWkx1GuMoWmDNaxp1q1HtxUcXELmCokjqh-bsEPXm086bdFgZwc&ccb=10-5&oh=00_Afs66uP2TqtYWdSHbL7QyXz1OT4thCAOjyFHCCUDgmbCtw&oe=69CA0455&_nc_sid=5a413f"
    },
    "message": "success"
}

异常响应示例

{
    "code": 0,
    "data": {
        "error": {
            "code": 100.0,
            "message": "(#100) The parameter prefilled_message is required.",
            "type": "OAuthException",
            "fbtrace_id": "A4zvp8rZeQFGiXlLwTPttn_"
        }
    },
    "message": "success"
}

更新二维码

使用此端点更新已存在的二维码的预设消息内容。

接口

  • URL:https://api2.nxcloud.com/api/wa/updateQrCode
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

body参数:

参数名 类型 必选 示例值 说明
appkey String xxx 应用appkey
messaging_product String whatsapp 发送消息的通道,应用于WhatsApp消息的发送时,值必须为"whatsapp"
business_phone String xxx 商户的WhatsApp号码,需要带国码。
code String HUBPIKSFQEXLJ1MMM 要更新的二维码的唯一标识符
prefilled_message String Cyber Tuesday 更新后的预填充消息内容
generate_qr_image String SVG 首选图片格式:SVGPNG

请求示例

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx",
    "code": "XWSX6W323G5HJ1",
    "prefilled_message": "Cyber Tuesday",
     "generate_qr_image": "SVG"
}

响应结果

参数 描述
code 状态码,0表示成功
message 响应消息
data对象 返回数据

data 对象

code 二维码的唯一标识符
prefilled_message 更新后的预填充消息内容
deep_link_url 二维码对应的深度链接
qr_image_url 二维码图片地址【注意保存,该值在查询接口不会返回】

响应示例 SUCCESS

{
    "code": 0,
    "data": {
        "prefilled_message": "Cyber Tuesday",
        "code": "XWSX6W323G5HJ1",
        "deep_link_url": "https://wa.me/message/XWSX6W323G5HJ1",
        "qr_image_url": "https://scontent-hkg4-1.xx.fbcdn.net/m1/v/t6/An_itZzcZpwq7DikZr4GKSObhCgJt1SymdZSti1STsAzKTkfxXjlE9pAMzOhexcnQqR-eJoB5B2JHOMQa2-eSHKsmIFev_Qw-9z0CZJ-sMA2oBqQnThAmRTr1E7i_Y-cmh7IthT3Ez9D?edm=ADZZtP0EAAAA&_nc_gid=DL4P4JEUtW-FQwl9cF0LBQ&_nc_oc=AdkmH_3P7Q3VMw0ylWkx1GuMoWmDNaxp1q1HtxUcXELmCokjqh-bsEPXm086bdFgZwc&ccb=10-5&oh=00_Afs3l_W2F0c-SRph9XezDylC1bpRORrsFQ1nXLYrZxqJ-w&oe=69CA0455&_nc_sid=5a413f"
    },
    "message": "success"
}

删除二维码

使用此端点删除指定的二维码。删除后该二维码将无法使用。

接口

  • URL:https://api2.nxcloud.com/api/wa/deleteQrCode
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

body参数:

参数名 类型 必选 示例值 说明
appkey String xxx 应用appkey
messaging_product String whatsapp 发送消息的通道,应用于WhatsApp消息的发送时,值必须为"whatsapp"
business_phone String xxx 商户的WhatsApp号码,需要带国码。
code String HUBPIKSFQEXLJ1MMM 要删除的二维码的唯一标识符

请求示例

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx",
    "code": "HUBPIKSFQEXLJ1MMM"
}

响应结果

参数 描述
code 状态码,0表示成功
message 响应消息
data对象 返回数据
success 布尔值,true表示删除成功

响应示例 SUCCESS

{
    "code": 0,
    "data": {
        "success": true
    },
    "message": "success"
}

异常响应示例【二维码不存在】

{
    "code": 9001,
    "data": null,
    "message": "System business error"
}

获取单个二维码

使用此端点获取指定二维码的详细信息。

接口

  • URL:https://api2.nxcloud.com/api/wa/getQrCode
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

body参数:

参数名 类型 必选 示例值 说明
appkey String xxx 应用appkey
messaging_product String whatsapp 发送消息的通道,应用于WhatsApp消息的发送时,值必须为"whatsapp"
business_phone String xxx 商户的WhatsApp号码,需要带国码
code String HUBPIKSFQEXLJ1MMM 要查询的二维码的唯一标识符

请求示例

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx",
    "code": "XWSX6W323G5HJ1"
}

响应结果

参数 描述
code 状态码,0表示成功
message 响应消息
data对象 返回数据

data 对象

data数组 二维码信息数组
code 二维码的唯一标识符
prefilled_message 预填充的消息内容
deep_link_url 二维码对应的深度链接

响应示例 SUCCESS

{
    "code": 0,
    "data": {
        "data": [
            {
                "prefilled_message": "Cyber Tuesday",
                "code": "XWSX6W323G5HJ1",
                "deep_link_url": "https://wa.me/message/XWSX6W323G5HJ1"
            }
        ]
    },
    "message": "success"
}

异常响应示例 【二维码不存在】

{
    "code": 0,
    "data": {
        "data": []
    },
    "message": "success"
}

获取二维码列表

使用此端点获取商户号码下所有二维码的列表,支持分页查询。

接口

  • URL:https://api2.nxcloud.com/api/wa/listQrCodes
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

body参数:

参数名 类型 必选 示例值 说明
appkey String xxx 应用appkey
messaging_product String whatsapp 发送消息的通道,应用于WhatsApp消息的发送时,值必须为"whatsapp"
business_phone String xxx 商户的WhatsApp号码,需要带国码。
limit Integer 3 每页返回的二维码数量上限
after String 游标,用于获取下一页数据,从上一次响应的 paging.cursors.after 获取
before String 游标,用于获取上一页数据,从上一次响应的 paging.cursors.before 获取

请求示例1(分页查询)

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx",
    "limit": 3
}

响应结果

参数 描述
code 状态码,0表示成功
message 响应消息
data对象 返回数据
data数组 二维码信息数组
code 二维码的唯一标识符
prefilled_message 预填充的消息内容
deep_link_url 二维码对应的深度链接
paging对象 分页信息(仅在有更多数据时返回)
next 下一页的完整URL
cursors.after 下一页游标
cursors.before 上一页游标

data 对象

data数组 二维码信息数组
paging对象 分页信息(仅在有更多数据时返回)

data 数组

code 二维码的唯一标识符
prefilled_message 预填充的消息内容
deep_link_url 二维码对应的深度链接

paging 对象

next 下一页的完整URL
cursors.after 下一页游标
cursors.before 上一页游标

响应示例1(分页查询)

{
    "code": 0,
    "data": {
        "data": [
            {
                "prefilled_message": "Cyber Monday",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "嗨,云缨",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "My teammate is waiting for me",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            }
        ],
        "paging": {
            "next": "https://graph.facebook.com/v20.0/124871750714609/message_qrdls?limit=3&after=MTcwNTQ2MDQ5OCxRWlZAHTUJGREVTVTJLMQZDZD",
            "cursors": {
                "after": "MTcwNTQ2MDQ5OCxRWlZAHTUJGREVTVTJLMQZDZD"
            }
        }
    },
    "message": "success"
}

请求示例2(查询所有)

{
    "appkey": "xxx",
    "messaging_product": "whatsapp",
    "business_phone": "xxx"
}

响应示例2(查询所有)

{
    "code": 0,
    "data": {
        "data": [
            {
                "prefilled_message": "Cyber Monday",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "嗨,云缨",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "My teammate is waiting for me",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "Hi, I want to order.",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "Hi Luckin coffee",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            },
            {
                "prefilled_message": "Hi, I want to order",
                "code": "xxx",
                "deep_link_url": "https://wa.me/message/xxx"
            }
        ]
    },
    "message": "success"
}