PAYATHON 2026

支付宝小程序使用支付宝人脸认证功能是否收费?

支付老李

结论

支付宝小程序接入人脸认证不一定免费。是否收费、具体单价和计费方式,要看申请的是哪项能力、商户所属行业、调用量、签约方案以及当前开放政策。

接入时需要区分两类能力:

  • 只使用小程序端的人脸采集或活体检测能力。
  • 使用支付宝的身份核验服务,将采集到的人脸与实名身份信息进行比对。

第二类是完整的身份认证服务,更有可能按照认证次数、有效调用次数或签约套餐收费。小程序前端 API 可以调用,不等于配套的服务端认证能力免费。

收费政策可能调整,准确价格应以支付宝开放平台控制台中的能力详情、签约页面和商务合同为准。如果控制台没有公布单价,需要先提交能力申请,再向支付宝开放平台客服或对接人员确认。

为什么不能只根据 API 判断是否收费

支付宝人脸认证通常不是一个独立的前端接口,而是一套由前端和服务端共同完成的流程:

  1. 小程序向自己的服务端提交认证请求。
  2. 服务端调用支付宝身份认证初始化接口。
  3. 小程序根据初始化结果唤起支付宝认证页面。
  4. 用户完成人脸采集、活体检测和身份核验。
  5. 服务端查询最终认证结果。

小程序端只是认证入口,可能产生费用的是后台身份核验服务。因此,调用小程序 JSAPI 时没有立即扣费,并不表示整个认证流程不收费。

不同产品的计费口径也可能不同,例如:

  • 按发起认证的次数计费。
  • 按成功完成认证或产生有效结果的次数计费。
  • 根据调用量分档计费。
  • 使用预付套餐或商务合同价格。
  • 在特定行业、活动期间或一定调用额度内免费。

商户最终适用哪种方式,应以实际签订的协议为准。

如何确认实际收费标准

可以按以下步骤核实:

  1. 登录支付宝开放平台,进入对应的小程序。
  2. 在能力中心搜索“身份认证”“人脸认证”“实人认证”等能力。
  3. 查看能力详情中的准入条件、计费说明和服务协议。
  4. 申请能力并进入签约页面,确认页面是否列出单价、免费额度或套餐信息。
  5. 检查商户账单、服务商合同和开放平台结算规则。
  6. 如果页面没有明确标价,向支付宝开放平台客服提供小程序 appId、能力名称和预计调用量,询问当前商户适用的报价。

咨询时不要只说“刷脸”,最好提供计划调用的 OpenAPI 或具体产品名称。“人脸采集”“活体检测”和“实名身份比对”可能对应不同能力,收费规则也可能不一样。

典型接入流程

完整的认证流程一般由服务端创建认证任务。应用私钥和支付宝 OpenAPI 签名逻辑不能放在小程序前端。

以下代码仅用于说明流程。具体字段和返回结构应以当前已签约能力的官方文档为准:

// 小程序端:向业务服务端申请创建认证任务
my.request({
  url: 'https://api.example.com/face-certification/initialize',
  method: 'POST',
  data: {
    userId: 'CURRENT_USER_ID'
  },
  success: (response) => {
    const { certifyUrl, certifyId } = response.data;

    // 根据所接入能力的官方文档唤起认证流程。
    // 不同认证产品的 JSAPI 名称和参数可能不同。
    startCertification({
      certifyUrl,
      certifyId
    });
  },
  fail: (error) => {
    console.error('初始化认证失败', error);
  }
});

服务端负责完成签名、调用支付宝认证初始化接口,并保存认证流水号:

// 服务端伪代码,仅说明职责划分
async function initializeCertification(userId) {
  const requestBody = buildCertificationRequest(userId);

  const result = await callAlipayOpenAPI({
    method: '已签约产品对应的认证初始化接口',
    bizContent: requestBody
  });

  await saveCertificationRecord({
    userId,
    certifyId: result.certifyId,
    status: 'PROCESSING'
  });

  return {
    certifyId: result.certifyId,
    certifyUrl: result.certifyUrl
  };
}

认证结束后,应由服务端查询或接收认证结果:

async function queryCertificationResult(certifyId) {
  const result = await callAlipayOpenAPI({
    method: '已签约产品对应的认证结果查询接口',
    bizContent: {
      certify_id: certifyId
    }
  });

  return {
    passed: result.status === 'SUCCESS',
    status: result.status
  };
}

示例使用占位文字表示接口名,以免混淆不同的支付宝认证产品。开发时,应直接使用开放平台为当前应用开通的 API、参数和 SDK 示例。

注意事项

  • 不要用网上的旧报价估算成本。人脸认证的产品名称、准入条件和价格都可能调整。
  • 先确认计费节点是“发起”“有效调用”还是“认证成功”,否则重复提交可能带来额外费用。
  • 为每个业务请求设置唯一流水号并做好幂等控制,避免网络重试时重复创建认证任务。
  • 小程序端收到成功回调,不代表认证已经通过。认证结论应以服务端查询到的最终结果为准。
  • 采集和处理人脸信息前,应取得用户明确授权,并说明处理目的、处理方式、使用范围和保存期限。
  • 人脸信息属于敏感个人信息。应限制日志内容和数据保存范围,不要记录原始人脸图片、完整身份证号码或认证凭证。
  • 还需处理认证取消、超时、失败、用户拒绝授权和能力尚未开通等异常情况。

项目预算阶段应先申请所需能力并确认计费规则,再根据预计认证量计算成本。在没有看到具体产品的签约页面或合同之前,不能直接认定这项服务免费,也无法给出固定单价。

备注:内容仅供参考。