PAYATHON 2026

智能手表端支付宝二维码扫码支付开发文档与合作流程咨询

支付老李

明确结论

目前有相关技术资料和接入路径,但要在手表上实现“支付宝二维码扫码支付”,首先要确认具体的业务模式:

  • 如果由手表生成订单二维码,再由消费者使用支付宝扫码付款,通常需要评估支付宝开放平台的当面付、统一收单和二维码支付等产品,并由商户服务端创建交易。
  • 如果手表展示的是用户个人付款码,由商户扫码扣款,则属于条码支付场景。此类业务对接入权限、终端安全、商户资质和风控的要求通常更高,不能只凭普通开放平台账号直接实现。
  • 不建议手表直接保存或调用支付宝私钥,也不应把支付签名逻辑放在设备端。常见做法是由手表展示二维码,服务端调用支付宝接口,再由服务端接收并校验支付结果。

具体产品、接口权限和合作流程,应以支付宝开放平台当前页面、签约产品说明及商务审核结果为准。

先确认二维码的使用方式

手表显示二维码,用户扫码付款

流程通常如下:

  1. 商户服务端创建订单。
  2. 服务端调用支付宝二维码支付接口,获取二维码内容或二维码地址。
  3. 服务端将二维码内容下发给手表。
  4. 手表展示二维码。
  5. 用户使用支付宝扫码并完成付款。
  6. 支付宝向服务端发送异步通知。
  7. 服务端验签,并核对订单金额和商户订单号,再更新订单状态。
  8. 手表通过轮询或设备长连接获取支付结果。

这种方式更接近“订单二维码支付”或“扫码支付”。

手表显示用户付款码,商户扫码扣款

这类流程通常是:

  1. 用户在手表上展示付款条码或二维码。
  2. 商户收银设备扫描该码。
  3. 商户系统发起扣款交易。
  4. 支付宝返回支付结果。

这种模式涉及付款码安全、动态码刷新、交易限额、设备认证和风控策略。普通应用不能自行生成或伪造支付宝付款码,设备厂商需要先确认是否具备相应产品的接入资格。

推荐的技术架构

建议将系统拆成三部分:

  • 手表端:负责登录态展示、二维码渲染和支付状态显示。
  • 商户服务端:负责创建订单、调用支付宝接口、保存订单、验签和处理通知。
  • 支付宝开放平台:负责交易处理、支付结果通知和交易查询。

基本链路如下:

手表 → 商户服务端 → 支付宝开放平台
  ↑          ↓
  └── 支付状态查询或推送 ──┘

设备端只接收短期有效的二维码数据或展示图片,不保存应用私钥、支付宝公钥配置文件或完整支付凭证。

合作与接入步骤

1. 注册并完成主体认证

在支付宝开放平台注册企业账号,完成企业认证,并准备营业执照、法人信息、联系人信息和结算账户等资料。

2. 创建应用并申请产品权限

在开放平台创建应用,并根据实际业务选择支付产品。常见的评估方向包括:

  • 当面付或二维码支付;
  • 统一收单相关能力;
  • 交易创建、交易查询和退款;
  • 支付结果异步通知;
  • 设备或物联网场景的专项合作能力。

产品名称、申请入口和所需资质可能会调整,具体以开放平台当前页面为准。

3. 配置密钥和回调地址

服务端通常需要配置:

  • 应用 AppID;
  • 应用私钥;
  • 支付宝公钥或公钥证书;
  • 签名算法配置;
  • 异步通知地址 notify_url;
  • 网关地址和环境配置。

私钥必须保存在商户服务端的密钥管理系统中,不能写入手表固件、前端代码或二维码内容。

4. 完成沙箱或测试环境验证

正式上线前,应验证以下场景:

  • 正常支付;
  • 用户取消支付;
  • 支付超时;
  • 重复通知;
  • 订单金额不一致;
  • 网络中断后恢复;
  • 查询接口与异步通知先后到达;
  • 退款和订单关闭。

