鸿蒙原生支付:7 张图搞懂聚合支付与数字人民币接入

很多开发者一听到“接入支付”,第一反应往往是头大:微信 SDK 要接一套,支付宝 SDK 要接一套,现在鸿蒙原生应用来了,是不是又得再来一套?

说实话,刚开始看文档我也这么想。但深入研究了 HarmonyOS Payment Kit(鸿蒙支付服务) 后,我发现华为这次下的棋有点大。它不仅仅是一个简单的“钱包”,更像是一个系统级的支付聚合器

简单说,你接了 Payment Kit,不仅能用华为支付(Huawei Pay),还能直接在鸿蒙系统里拉起微信、支付宝,甚至直接调用数字人民币。对于咱们做业务开发的,这意味着能用一套代码逻辑,覆盖市面上主流的支付渠道,这波“造轮子”我给满分。

今天咱们就扒一扒鸿蒙支付接入流程和核心业务流程,别整那些虚头巴脑的概念,直接看图说话。


华为支付通用收银台纯外部支付接入流程

三方支付服务端 三方支付客户端 ASCF 商户服务端 商户客户端 三方支付服务端 三方支付客户端 ASCF 商户服务端 商户客户端 拉起华为支付通用收银台 拉起三方支付收银台 支付结果处理 1. 拉起华为支付通用收银台(has.cashierPicker) 2. 展示通用收银台(不含华为支付),用户选择支付方式. 3. 返回三方支付方式 4. 请求三方支付 5. 调用预下单,获取URL 6. 返回URL 7. 返回URL 8. 请求三方支付接口(has.requestPayment) 9. 跳转URL 10. 展示收银台 11. 支付 12. 支付处理 13. 返回支付结果 14. 异步通知支付结果回调 15. 回调结果验签

官方文档:接入支付服务

华为支付收银台

华为支付当前提供三种接入商户模型:商户(即直连商户)、平台类商户、服务商。开发者可根据实际业务模式选择适用的合作身份。

多样化的支付能力

  • 单次支付:用户选购商品后,商户通过接入单次支付来完成用户订单的创建与支付。
    支持:直连商户、平台类商户、服务商。

  • 合单支付:通过合单支付,商户可将不同商户的一个或多个订单合并到同一个订单完成支付。
    支持:平台类商户。

  • 支付并签约:用户支付完成后可与商户签订协议,完成相关业务自动扣款。
    支持:直连商户、服务商。

  • 签约代扣:商户可主动发起与用户签订相关协议,完成相关业务自动扣款(如水电费预缴,自动充值代扣等),简化相关业务操作流程。
    支持:直连商户、服务商。

核心支撑能力

灵活商户模型
全类型商户接入

分账省心
自动按规则分账

分账高效
灵活配置分账规则

平台商户体系

受理+平台关系

受理+平台关系

平台商户

子商户1

子商户2

分账接收方1
同直连商户

分账接收方5

普通服务商体系

受理+拓展关系

受理+拓展关系

普通服务商

特约商户1

特约商户2

分账接收方3

分账接收方4

普通直连商户体系

普通直连商户

分账接收方1

分账接收方2

华为支付收银台对接方案

华为支付服务器 华为支付服务客户端 商户服务器 商户应用 华为支付服务器 华为支付服务客户端 商户服务器 商户应用 预下单 拉起收银台 支付结果处理 创建订单信息 调用预下单接口 返回prepayId 返回orderStr订单信息入参 拉起华为支付收银台 展示华为支付收银台 支付 支付处理 返回支付结果 展示支付结果页 返回支付结果状态 异步通知支付结果回调 使用SM2方式验签

官方文档:
华为支付收银台
鸿蒙支付服务

鸿蒙支付服务

Payment Kit(鸿蒙支付服务)提供了方便、安全和快捷的支付方式,开发者在开发的商户应用/元服务中接入支付服务便捷且快速。

