

简体中文
目前鸿蒙元服务鼓励通过华为支付完成支付,本文介绍华为支付流程。
华为支付整体流程如下:
整体流程可参考 华为支付申请接入教程 申请流程
华为支付时候,用户需要选择和华为的合作身份:商户身份、平台身份。具体细节可参考 申请接入时如何选择合作身份
等待华为支付入网成功之后,开始进入技术联调阶段。
登录 华为支付商户平台,页面右上角会展示商户号,为一串数字,请保存,等待后续使用。
登录 华为支付商户平台,选择 商户中心 - 证书管理 - 上传商户证书
这个页面要求上传商户公钥。参考 《生成商户证书》,这里推荐使用 node.js 脚本完成生成。
保存下面代码到 generateKeyPair.js
。
const crypto = require('crypto');
// 生成密钥对
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 3072, // 密钥长度,不少于3072
publicKeyEncoding: {
type: 'spki', // 公钥编码格式
format: 'pem', // 公钥输出格式
},
privateKeyEncoding: {
type: 'pkcs8', // 私钥编码格式
format: 'pem', // 私钥输出格式
},
});
console.info('生成的公钥:');
console.info(publicKey);
console.info('生成的私钥:');
console.info(privateKey);
执行 node generateKeyPair.js
得到泛互指,返回结构如下:
-----BEGIN PUBLIC KEY-----
以实际内容为准
-----END PUBLIC KEY-----
返回的私钥结构如下
-----BEGIN PRIVATE KEY-----
以实际内容为准
-----END PRIVATE KEY-----
返回的结果手动存储,将公钥返回部分复制,存储为 payPublicKey.pem
,在上传页面,选择 RSA 签名方式,上传公钥文件。
上传成功后,公钥表格会更新内容,说明这部分工作完成。请保存证书 ID 视为证书编号,后续会使用。
进入页面 证书管理 - 华为支付证书 - 下载,得到一个证书文件
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
选择 产品功能 - AppID 管理,观察 AppID 关联列表中是否已经包含你应用的名称,检查对应的 AppID
按照提示进行关联操作,最终应当在列表中包含你的鸿蒙应用、鸿蒙元服务信息。
这里使用开源免费的 uni-pay 项目进行演示,来完成支付。
也可以直接访问 插件市场 uni-pay,下载示例项目。
下载项目并关联 uniCloud 云服务空间。
编辑配置文件 uniCloud/cloudfunctions/common/uni-config-center/uni-pay/config.js
,找到 huawei
节点,如果是元服务编辑 mp
节点,如果是鸿蒙应用请编辑 app
节点
{
// 华为支付
"huawei": {
// 华为 - 元服务支付
"mp": {
"appId": "", // 应用的appId
"mchId": "", // 商户号
"mchAuthId": "", // 商户证书编号
"mchPrivateKey": "", // 商户私钥内容
"platformPublicKey": "", // 华为支付公钥
"clientType": "mp-harmony" // 固定 mp-harmony 请勿修改
},
// 华为 - APP支付
"app": {
"appId": "", // 应用的appId
"mchId": "", // 商户号
"mchAuthId": "", // 商户证书编号
"mchPrivateKey": "", // 商户私钥内容
"platformPublicKey": "", // 华为支付公钥
"clientType": "app-harmony" // 固定 app-harmony 请勿修改
}
}
}
参数说明
appId
在 商户中心-AppID 管理-AppID 关联列表 找到 APPID 并进行填入mchId
商户号,在商户后台右上角获取mchAuthId
商户证书编号,可在 商户中心-上传商户证书,在页面列表页中复制证书 IDmchPrivateKey
商户私钥内容。填写证书私钥完整内容,以 -----BEGIN PRIVATE KEY-----
开头,换行使用\n
。参考结果 "mchPrivateKey":"-----BEGIN PRIVATE KEY-----\n具体内容\n-----END PRIVATE KEY-----\n"
platformPublicKey
华为支付公钥。填写 华为支付证书 下载的文件,这里只需要正文部分,具体值一般是以 04ACC
开头。继续编辑 uni-pay/config.js
文件修改支付回调地址。
修改顶部 notifyUrl
参数会你的 uniCloud 地址,具体参考 支付回调配置 如何获取对应参数。
操作完毕,上传对应配置。
修改 mainifest.json 找到 鸿蒙 App 配置 - uni-payment - 勾选华为支付。
配置签名,运行鸿蒙配置。鸿蒙元服务可直接唤起支付,鸿蒙应用如果看不到华为支付,可先添加
<!-- #ifdef APP-HARMONY -->
<button @click="createOrder('huawei')">直接发起支付(huawei)</button>
<!-- #endif -->
如果上述配置,设置完成,可在鸿蒙应用、鸿蒙元服务中唤起华为支付。
如果遇到提示未正确配置回调地址,重新检查 HBuilderX 登录账号和云端登录的账号是否为同一个,避免匹配失败。
如果操作过程有疑问,可点此进入 uni-app 鸿蒙化技术交流群