UniApp-X App 微信支付 报错 701100 排查记录
2026/8/29 4:42:09 网站建设 项目流程

UniApp-X 微信 App 支付 701100 排查记录

1. 问题现象

项目使用 UniApp-X(UVue + UTS)开发 Android App,通过uni.requestPayment调起微信 App 支付。后端接口/api/pay/appwxpay返回了完整的支付参数,但手机端报错:

[recharge] requestPayment fail detail={"errCode":701100,"errMsg":"Order payment failure."}

当时容易先怀疑 AppID、商户号、签名或订单金额。实际本次问题的原因是运行时一直使用标准基座。

2. 最终结论

701100在本次场景下不是后端订单参数错误,而是:

标准基座没有包含当前项目需要的微信支付原生模块和最新 App 配置,无法正确处理微信 App 支付订单。

重新制作并使用包含支付模块的自定义基座后,微信支付正常跑通。

3. 标准基座与自定义基座

标准基座适合调试页面、接口和普通交互,但不保证包含项目新增的原生模块、包名和支付配置。修改manifest.json后,已安装的标准基座也不会自动更新。

自定义基座是依据当前项目配置制作的调试 App,应包含当前项目使用的uni-payment、包名及其他原生模块。微信支付、支付宝支付、推送、地图等原生能力,都应在自定义基座或正式 APK 中验证。

4. 排查顺序

4.1 确认调用链

App 支付必须使用 App 专用接口,例如:

POST /api/pay/appwxpay

前端传给支付 API 的orderInfo必须是订单字符串,而不是对象:

uni.requestPayment({provider:'wxpay',orderInfo:orderInfo,});

支付成功后还必须查询/api/pay/appwxpay,因为uni.requestPayment成功只代表客户端支付动作完成,业务是否入账要以服务端状态为准。

4.2 检查订单字段

微信 App 支付参数通常至少包含:

appid partnerid prepayid package=Sign=WXPay noncestr timestamp sign

检查重点:

  • appid是微信开放平台 AppID,不是小程序 AppID。
  • partnerid是对应微信商户号。
  • AppID 和商户号已经绑定。
  • timestamp是数字。
  • 订单金额大于 0,且订单没有过期或重复支付。
  • sign是针对当前订单参数重新生成的签名。

4.3 检查包名

项目实际包名必须和微信开放平台移动应用登记的 Android 包名一致。本项目包名为:

com.ceshi.app

需要同时核对manifest.json、HBuilderX 发行配置、微信开放平台移动应用配置和实际安装包包名。

4.4 检查手机和基座

  • 手机已经安装微信并可以正常支付。
  • 使用 Android 真机测试。
  • 自定义基座已经重新制作并成功安装。
  • HBuilderX 运行时选择的是自定义基座,而不是标准基座。
  • 如果修改过manifest.json或原生模块,不能继续使用旧基座。

5. 正确操作流程

第一步:配置微信支付模块

manifest.json中应配置 Android 的uni-payment,例如:

{"app-android":{"distribute":{"modules":{"uni-payment":{"wxpay":{"appid":"wxc99999"}}}}}}

第二步:重新制作自定义基座

在 HBuilderX 中根据当前项目重新制作 Android 自定义基座,确保使用最新的manifest.json,并包含uni-payment模块和正确包名。

第三步:安装并运行

将新基座安装到手机,覆盖或卸载旧基座后重新安装。然后在 HBuilderX 中选择自定义基座运行项目。

官方说明:UniApp App 运行到 Android/iOS

第四步:重新创建订单

不要重复使用之前失败的预订单。重新进入充值页面创建订单,再点击微信支付。支付后调用订单状态接口确认:

paid 支付成功并已入账 pending 支付结果确认中 closed / failed 支付失败或订单关闭 settlement_failed 已付款但业务入账异常

6. 常见错误码判断

701100 Order payment failure

优先检查:

  1. 是否还在使用标准基座或旧自定义基座。
  2. 自定义基座是否包含uni-payment
  3. 包名、微信 AppID 和商户号是否匹配。
  4. 订单是否过期、重复支付或金额无效。
  5. 后端签名和商户配置是否正确。

700000 Other payment errors

优先检查:

  1. orderInfo是否为字符串。
  2. 字段名是否为小写格式。
  3. timestamp是否为数字。
  4. package是否为Sign=WXPay
  5. 是否重新制作并安装了自定义基座。

手机无响应或无法连接基座

检查自定义基座是否安装并启动、ADB 是否连接、USB 调试是否开启、HBuilderX 是否选择了正确设备,以及手机和电脑连接是否正常。

7. 本次问题的解决结果

本次实际验证过程如下:

  1. 后端/api/pay/appwxpay返回参数正确。
  2. 微信 AppID、商户号、支付密钥和包名已确认。
  3. 前端使用字符串格式组装微信orderInfo
  4. 原先使用标准基座运行,出现701100
  5. 按官方运行说明重新制作包含微信支付模块的自定义基座。
  6. 安装自定义基座并选择自定义基座运行。
  7. 重新创建支付订单后,微信支付成功。

最终结论:

UniApp-X App 支付不能只验证页面代码和接口返回值,必须验证运行载体。只有在包含对应原生支付模块的自定义基座或正式 APK 中测试通过,才能认为 App 支付真正完成。

8. 后续固定流程

修改 manifest 或原生能力配置 ↓ 重新制作自定义基座 ↓ 安装新基座 ↓ 重新创建支付订单 ↓ 真机调起支付 ↓ 查询服务端订单状态

以后新增或修改微信支付、支付宝支付、推送、地图、原生插件及manifest.json中的模块配置时,都应执行这套流程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询