商户应用/元服务接入Payment Kit后,可在商户的应用/元服务内通过拉起华为支付收银台来完成订单的支付并展示支付结果以及完成用户对实体商品或服务(例如酒店服务、出行服务、充值缴费服务等)的购买。

Payment Kit还提供了用户身份验证服务,包括实名信息验证、实名信息授权和人脸核身实人验证以及数字人民币支付能力,商户通过接入数字人民币支付能力,可在商户的应用/元服务调用开放API接口,拉起数字人民币收银台来完成订单支付。

场景介绍

  • 商城购物

用户在商户的应用/元服务选购完不同的商品后,可以直接在商户的应用/元服务里完成下单和支付。

接入场景:商户基础支付场景、平台类商户合单支付场景、通用收银台支付相关场景。

  • 免密代扣

用户在商户APP应用/元服务选购完商品或主动点击商户提供的签约选项后,商户的应用/元服务可拉起华为支付签约收银台,用户完成签约后,后续再次购买商品时,商户可以直接发起代扣,减少用户拉起收银台、输入支付密码等相关操作。

接入场景:支付并签约场景、签约代扣场景。

  • 数字人民币支付

用户在商户APP应用/元服务进行话费充值,选好充值金额后发起支付,商户的应用/元服务通过拉起数字人民币收银台完成订单支付以及话费充值的操作。

接入场景:数字人民币支付场景。

  • 用户身份验证服务

政务、金融、医疗等类型应用/元服务在用户进行登录、预约等操作时需要核对用户信息,或核对用户是否本人。

接入场景:实名信息验证/授权场景、人脸核身实人验证场景。

官方文档:Payment Kit(鸿蒙支付服务)

一、 核心支付模式解析

鸿蒙支付不仅支持普通的单次支付,还搞定了电商平台最头疼的“合单支付”和订阅制的“自动续费”。咱们一个个来看。

1. 商户基础支付(直连模式)

这是最经典的场景:用户买个东西,点击支付,拉起收银台,输密码,完事。

Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 预下单 拉起收银台 支付结果处理 1.创建订单信息 2.调用预下单接口 3.返回prepayId 4.返回orderStr订单信息入参 5.拉起华为支付收银台 6.展示华为支付收银台 7.支付 8.支付处理 9.返回支付结果 10.展示支付结果页 11.返回支付结果状态 12.异步通知支付结果回调 13.使用SM2方式验签

👨‍💻 专家解读:

  • 核心逻辑:和微信/支付宝的流程非常像,核心差异在于验签方式。鸿蒙这里强制使用了 SM2 国密算法进行验签(步骤 13),安全性更高,但后端同学对接时得注意证书配置,别拿 RSA 的老套路去套,否则验签必挂。
  • 避坑点:步骤 4 返回的 orderStr 是拉起收银台的关键,千万别在客户端拼接这玩意儿,必须在服务端组装好,防止篡改。

2. 平台类商户合单支付

如果你做的是像美团、京东这样的平台,购物车里可能有好几家不同商户的商品,这时候就需要“合单支付”。

Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 预下单 拉起收银台 支付结果处理 1.创建合单支付订单 2.调用合单支付预下单接口 3.返回prepayId 4.组建orderStr返回 5.拉起华为支付收银台 6.展示华为支付收银台 7.支付处理 8.支付处理 9.返回支付结果 10.展示支付结果页 11.返回支付结果状态 12.异步通知支付结果回调 13.使用SM2方式验签

👨‍💻 专家解读:

  • 场景:用户一次支付,后台自动分账给子商户。
  • 关键点:注意看步骤 1,这里创建的是“合单支付订单”。Payment Kit 会在后端处理复杂的资金流向,前端对于用户来说,依然只是一次支付动作。这大大降低了前端开发的复杂度,不用自己去写循环调起支付的恶心代码了。

3. 免密支付与签约