测试环境是否支持具体设备形态及全部支付能力,应以支付宝提供的测试说明为准。

5. 申请上线并进行商务确认

如果涉及用户付款码、穿戴设备专属能力、免密或代扣等功能,通常还需要额外的产品审核、风控评估或商务合作。联系支付宝时,建议准备以下信息:

  • 手表型号和操作系统;
  • 二维码由谁生成、谁扫描;
  • 收款主体和业务类型;
  • 订单金额及交易频率;
  • 是否需要退款、分账或订阅;
  • 网络连接方式;
  • 设备丢失后的处理方案;
  • 数据存储和隐私保护方案。

服务端调用示例

下面的示例只用于说明服务端调用方式。实际接口名称、SDK 版本、参数和签名配置,应以支付宝官方文档为准。示例中的密钥和地址均为占位内容,不能直接用于生产环境。

AlipayClient alipayClient = new DefaultAlipayClient(
    "https://openapi.alipay.com/gateway.do",
    "APP_ID",
    "APP_PRIVATE_KEY",
    "json",
    "UTF-8",
    "ALIPAY_PUBLIC_KEY",
    "RSA2"
);

AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();

request.setNotifyUrl("https://merchant.example.com/alipay/notify");

JSONObject bizContent = new JSONObject();
bizContent.put("out_trade_no", "WATCH202609270001");
bizContent.put("total_amount", "9.90");
bizContent.put("subject", "智能手表订单");

request.setBizContent(bizContent.toJSONString());

AlipayTradePrecreateResponse response =
    alipayClient.execute(request);

if (response.isSuccess()) {
    String qrCode = response.getQrCode();

    // 将 qrCode 下发给手表,由手表生成二维码
    // 也可以由服务端生成二维码图片后下发
} else {
    // 记录错误码和错误信息,按业务策略重试或提示用户
}

服务端收到异步通知后,不能只根据前端或手表上报的“支付成功”状态更新订单。应先完成签名验证,并至少核对以下字段:

out_trade_no
trade_no
total_amount
seller_id
app_id
trade_status

只有在签名有效、商户订单号匹配、金额一致且交易状态符合业务要求时,才应将订单标记为已支付。

手表端实现建议

手表端主要处理以下功能:

  1. 请求服务端获取待支付订单二维码。
  2. 在屏幕上渲染二维码。
  3. 定时向服务端查询订单状态,或保持设备消息通道。
  4. 在支付成功、失败、超时和取消时显示明确状态。
  5. 二维码过期后重新获取,不长期缓存旧二维码。
  6. 在断网、低电量和屏幕锁定等情况下提供可恢复提示。

如果手表屏幕较小,应优先使用高对比度二维码、足够的留白区域和较短的订单有效期,并在不同屏幕尺寸、亮度和拍摄距离下进行兼容性测试。

需要特别注意的问题

不要把私钥放在手表端

手表固件可能被读取、调试或逆向。支付签名、订单创建和通知验签都应在服务端完成。

不要把二维码当成支付结果

二维码只能用于发起或关联交易。最终结果应以服务端验签后的支付宝通知或主动查询结果为准。

做好幂等处理

支付宝通知可能重复发送,服务端应以商户订单号实现幂等更新,避免重复发货、重复记账或重复扣款。

区分支付成功和订单业务成功

支付成功不代表设备业务一定完成。如果发货、开通权益或写入手表状态失败,应设计补偿、重试和人工处理机制。

保护用户隐私

不要在二维码、日志或设备本地明文保存不必要的用户身份信息、付款凭证或完整交易数据。涉及个人信息时,应遵守适用的数据保护和网络安全要求。

先确认产品边界

“手表展示商户订单二维码”和“手表展示用户支付宝付款码”不是同一种接入方式。联系支付宝开放平台或商务人员时,应明确说明谁生成二维码、谁扫描二维码,以及资金从哪一方流向哪一方,否则容易申请到不匹配的产品权限。

备注:内容仅供参考。