You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apple Wallet卡片添加后发送自定义推送通知?

实现Apple Wallet卡片添加后推送通知的有效方案

一、先搞定基础配置

  • 你的Wallet卡片(Pass文件)里必须包含webServiceURL和authenticationToken字段——这俩是Apple在用户添加/更新卡片时,给你服务器发回调的关键,少了就拿不到用户设备的推送令牌。
  • 确保你的APNs推送证书(或认证令牌)有效,对应的App ID得同时开启PassKit和Push Notifications权限。

二、获取用户设备的推送令牌(核心步骤)

当用户把Pass添加到Wallet时,Apple服务器会主动给你配置的webServiceURL发一个POST请求,路径是/v1/devices/<device-id>/registrations/<pass-type-id>/<serial-number>。你得在自己的服务器上实现这个接口,做两件事:

  1. 从请求体里提取pushToken字段——这就是该设备的APNs推送令牌,后续发推送全靠它。
  2. 把这个pushToken和对应的Pass信息(比如serialNumber)存在你的数据库里,关联起来。

三、正确构造APNs推送请求

你之前的请求缺了几个关键项,正确的请求得这么写:

1. 必须加的请求头

  • Authorization: 用APNs认证令牌(推荐)或者证书签名的Bearer令牌。令牌格式是bearer <你的JWT令牌>;如果用证书,请求时要带上对应的SSL证书。
  • apns-topic: 填你的Pass Type ID(比如pass.com.yourcompany.yourpass),或者关联App的Bundle ID。
  • Content-Type: 固定填application/json

2. 请求地址要分环境

  • 生产环境:https://gateway.push.apple.com/3/device/<拿到的pushToken>
  • 测试环境:https://api.sandbox.push.apple.com/3/device/<拿到的pushToken>
    别搞混环境,测试机用沙箱地址,正式用户用生产地址。

3. 合理的请求体

如果只是发添加成功的通知,用这个格式就够了,比你之前的更友好:

{
    "aps": {
        "alert": {
            "title": "卡片已添加成功",
            "body": "你的Wallet卡片已存入,随时可以查看使用"
        },
        "sound": "default"
    }
}

四、常见坑点排查

  • 别手动硬编码pushToken:你之前用的是示例令牌,实际必须从Apple的回调里动态获取,硬编码肯定发不出去。
  • 检查证书/令牌有效性:确认APNs的认证信息没过期,权限也开对了。
  • Pass配置要正确:webServiceURL得是公网可访问的地址,authenticationToken不能错,不然Apple的回调请求根本到不了你的服务器。

内容的提问来源于stack exchange,提问作者Sahil Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:03:31