视频会员、打车软件自动扣费,靠的就是这个。

Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 预下单 拉起收银台 签约处理 支付结果处理 1.创建订单信息 2.调用预下单接口 3.返回prepayId 4.组建orderStr并返回 5.调用支付接口,拉起华为支付收银台 6.展示收银台 7.支付并签约 8.处理支付并返回支付结果 9.异步回调支付结果,商户使用SM2方式验签 10.处理签约并返回签约结果 11.异步回调签约结果,商户使用SM2方式验签 12.展示结果 13.返回商户应用 14.处理支付结果

👨‍💻 专家解读:

  • 二合一:注意步骤 7,这是一个原子操作“支付并签约”。很多老系统是先支付,成功后再弹个窗让用户签约,转化率极低。Payment Kit 把它合并了,用户体验顺滑很多。
  • 双重回调:后端会收到两次回调(步骤 9 和 11),一个是扣款成功,一个是签约成功。千万别只处理一个,否则会导致业务状态不一致(比如扣了钱但没开通自动续费)。

4. 签约代扣(纯签约)

如果你只是想让用户先签个协议(比如水电费代扣),不涉及当场付款。

Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 Payment Kit客户端 商户服务端 商户客户端 预签约 拉起收银台 签约结果处理 免密代扣 1.创建订单信息 2.调用预签约接口 3.返回preSignNo 4.组建contractStr并返回 5.拉起华为支付签约收银台 6.展示签约收银台 7.签约 8.签约处理 9.返回签约结果 10.展示签约结果页 11.返回签约结果状态 12.异步通知签约结果回调 13.使用SM2方式验签 14.调用申请免密代扣接口 15.返回代扣申请结果 16.异步通知代扣结果回调 17.使用SM2方式验签

👨‍💻 专家解读:

  • 流程分离:这个流程分为“签约”(前 13 步)和“代扣”(后 4 步)。签约是用户交互的,代扣是服务器后台静默发起的。
  • 风控:步骤 14 发起代扣时,如果金额较大或频率异常,Payment Kit 服务端可能会拒绝,业务逻辑里要做好失败重试或降级处理(发短信提醒用户手动缴费)。

5. 数字人民币支付

这可是鸿蒙的一大杀手锏,原生支持央行数字货币。

数字人民币服务端 Payment Kit客户端 商户服务端 商户客户端 数字人民币服务端 Payment Kit客户端 商户服务端 商户客户端 预下单 拉起收银台 支付结果处理 1.创建订单信息 2.调用预下单接口 3.返回订单加密信息 4.返回orderInfo订单信息入参 5.拉起数字人民币支付收银台 6.展示数字人民币支付收银台 7.支付 8.支付处理 9.返回支付结果 10.展示支付结果页 11.返回支付结果状态 12.异步通知支付结果回调

👨‍💻 专家解读:

  • 极简集成:你看这个图,比前面的都要简单。因为它是系统底层集成的。
  • 加密差异:注意步骤 3,返回的是“订单加密信息”,数字人民币的安全性要求极高,数据传输全程加密,调试时候如果抓包看到一堆乱码别慌,那是正常的。

6. 混合支付(聚合模式)

最骚的操作来了。Payment Kit 收银台不仅能付华为支付,还能当一个“路由”,把支付请求转发给微信或支付宝。

Payment Kit服务端 三方支付服务端 三方支付客户端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 三方支付服务端 三方支付客户端 Payment Kit客户端 商户服务端 商户客户端 预下单 拉起通用收银台 场景1:选择华为支付 场景2:选择三方支付 基于SDK拉起 1.创建订单信息 2.调用预下单接口 3.返回prepayId 4.返回orderStr订单信息入参 5.拉起通用收银台 6.展示通用收银台(含华为支付) 1.选择华为支付方式 2.支付处理 3.返回支付结果 4.异步通知支付结果回调 5.回调结果验签 2.返回支付结果 1.选择三方支付方式 2.返回三方支付方式 3-2-1.请求三方支付 3-2-2.获取跳转三方收银台参数,传递payInfo返回 3-2-3.返回payInfo 3-2-4.使用payInfo调用ThirdPayClient接口 3-2-5.拉起三方支付收银台 3-2-6.展示收银台 3-2-7.用户支付 3-2-8.支付处理 3-2-9.返回支付结果 3-2-10.支付处理完成 3-2-11. handlePayCallback返回支付结果(非支付结果) 3-2-12.异步通知支付结果回调 3-2-13.回调结果验签 3-2-13.返回支付结果

