PAYATHON 2026

蜻蜓机刷脸支付后推荐的会员卡领卡链接提示无效

支付小周

结论

“领卡链接”不是会员卡模板地址或开发平台文档地址,也不能手工拼接。创建会员卡模板的支付宝应用需要调用 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 转义的内容。

仍然无效时如何排查

可以按以下顺序检查:

  1. 查看接口日志,确认业务调用成功,不能只根据 HTTP 状态码 200 判断。
  2. 检查响应中的业务错误码、sub_code 和 sub_msg。
  3. 确认填写的是接口返回的完整领卡 URL。
  4. 确认 template_id 是支付宝生成的会员卡模板 ID。
  5. 确认生成链接所用的 app_id 与创建模板的应用一致。
  6. 如果由第三方应用代商家调用,确认商家授权令牌有效,调用身份也正确。
  7. 确认没有混用沙箱和生产环境。
  8. 在支付宝客户端中测试原始链接能否正常打开领卡页面。
  9. 删除运营中心输入框中的原有内容后重新粘贴,排除不可见字符或换行的影响。
  10. 如果原始链接可以正常领卡,但运营中心仍提示无效,请保留 app_id、模板 ID、接口调用时间、请求流水号和错误截图,提交给支付宝技术支持核查运营中心的链接校验结果。

注意事项

领卡链接可能包含业务参数或应用信息,不宜公开发布。提交排查材料时,也不要暴露应用私钥、商家授权令牌等敏感数据。

开放平台的接口参数和会员卡产品规则可能发生调整。如果当前文档已不再提供 alipay.marketing.card.activateurl.apply,应改用会员卡产品页面列出的替代领卡链接接口。判断方式不变:运营中心需要填写开放平台接口正式返回的会员卡领卡投放链接,而不是手工构造的页面地址。

备注:内容仅供参考。