华为mate60手机在uni-app中拉不起支付问题

华为mate60手机在uni-app中拉不起支付问题

开发环境 版本号 项目创建方式
Windows Windows 11 家庭版 HBuilderX
HarmonyOS HarmonyOS 6.0.0 -
华为 - -
华为mata60pro - -
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.45

手机系统:HarmonyOS NEXT

手机系统版本号:HarmonyOS 6.0.0

手机厂商:华为

手机机型:华为mata60pro

页面类型:vue

vue版本:vue3

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:

```javascript
uni.requestPayment({
provider: 'wxpay',
timeStamp: result.data.payment.timeStamp,
nonceStr: result.data.payment.nonceStr,
package: result.data.payment.packageValue,
signType: result.data.payment.signType,
paySign: result.data.payment.paySign,
success: function(res) {
console.log('支付成功回调', res);
// 你的成功处理
},
fail: function(err) {
console.log('支付失败回调-完整错误', err);
// 你的失败处理
},
complete: function(oo) {
console.log('支付完成回调', oo);
}
});
三个回调函数 一个都没有进去

操作步骤:

点击商品购买 => 确认订单 => 拉起支付 => 付款

预期结果:

拉起支付 付款成功

实际结果:

拉不起支付

bug描述:

目前遇上华为mate60手机拉不起支付问题 其他手机同一个微信登录同一个微信小程序是可以拉起支付的

系统 System: OpenHarmonyOS 6.0.0
平台 Platform: ohos


更多关于华为mate60手机在uni-app中拉不起支付问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容基本完整,但存在关键缺失:未说明是否已在manifest.json中配置uni-payment并勾选华为支付,也未提及是否添加agconnect-services.json文件(知识库明确要求HBuilderX 3.0.7+需此配置)。代码示例完整可复现,复现步骤清晰但未体现鸿蒙平台特殊操作。预期结果合理,但实际"拉不起支付"属典型配置问题而非框架bug——知识库指出鸿蒙平台需额外配置华为支付通道(鸿蒙支付技术文档),且强调"必须安装华为移动服务"。用户使用HBuilderX 4.45(旧版,当前最新为4.86+),可能因版本过旧导致兼容性问题。建议:1.升级HBuilderX至最新版;2.检查manifest.json中uni-payment配置及agconnect-services.json文件;3.确认HBuilderX登录账号与云端一致;4.优先使用华为支付(参考指南)。非bug,属配置遗漏。 内容为 AI 生成,仅供参考

更多关于华为mate60手机在uni-app中拉不起支付问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的信息,这是一个典型的HarmonyOS NEXT环境下微信支付拉起失败的问题。主要原因是HarmonyOS NEXT不再兼容Android生态,而uni-app的uni.requestPayment在云端打包时默认使用Android渠道的微信支付SDK。

核心问题分析:

  1. 系统兼容性:你使用的HarmonyOS NEXT 6.0.0是纯血鸿蒙系统,与Android应用不兼容。
  2. SDK适配:目前uni-app官方云端打包的微信支付SDK主要针对Android/iOS平台,尚未提供完整的HarmonyOS NEXT原生支付SDK支持。
  3. 回调无响应:三个回调函数均未触发,表明支付模块根本没有正常初始化或调用。

解决方案:

方案一:使用华为原生支付(推荐)provider参数改为'huaweipay',并按照华为支付规范传参:

uni.requestPayment({
  provider: 'huaweipay',
  orderInfo: '华为支付订单信息', // 从服务端获取的华为支付订单串
  success: function(res) {
    console.log('华为支付成功', res);
  },
  fail: function(err) {
    console.log('华为支付失败', err);
  }
});

需要先在华为开发者后台配置支付能力,并在manifest.json中配置华为支付权限。

方案二:使用微信小程序跳转 如果必须使用微信支付,可以考虑通过uni.navigateToMiniProgram跳转到微信小程序完成支付:

uni.navigateToMiniProgram({
  appId: 'wx开头的小程序ID',
  path: '支付页面路径',
  extraData: {订单数据},
  success(res) {
    console.log('跳转成功');
  }
});
回到顶部