👨‍💻 专家解读:

  • 逻辑分支:这个图稍微有点绕。关键在步骤 6,收银台展示了所有选项。如果用户选了“微信支付”(场景 2),Payment Kit 不会自己处理资金,而是把控制权交还给你的 App(步骤 2 返回三方支付方式),然后你的 App 再去调微信的接口。
  • 体验优化:虽然底层还是调的三方,但对用户来说,UI 是统一的。

7. 纯外部支付(只用收银台 UI)

如果你不想接华为支付的资金能力,只想蹭它的收银台 UI,也是可以的。

Payment Kit服务端 三方支付服务端 三方支付客户端 Payment Kit客户端 商户服务端 商户客户端 Payment Kit服务端 三方支付服务端 三方支付客户端 Payment Kit客户端 商户服务端 商户客户端 拉起通用收银台 基于URL跳转 1.拉起通用收银台 2.展示通用收银台(不含华为支付),用户选择支付方式 3.返回三方支付方式 1.请求三方支付 2.调用预下单,获取URL 3.返回URL 4.返回URL 5.请求三方支付接口 6.跳转URL 7.展示收银台 8.支付 9.支付处理 10.返回支付结果 11.异步通知支付结果回调 12.回调结果验签

👨‍💻 专家解读:

  • 空壳模式:这里的 Payment Kit 纯粹就是个 UI 皮肤。
  • URL 跳转:注意步骤 6,对于 H5 支付或 URL Scheme 跳转的支付方式,Payment Kit 提供了封装,不用你自己去处理 WebView 的重定向逻辑,这点还是挺省心的。

二、 灵魂拷问:微信 vs 支付宝 vs 鸿蒙支付

都 2026 年了,咱们技术选型得看本质。这三家到底有啥区别?

维度 微信支付 支付宝 鸿蒙支付 (Payment Kit)
定位 社交应用内置钱包 专业金融工具 系统级支付基础设施
接入形态 独立 SDK (App/JSAPI/H5) 独立 SDK (App/Wap/Page) Unified Kit (聚合 SDK)
核心优势 社交粘性大,用户覆盖率 99% 金融属性强,信用支付完善 原生流畅、数字人民币、聚合能力
支付体验 需跳转微信 App 需跳转支付宝 App 系统内拉起,部分场景免跳转
特色功能 社交红包、公众号支付 花呗、芝麻信用 人脸核身(系统级)、华为账号绑定
跨端能力 依赖微信客户端 依赖支付宝客户端 分布式能力(手机付电视订单)
验签方式 MD5/HMAC-SHA256/RSA RSA/RSA2 SM2 (国密)

异同点总结:

  • :都是基于 OAuth 2.0 的授权逻辑,都有“预下单 -> 拉起收银台 -> 异步回调”的标准三板斧。
  • :鸿蒙支付最大的不同在于**“聚合”**。它不是要取代微信支付宝,而是把它们“包”进来。对于鸿蒙原生应用开发者来说,接一个 Payment Kit 约等于接了全家桶,而且还能享受到系统级的安全验证(如系统级人脸识别,不需要 App 自己搞一套活体检测)。

附:微信支付/支付宝支付

微信支付

APP支付业务流程

退款阶段

对账阶段

用户支付阶段

商户调起支付阶段

商户下单阶段

前置条件:已开通APP支付权限

商户下单

调用APP支付下单接口下单

下单成功,微信支付返回预支付ID

前置条件:1.已获取预支付ID 2.APP配置信息与开放平台一致

商户调起支付

商户APP调用opensdk方法,拉起微信收银台

