蜻蜓机刷脸支付后推荐的会员卡领卡链接提示无效
结论
“领卡链接”不是会员卡模板地址或开发平台文档地址,也不能手工拼接。创建会员卡模板的支付宝应用需要调用 alipay.marketing.card.activateurl.apply,获取接口返回的领卡投放链接,再将完整链接填写到运营中心。
如果接口返回的链接仍被判定为无效,应检查应用、会员卡模板和运营中心账号是否属于同一商家主体,同时确认链接没有被转码、截断或通过短链跳转。
为什么会提示“链接无效”
通常有以下几种原因:
- 填写了会员卡模板 ID、模板详情页或普通活动页,而非领卡接口生成的投放链接。
- 手工拼接了
alipays://、生活号或 H5 地址,格式不符合运营中心的校验规则。 - 领卡链接由另一个支付宝应用生成,与运营中心或会员卡模板的归属关系不一致。
- 会员卡模板尚未创建成功,或当前状态不允许投放。
- 复制链接时遗漏了参数,或者将
&转成了&。 - 对整个链接再次进行 URL 编码,导致系统无法识别。
- 使用了短链、二维码解析结果、中间跳转地址,或通过第三方域名包装了原始链接。
- 接口调用环境与实际投放环境不一致,例如混用了沙箱数据和生产环境中的模板。
正确的生成流程
1. 确认应用和会员卡归属
先在支付宝开放平台核对以下对象的归属关系:
- 创建会员卡模板的支付宝应用;
- 调用领卡链接接口时使用的
app_id; - 配置刷脸支付后推荐方案的商家账号;
- 蜻蜓设备绑定的商家或门店。
这些对象原则上应处于同一个可授权、可投放的业务关系中。如果由服务商代商家调用,还需根据实际接入模式使用正确的商家授权令牌,不能用服务商自己的会员卡模板代替商家模板。
2. 获取有效的会员卡模板 ID
先调用会员卡模板创建接口完成模板创建,并保存平台返回的模板 ID。不要把商户自定义的模板编号当作支付宝返回的 template_id。
模板必须已经创建成功。是否还需要通过审核、启用或完成特定配置,应以当前会员卡产品后台显示的状态和对应接口文档为准。
3. 调用领卡链接申请接口
使用创建该会员卡模板的应用调用:
alipay.marketing.card.activateurl.apply
核心请求参数通常是支付宝会员卡模板 ID。不同 SDK 版本使用的模型类和可选参数可能不同,请以当前接入的 SDK 和开放平台接口文档为准。
Java SDK 的调用结构示例如下:
AlipayClient alipayClient = new DefaultAlipayClient(
"https://openapi.alipay.com/gateway.do",
APP_ID,
APP_PRIVATE_KEY,
"json",
"UTF-8",
ALIPAY_PUBLIC_KEY,
"RSA2"
);
AlipayMarketingCardActivateurlApplyRequest request =
new AlipayMarketingCardActivateurlApplyRequest();
request.setBizContent("{"
+ "\"template_id\":\"YOUR_ALIPAY_CARD_TEMPLATE_ID\""
+ "}");
AlipayMarketingCardActivateurlApplyResponse response =
alipayClient.execute(request);
if (response.isSuccess()) {
String applyCardUrl = response.getApplyCardUrl();
System.out.println(applyCardUrl);
} else {
System.err.println(response.getCode());
System.err.println(response.getSubCode());
System.err.println(response.getSubMsg());
}
其中,YOUR_ALIPAY_CARD_TEMPLATE_ID 必须替换为支付宝实际返回的模板 ID。getApplyCardUrl() 是常见 SDK 的取值方式。如果当前 SDK 使用了不同的字段名称,应以接口响应中的领卡 URL 字段为准,不要照着示例猜测字段。
4. 原样填写接口返回值
接口调用成功后,将返回的领卡链接直接复制到运营中心的“领卡链接”输入框。填写时注意:
- 不要再次调用
URLEncoder.encode(); - 不要把链接放入自己的跳转页;
- 不要转换为短链接;
- 不要填写二维码图片地址;
- 不要删除查询参数;
- 不要将
&替换为&; - 清除链接前后的空格和换行。
如果链接曾被写入 HTML,应直接从原始接口响应中复制,不要从页面源码中复制已经过 HTML 转义的内容。
仍然无效时如何排查
可以按以下顺序检查:
- 查看接口日志,确认业务调用成功,不能只根据 HTTP 状态码
200判断。 - 检查响应中的业务错误码、
sub_code和sub_msg。 - 确认填写的是接口返回的完整领卡 URL。
- 确认
template_id是支付宝生成的会员卡模板 ID。 - 确认生成链接所用的
app_id与创建模板的应用一致。 - 如果由第三方应用代商家调用,确认商家授权令牌有效,调用身份也正确。
- 确认没有混用沙箱和生产环境。
- 在支付宝客户端中测试原始链接能否正常打开领卡页面。
- 删除运营中心输入框中的原有内容后重新粘贴,排除不可见字符或换行的影响。
- 如果原始链接可以正常领卡,但运营中心仍提示无效,请保留
app_id、模板 ID、接口调用时间、请求流水号和错误截图,提交给支付宝技术支持核查运营中心的链接校验结果。
注意事项
领卡链接可能包含业务参数或应用信息,不宜公开发布。提交排查材料时,也不要暴露应用私钥、商家授权令牌等敏感数据。
开放平台的接口参数和会员卡产品规则可能发生调整。如果当前文档已不再提供 alipay.marketing.card.activateurl.apply,应改用会员卡产品页面列出的替代领卡链接接口。判断方式不变:运营中心需要填写开放平台接口正式返回的会员卡领卡投放链接,而不是手工构造的页面地址。
备注:内容仅供参考。
