Skip to main content

📄 正文

通过推送绑卡(Push Provisioning),持卡人可以在您的应用内一键将 DCS 发行的 Visa 卡添加到 Apple Wallet(iOS)Google Wallet(Android),无需在钱包应用中手动输入卡号。作为持牌、自有 BIN 的发卡机构,DCS 负责对接 Apple / Google 的令牌化和绑卡授权。 与只能引导用户跳转的部分能力不同,DeCard 托管提供了自有的绑卡 REST 接口/card/v1/apple-bind-wallet/card/v*/google-bind-wallet):您的应用把钱包下发的加密材料转交 DCS,DCS 调用 Visa 令牌化(Tokenization)服务后,返回钱包所需的配置数据,由您的应用回传给系统钱包完成添加。
Apple Pay 新接入建议:优先使用 DCSProvisioningSDK。接入机构后端通过 POST /card/v1/bind-wallet-ticket 获取临时绑卡凭证(ticket),SDK 随后完成 PassKit 与 DCS 的交互。本页仍保留底层钱包绑卡 REST 接口,供您查询字段、维护现有直连接入或对接 Google Pay。
前置条件:用户需已完成 KYC 并成功开卡,拿到这张卡的标识(Apple 绑卡与 Google V1 用卡号后四位 cardMantissa,Google V2 用 cardId)。开卡流程见申请卡

核心概念:令牌化(Tokenization)

数字钱包通过令牌化保护卡片安全——令牌化会把真实卡号(PAN)替换为唯一的数字令牌(token):
  • 一卡一设备一令牌:每个「卡片 × 设备」组合生成独立令牌,互不影响。
  • 端到端保护:交易时使用令牌替代真实卡号,明文卡号不落到商户/钱包侧。
  • 令牌生命周期(5 阶段):生成(添加卡时创建)→ 激活(身份验证后启用)→ 使用(交易时替代真实卡号)→ 更新(定期轮换确保安全)→ 删除(移卡时销毁令牌)。

两条绑卡路径

本页重点说明应用内绑卡——您需要完成接入开发并调用 DCS 绑卡 API。手动绑卡无需开发,由持卡人在钱包应用中自行完成。

Apple Pay 手动绑卡(iPhone,3 步)

  1. 打开钱包应用:在 iPhone 上打开「钱包」应用,点击右上角的「+」号。
  2. 输入卡片信息:轻点或手持卡片靠近 iPhone 以添加;或轻点「手动输入卡片详细信息」,按屏幕说明操作。
  3. 身份验证:按提示选择验证方式(短信 / 邮件),输入验证码完成认证。

Google Pay 手动绑卡(Android,7 步)

  1. 打开 Google 钱包应用:持卡人打开 Google 钱包应用,必须登录其 Google 账户才能启用移动支付。
  2. 开始添加流程:持卡人点击「添加到钱包」开始手动绑卡。
  3. 选择支付卡:如出现提示,持卡人选择「支付卡」。
  4. 手动输入卡片信息:持卡人选择「或手动输入详细信息」,手输卡号、有效期和 CVV
  5. 同意条款:持卡人查看并同意条款和条件
  6. 身份验证:DCS 通过短信或电子邮件下发验证码,用于身份验证。
  7. 完成配置:持卡人输入验证码,成功后在 Google 钱包应用内收到确认。
具体步骤可能因手机型号、软件版本与钱包应用界面更新而略有差异,如有疑问请联系 DCS 团队。

四方角色

Apple 侧 DCS 角色为 BIN Sponsor、合作方为 Program Manager;Google 侧 DCS 角色为 Issuer、合作方为 Program Manager

业务接入流程(上线前一次性)

启用应用内绑卡前,您需要与 DCS、Apple 或 Google 完成一次性的授权与认证。Apple 与 Google 的接入流程不同:

Apple Pay 接入

Google Pay 接入

详尽的厂商侧逐屏操作以 Apple / Google 官方发卡机构文档为准,本页不复制其截图。更多接入细节请联系 DCS 团队。

应用内绑卡流程

接入完成后,持卡人每次在应用内点击“添加到钱包”,系统都会按下图交互。下图以 Apple 为例;Google 的流程相同,仅请求和响应字段不同。
下图展示底层直连时序。使用 DCSProvisioningSDK 时,应用只需把绑卡凭证与卡片参数交给 SDK,SDK 会处理 PassKit 设备数据与 DCS 之间的交换;见实现指南
应用内绑卡交互时序图应用内绑卡交互时序图
Apple 应用内绑卡的加密流程分为 9 步:① 应用启动绑卡 → ② 钱包向 Apple 请求证书与随机数 → ③ Apple 返回证书与随机数 → ④ 钱包把证书、随机数及其签名回传应用 → ⑤ 应用转交 DCS 绑卡服务 → ⑥ DCS 生成临时密钥对、加密支付数据和 OTP,并返回加密数据与临时公钥 → ⑦ 应用把加密数据、临时公钥和加密 OTP 发送给钱包 → ⑧ 钱包向 Apple 验证绑卡请求 → ⑨ Apple 与支付网络运营商(PNO)完成绑卡。 Apple Pay 应用内绑卡(In-App Provisioning)加密流程图:
Apple Pay 应用内绑卡加密流程图

绑卡 API

Apple 绑卡接口为 POST /card/v1/apple-bind-wallet(以卡号后四位 cardMantissa 定位卡片)。Google 绑卡提供 V1 / V2 两个版本,新接入统一使用 V2(以 cardId 精确定位卡片)。
Google V2 与 V1 的唯一差异是定位卡片的字段:V2 以 cardId 替代 cardMantissa 定位卡片。externalUserId 在两版均必填。其余字段一致。

Apple Pay 绑卡

请求字段

必填字段为 externalUserId / applePublicCertificates / appleNonce / appleNonceSignaturecardMantissa 可选。

请求示例(已脱敏)

响应

成功返回统一响应结构 { code, message, messageDetail, data },成功时 code = SYS_SUCCESSdata 为 Apple Wallet 完成令牌化所需的配置数据:

Google Pay 绑卡

请求字段

Google V2 的必填字段仅 externalUserId / cardIdclientCustomerId / deviceId 均为可选。V1 的必填字段仅 externalUserId

请求示例(V2,已脱敏)

响应

成功时 code = SYS_SUCCESSdata 为 Google Pay 令牌化所需数据:
所有示例值均为占位符。切勿在请求或日志中写入真实的 externalUserIdcardIdcardMantissa、加密材料、API Key/Secret 或任何持卡人个人信息。鉴权:上例为聚焦业务字段省略了鉴权头,实际调用必须携带 X-DAPI-API-KEY / X-DAPI-SIGN / X-DAPI-TIMESTAMP / X-DAPI-NONCE(HMAC-SHA256 签名),规则见鉴权指南

错误处理

绑卡前卡片必须处于正常可用状态:已激活、未冻结、未失效。卡状态不正常时先完成激活或解除限制,再发起绑卡。

测试说明

  • Push Provisioning 必须用生产卡测试——Visa 不提供沙盒令牌化卡片,完整绑卡流程无法在沙盒环境验证。
  • iOS 应用须通过 TestFlight 安装测试;直接从 Xcode 运行会导致绑卡失败。
当前绑卡成功或失败不会额外回传 Webhook 事件;接入机构应以本次绑卡 API 与 Apple/Google Wallet 返回结果为准。若需要异步绑卡事件,需要新增系统能力。

下一步