前置条件:已拉起微信收银台

用户支付

用户在微信收银台支付

商户App收到opensdk回调:确认订单支付结果

商户后端主动调用查询接口获取支付状态

商户侧根据订单状态做业务逻辑处理

前置条件:订单支付成功

对账

在商户平台下载账单

使用API接口下载账单

备注:普通商户可登录平台或调用API获取账单

前置条件:订单支付成功

退款

调用申请退款API接口退款

在商户平台手动提交退款

官方文档:微信APP支付

JSAPI支付业务流程

退款阶段

对账阶段

用户支付阶段

商户调起支付阶段

商户下单阶段

触发

未触发

前置条件:已开通JSAPI支付产品权限

商户下单

商户用JSAPI/小程序下单接口下单

下单成功,微信支付返回预支付ID

前置条件:1.已获取预支付ID 2.商户平台已配置JSAPI支付目录

商户调起支付

商户前端页面通过调用微信浏览器内置对象方法,拉起微信收银台

前置条件:已拉起微信收银台

用户支付

用户在微信收银台支付

是否触发前端JSAPI回调?

调用微信接单接口确认订单支付结果

商户后端主动轮询查询单据和微信支付成功回调通知订单状态

商户根据订单状态做相应支付成功/支付失败的业务逻辑处理

前置条件:订单支付成功

对账

在商户平台下载账单

使用API接口下载账单

前置条件:订单支付成功

退款

调用申请退款API接口退款

在商户平台手动提交退款

官方文档:微信JSAPI支付

H5支付业务流程

退款阶段

对账阶段

用户支付阶段

商户调起支付阶段

商户下单阶段

前置条件:已开通H5支付权限

商户下单

商户调用H5支付下单接口下单

下单成功,微信支付返回H5支付链接

前置条件:1.已获取到H5支付链接 2.已配置H5支付域名

商户调起支付

商户前端跳转微信H5支付链接,拉起微信收银台

前置条件:已拉起微信收银台

用户支付

用户在微信收银台支付

是否返回至拉起支付前页面/redirect_url指定页面?

调用微信查单接口确认订单支付结果

商户后端主动轮询查询单据+微信支付成功回调通知订单状态

商户根据订单状态做支付成功/失败的业务逻辑处理

备注:用户支付完成会返回至拉起支付前页面 如需返回指定页面,需在H5支付链接后拼接redirect_url参数

前置条件:订单支付成功

对账

在商户平台下载账单

使用API接口下载账单

前置条件:订单支付成功

退款

调用申请退款API接口退款

在商户平台手动提交退款

官方文档:微信H5支付

Native支付业务流程

退款阶段

对账阶段

用户支付阶段

用户扫码调起支付阶段

商户下单阶段

前置条件:已开通Native支付权限

商户下单

商户调用Native支付下单接口下单

下单成功,微信支付返回二维码code

转换成二维码图片前端展示

前置条件:前端展示微信支付二维码

用户微信扫码二维码调起支付

用户通过微信扫一扫,扫描商户前端展示的二维码拉起微信收银台

前置条件:已拉起微信收银台

用户支付

用户在微信收银台支付

商户后端调用查单接口查询订单,并且收到支付成功回调更新订单状态

商户前端定时获取后端订单状态,为用户展示支付状态

前置条件:订单支付成功

对账

在商户平台下载账单

使用API接口下载账单

备注:普通商户可以登录商户平台或者调用申请交易账单接口获取账单

前置条件:订单支付成功

退款

调用申请退款API接口退款

在商户平台手动提交退款

官方文档:微信Native支付

小程序支付业务流程

退款阶段

对账阶段

用户支付阶段

商户调起支付阶段

商户下单阶段

触发

未触发

前置条件:已开通小程序支付权限

商户下单

商户用JSAPI或小程序下单接口下单

下单成功,微信支付返回预支付ID

前置条件:已获取到预支付ID

商户调起支付

商户小程序通过调用小程序方法,拉起微信收银台

