支付宝小程序使用支付宝人脸认证功能是否收费?
结论
支付宝小程序接入人脸认证不一定免费。是否收费、具体单价和计费方式,要看申请的是哪项能力、商户所属行业、调用量、签约方案以及当前开放政策。
接入时需要区分两类能力:
- 只使用小程序端的人脸采集或活体检测能力。
- 使用支付宝的身份核验服务,将采集到的人脸与实名身份信息进行比对。
第二类是完整的身份认证服务,更有可能按照认证次数、有效调用次数或签约套餐收费。小程序前端 API 可以调用,不等于配套的服务端认证能力免费。
收费政策可能调整,准确价格应以支付宝开放平台控制台中的能力详情、签约页面和商务合同为准。如果控制台没有公布单价,需要先提交能力申请,再向支付宝开放平台客服或对接人员确认。
为什么不能只根据 API 判断是否收费
支付宝人脸认证通常不是一个独立的前端接口,而是一套由前端和服务端共同完成的流程:
- 小程序向自己的服务端提交认证请求。
- 服务端调用支付宝身份认证初始化接口。
- 小程序根据初始化结果唤起支付宝认证页面。
- 用户完成人脸采集、活体检测和身份核验。
- 服务端查询最终认证结果。
小程序端只是认证入口,可能产生费用的是后台身份核验服务。因此,调用小程序 JSAPI 时没有立即扣费,并不表示整个认证流程不收费。
不同产品的计费口径也可能不同,例如:
- 按发起认证的次数计费。
- 按成功完成认证或产生有效结果的次数计费。
- 根据调用量分档计费。
- 使用预付套餐或商务合同价格。
- 在特定行业、活动期间或一定调用额度内免费。
商户最终适用哪种方式,应以实际签订的协议为准。
如何确认实际收费标准
可以按以下步骤核实:
- 登录支付宝开放平台,进入对应的小程序。
- 在能力中心搜索“身份认证”“人脸认证”“实人认证”等能力。
- 查看能力详情中的准入条件、计费说明和服务协议。
- 申请能力并进入签约页面,确认页面是否列出单价、免费额度或套餐信息。
- 检查商户账单、服务商合同和开放平台结算规则。
- 如果页面没有明确标价,向支付宝开放平台客服提供小程序
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 示例。
注意事项
- 不要用网上的旧报价估算成本。人脸认证的产品名称、准入条件和价格都可能调整。
- 先确认计费节点是“发起”“有效调用”还是“认证成功”,否则重复提交可能带来额外费用。
- 为每个业务请求设置唯一流水号并做好幂等控制,避免网络重试时重复创建认证任务。
- 小程序端收到成功回调,不代表认证已经通过。认证结论应以服务端查询到的最终结果为准。
- 采集和处理人脸信息前,应取得用户明确授权,并说明处理目的、处理方式、使用范围和保存期限。
- 人脸信息属于敏感个人信息。应限制日志内容和数据保存范围,不要记录原始人脸图片、完整身份证号码或认证凭证。
- 还需处理认证取消、超时、失败、用户拒绝授权和能力尚未开通等异常情况。
项目预算阶段应先申请所需能力并确认计费规则,再根据预计认证量计算成本。在没有看到具体产品的签约页面或合同之前,不能直接认定这项服务免费,也无法给出固定单价。
备注:内容仅供参考。
