Apple Wallet 云端管理台

本台同时是 Apple Web Service 端点(https://pkss.dinfo.me/applepass)与管理后台。用 iPhone Safari 打开下方生成的卡链接即可完成真机注册与推送测试。

0. 卡面编辑器(内容 / 配色 / 营销文案 / 图标)

切换门店请在上方选择(自动跳转)


内容









配色

点击色块选颜色,下方文本框自动同步 rgb 值(也可手填 rgb 反向同步色块)。预设配色一键套用。

预设配色


营销文案(默认,覆盖按月份硬编码)





图标上传(留空则保持现状;支持 logo.png / icon.png)




卡片实时预览(所见即所得)

积分 1200
logo
demo
Silver
▌▌▍▌▌▎▌▍▌▌▍▌▎▌▌▍▌▌

实时预览(pass.json · 当前门店 demo 会员)

{
    "formatVersion": 1,
    "passTypeIdentifier": "pass.com.dinatouch.loyaltycard",
    "serialNumber": "member_dalycity_demo",
    "teamIdentifier": "YVP2ZMZDCD",
    "organizationName": "Koi Palace",
    "description": "Koi Palace Daly City Member Card",
    "logoText": "Rewards",
    "foregroundColor": "rgb(243,224,192)",
    "backgroundColor": "#3a2a14",
    "labelColor": "rgb(210,180,140)",
    "relevantText": "开业大酬宾 8\/8日开业,大酬宾,欢迎您来",
    "locations": [
        {
            "latitude": 25.294722,
            "longitude": 110.313056,
            "relevantText": "开业大酬宾 8\/8日开业,大酬宾,欢迎您来",
            "maxDistance": 500
        }
    ],
    "barcode": {
        "format": "PKBarcodeFormatQR",
        "message": "https:\/\/yourbrand.com\/serve_card.php?token=demo",
        "messageEncoding": "iso-8859-1"
    },
    "storeCard": {
        "headerFields": [
            {
                "key": "points",
                "label": "积分",
                "value": "0"
            }
        ],
        "primaryFields": [
            {
                "key": "store",
                "label": "门店",
                "value": "Koi Palace"
            }
        ],
        "secondaryFields": [
            {
                "key": "name",
                "label": "会员",
                "value": "demo"
            },
            {
                "key": "tier",
                "label": "等级",
                "value": "Silver"
            }
        ]
    },
    "webServiceURL": "https:\/\/pkss.dinfo.me\/applepass",
    "authenticationToken": "2f240567e376df29c553874e838c4189"
}

1. 生成并下载 .pkpass(含真实 webServiceURL)



产物: F:\website\dinfo\testweb\pkss/membercard_dalycity_demo.pkpass。生成后把该文件放到可被 iPhone 访问的 URL(同域名下),用 Safari 打开即可添加。

2. 真机注册状态(当前门店:dalycity)

真机注册由 iOS 自动完成:添加卡时向 https://pkss.dinfo.me/applepass/v1/devices/{id}/registrations/... 上报 pushToken。下方为当前门店已注册设备列表。

{
    "9f99201e1366e751372878cb2b63b858": {
        "passType": "pass.com.dinatouch.loyaltycard",
        "serial": "member_dalycity_demo",
        "pushToken": "6f2f8288cc4a4c9e00744dfd5b281328b9548aa070f8b2591c871292439da434",
        "authToken": "2f240567e376df29c553874e838c4189",
        "member": "demo",
        "storeId": "dalycity",
        "updated_at": 1786112539
    }
}

3. 发起 APNs 推送(触发真机拉新卡面)


4. 清空注册表

5. 租户(门店)管理

在此增 / 改 / 删租户基本资料,自动写入 data/stores.json,无需手动编辑文件。删除租户会一并清理其注册数据与已生成的 .pkpass 文件,且禁止删除当前默认门店。

门店 ID 名称 默认 操作
dalycity Koi Palace
serramonte Koi Palace

新增门店


门店 ID 即租户标识(storeId),生成卡 / webServiceURL 回调用,创建后不可改。

基本资料






配色


证书(不同品牌各自证书时填写,留空用全局默认)



Google Wallet(Android)配置





Origins 每行一个(如 https://your-domain.com),用于 Google Wallet 保存链接白名单。凭证 service-account.json 需单独放入 apple/google/creds/。

6. Android / Google Wallet

状态:⚠️ 未就绪 (门店未启用 Google Wallet,请在区块 5 勾选启用)

6.1 生成 Google 保存链接(供 Android 用户领卡)



6.2 推送更新(触发 Android 用户钱包内卡面刷新)





Google Wallet 的"推送更新"是服务端 PATCH Object(无需像 Apple 那样发 APNs),用户下次打开钱包即见最新内容。凭证未就绪时此功能不可用。