前置条件:已拉起微信收银台

用户支付

用户在微信收银台支付

是否触发前端小程序回调?

调用微信查单接口确认订单支付结果

商户后端主动轮询查询单据+微信支付成功回调通知订单状态

商户根据订单状态做支付成功/失败的业务逻辑处理

前置条件:订单支付成功

对账

在商户平台下载账单

使用API接口下载账单

备注:商户可以登录商户平台或者调用申请交易账单接口获取账单

前置条件:订单支付成功

退款

调用申请退款API接口退款

在商户平台手动提交退款

官方文档:微信小程序支付

微信付款码免密支付业务流程

微信支付系统 商户后台系统 门店收银台 扫描设备 收银员 微信客户端 微信支付用户 微信支付系统 商户后台系统 门店收银台 扫描设备 收银员 微信客户端 微信支付用户 1.操作生成支付单 展示支付订单信息 2.打开微信付款码 3.用户提供的微信付款码 4.上传得到的扫码信息 5.发起支付请求 6.调用付款码支付API 7.返回支付结果 8.返回支付结果,发送微信消息 接收支付结果消息 9.返回支付结果 10.给用户发货

官方文档:微信付款码免密支付

微信付款码验密支付业务流程

微信支付系统 商户后台系统 门店收银台 扫描设备 收银员 微信客户端 微信支付用户 微信支付系统 商户后台系统 门店收银台 扫描设备 收银员 微信客户端 微信支付用户 par [并行处理通知商户,通知用户] loop [循环处理] opt [错误码:SYSTEMERROR、U- SERPAYING] opt [如果交易失败] alt [根据支付结果作相应处理] 1.操作生成支付单 展示支付订单信息 2.打开微信付款码 3.用户提供的微信付款码 4.上传得到的扫码信息 5.发起支付请求 6.调用付款码支付API 7.验证支付权限 8.返回USERPAYING状态 [需要用户输入密码] 同步支付中状态 提示用户输入密码 9.通知用户授权支付 10.用户确认支付,输入密码 11.提交支付授权 12.返回支付结果,发送支付消息 同步支付结果给用户 13.查询订单,获得订单状态 14.调用查询订单API 15.返回支付状态 16.返回支付结果 17.调用撤销订单API

官方文档:微信付款码验密支付

微信支付示例工程:微信支付示例工程

支付宝支付

APP支付业务流程

支付宝服务端 支付宝APP 商户服务端 商户APP 用户 支付宝服务端 支付宝APP 商户服务端 商户APP 用户 opt [若未收到异步] alt [异常场景] [正常场景] opt [用户银行卡付款] 打开商户APP下单 请求生成商户订单 调用alipay.trade.app.pay获取orderStr 返回orderStr 返回orderStr 调用客户端支付接口,将orderStr发送给支付宝 进行支付预下单(此时交易未创建) 返回异常(如参数有误等) 弹窗显示异常信息 返回异常信息 唤起支付收银台等待用户操作 输入密码确认支付 提交支付请求 创建交易并推进支付 返回支付结果 返回商户APP 客户端结果展示 异步通知notify_url返回trade_no和支付结果 商户异步通知处理 调用alipay.trade.query查询订单信息 返回订单状态以及订单信息 申请退款 请求进行退款操作 调用alipay.trade.refund对交易trade_no进行全额/部分退款 返回退款结果 异步通知alipay.trade.refund.depositback.completed返回退款到卡通知 根据退款后交易状态变化,异步通知发送到alipay.trade.app.pay的notify_url地址(含refund_fee、gmt_refund等参数)

官方文档:APP支付

当面付业务流程

支付宝系统 商户系统 支付宝APP 用户 支付宝系统 商户系统 支付宝APP 用户 opt [code=10000 表示请求成功] loop [循环直到返回支付成功或超过轮询时间] alt [轮询结束仍未支付成功] opt [code=10003 表示等待付款或20000表示系统异常、网络超时- ] opt [code=40004 表示支付失败] 1.打开支付宝钱包展示条码 1.1 通过扫码设备输入付款码 1.1.1 识别条码并生成订单 1.1.2 调用alipay.trade.pay提交支付订单 1.1.3 返回调用结果 2.展示成功页(建议异步或查询判断是否支付成功) 3.调用alipay.trade.query查询订单 3.1 返回订单状态 4.调用alipay.trade.cancel关闭订单 4.1 同步返回撤销结果 5.检查返回参数并重新调用alipay.trade.pay 5.1 同步返回交易结果

官方文档:当面付

付款码支付业务流程

支付宝系统 商户系统 支付宝APP 用户 支付宝系统 商户系统 支付宝APP 用户 opt [返回支付成功(code=10000)] loop [启动定时任务轮询(建议3~5s一次)] opt [等待用户付款(code=10003)/系统异常(code=20000)/网络超- 时等] opt [指定时间内未完成支付] 1.打开付款码 2.调用alipay.trade.pay提交支付(传入付款码auth_code) 2.1 返回支付结果码 3.支付成功,流程结束 4.调用alipay.trade.query查询交易状态 4.1 返回交易状态 5.调用alipay.trade.cancel撤销订单 5.1 返回撤销结果

手机网站支付业务流程

支付宝客户端 支付宝服务端 商家服务端 商家客户端 用户 支付宝客户端 支付宝服务端 商家服务端 商家客户端 用户 alt [支付下单] alt [支付结果] 1.发起支付 1.1 请求创建订单 1.1.1 调用alipay.trade.wap.pay预下单 1.1.2 返回form/支付URL 1.2 返回form/支付URL 1.3 跳转支付宝收银台 2.在收银台完成支付 2.1 提交支付 2.2 返回结果并展示 2.3 异步通知notify_url 2.4 验签并更新订单状态 2.5 同步跳转return_url(可选)

官方文档:手机网站支付

电脑网站支付业务流程

支付宝 商家 用户 支付宝 商家 用户 alt [支付是否成功以异步通知为准] alt [支付是否成功以查询接口返回为准] 1.下单 1.1 调用alipay.trade.page.pay发起支付请求 2.展示登录页,用户输入用户名、支付密码 3.登录 4.选择支付渠道,输入支付密码 5.确认支付 6.get请求return_url,返回同步返回参数 7.post请求notify_url,返回异步返回参数 8.调用alipay.trade.query查看交易状态 8.1 返回交易信息

官方文档:电脑网站支付

刷脸支付业务流程

收单服务端 刷脸服务端 支付宝网关 刷脸APP 刷脸SDK 商户服务端 商户APP 收单服务端 刷脸服务端 支付宝网关 刷脸APP 刷脸SDK 商户服务端 商户APP 1.获取设备信息 请求获取设备信息 返回设备信息 1.1 返回设备信息 2.人脸初始化(可用性判断) 人脸初始化开放请求 人脸初始化 人脸初始化结果 人脸初始化结果 2.1 初始化结果 3.唤起人脸识别 人脸识别请求 人脸识别处理 人脸识别结果 人脸识别结果 3.1 返回人脸识别结果 4.发起收单请求 收单请求 收单处理 收单处理结果 收单结果 4.1 完成支付,返回收单结果

官方文档:刷脸支付


写在最后

看完这些流程图,相信你对鸿蒙支付的“套路”已经心里有数了。

在我看来,Payment Kit 最香的地方不在于它多了一个支付渠道,而在于它标准化了支付流程。以前我们在 App 里要写一堆 if (channel == WECHAT) { ... } else if (channel == ALIPAY) { ... } 的胶水代码。现在,这层脏活累活华为系统帮你干了。

对于开发者来说,赶紧把 SM2 国密验签异步回调处理 这两块硬骨头啃下来,剩下的就是调 API 的事儿了。趁着鸿蒙生态还在爆发期,把支付这一环打通,绝对是提升应用转化率的关键一步。

加油,打工人!🚀

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