Rocker
Rocker
  • 发布:2026-03-17 05:33
  • 更新:2026-03-17 06:40
  • 阅读:40

【报Bug】IOS端打包后,微信支付调不起来

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 21H2

HBuilderX类型: 正式

HBuilderX版本号: 5.03

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: Iphone6s

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://apps.apple.com/cn/app/%E7%90%83%E5%8F%8B%E6%B1%87%E4%BF%B1%E4%B9%90%E9%83%A8/id6754772672

示例代码:
uni.requestPayment({  
    provider: 'wxpay',  
    orderInfo: {  
        "appid": "wx3c*******477a5d",  
        "partnerid": "171****743",  
        "prepayid": "wx1705*********713eb1eac0001",  
        "timestamp": "17****344",  
        "noncestr": "UzR*******XDQUV",  
        "package": "Sign=WXPay",  
        "sign": "7F356EC********2F649DB2"  
    },  
    success: e => {  
      console.log('success', e);  
    },  
    fail: e => {  
      console.log('fail', e);  
    },  
    complete: () => {  
    }  
});  

操作步骤:

多次测试

预期结果:

正常调起微信客户端,完成支付。

实际结果:

没有调起微信客户端!!!

bug描述:

IOS端打包后微信支付调不起来,安卓端正常!

以下内容都已检查:

1,参数大小写,字符串值都已按照API要求来写。
2,UniversalLinks跳转测试,链接在备忘录中点击后能跳转到APP。
3,UniversalLinks微信开放平台IOS中配置一致,且已通过审核。
4,参数签名值已核对过,没有问题,与sign参数值一致。
5,已开启 Associated Domains访问
6,已勾选微信支付模块
7,timestamp改成Number类型也是一样调不起来

报错信息:

uni.requestPayment一直是返回这个错误, 不管怎么固定参数还是动态传参,都是这样!!!晕!!!
{"errMsg":"requestPayment:fail 无效的参数,https://ask.dcloud.net.cn/article/282","errCode":-1,"code":-1}

2026-03-17 05:33 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的详细反馈。经过评审,该反馈内容基本完整但存在关键信息缺失和疑似参数错误,具体评审意见如下:

一、反馈内容完整性评估

1. 问题描述详细度:⭐⭐⭐☆☆

您已排查参数大小写、UniversalLinks、签名等常见问题,但缺少关键的工程配置信息

  • manifest.json 中是否正确勾选「微信支付」模块(app模块配置 → Payment → 微信支付)
  • iOS 工程配置详情(info.plist 中的 URL Types、LSApplicationQueriesSchemes、UniversalLinks 配置截图)
  • 打包方式(云打包/离线打包)及基座类型(自定义基座/正式包)

2. 代码示例问题:⚠️ 疑似参数类型错误

您提供的代码中 timestamp 为字符串类型("17****344"),但根据 微信App支付文档 要求,timestamp 必须是 Number 类型(时间戳,单位:秒)。这是导致 "无效的参数" 错误的最常见原因。

// 错误示例(您的代码)  
"timestamp": "17****344",  // 字符串 ❌  

// 正确示例(文档标准)  
"timestamp": 1597935292,   // 数字类型 ✅

3. 复现步骤:⭐☆☆☆☆

「多次测试」过于笼统,建议补充:

  • 是云打包还是离线打包?
  • 是否使用自定义基座测试?
  • iOS 工程配置是否按照 iOS支付模块配置文档 完成 URL Schemes 和 Associated Domains 配置?

4. 设备信息异常

iPhone 4s 最高仅支持 iOS 9.3.5,无法运行 iOS 15。请确认设备型号(是否为 iPhone 4s 后续机型或 iPhone SE?),避免调试环境信息混淆。

二、Bug 成立性分析

根据知识库检索,该问题大概率属于配置或参数类型问题,而非框架 Bug

  1. 参数类型错误:如前述,timestamp 必须是数字类型。字符串会导致微信 SDK 返回无效参数错误。
  2. iOS 工程配置缺失:即使 UniversalLinks 在微信端配置正确,若本地 info.plist 未正确配置 CFBundleURLTypes(URL Schemes 需为 wx[appid])和 weixin 字段(包含 appid 和 universalLink),也会导致调起失败。参考 iOS 支付工程配置
  3. manifest 模块未勾选:云打包时若未在 manifest.json → App模块配置 → Payment 中勾选微信支付,打包后无法调起。

三、建议排查步骤

请按以下顺序排查并补充信息:

  1. 修正参数类型:确保 timestampNumber 类型(如 Math.floor(Date.now() / 1000)),而非字符串。
  2. 检查 manifest:确认已勾选「微信支付」模块,并填写正确的 iOS Universal Links。
  3. 验证 iOS 工程配置
    • info.plist 中 CFBundleURLTypes 是否添加 weixin identifier 和 wx[appid] 的 URL Schemes
    • LSApplicationQueriesSchemes 是否包含 weixinweixinULAPI
    • weixin 节点是否配置 appid 和 universalLink(SDK 3.2.0+ 要求)
  4. 测试方式:先使用自定义基座调试,确认无问题后再打正式包。

四、需要补充的信息

为准确判断问题,请提供:

  • manifest.json 中 App模块配置 → Payment 的截图
  • 原生工程(或云打包后)的 info.plist 中 URL Types 和 weixin 节点配置
  • 修正 timestamp 类型后的测试结果
  • 准确的设备型号(如 iPhone X、iPhone 12 等,而非 iPhone 4s)

如按上述步骤排查后仍有问题,请携带可复现的简易 Demo完整的 info.plist 配置 在 Ask 社区发帖,我们将进一步跟进。

内容为 AI 生成,仅供参考
Rocker

Rocker (作者)

这是我的plist主要内容:

<key>weixin</key>
<dict>
<key>UniversalLinks</key>
<string>https://applecom/uni-uallinks/__U519/</string>
<key>appSecret</key>
<string>e31fadd*****62bb4c</string>
<key>appid</key>
<string>wx3cc*
477a5d</string>
</dict>

<key>LSApplicationQueriesSchemes</key>
<array>
<string>alipays</string>
<string>weixin</string>
<string>weixinULAPI</string>
<string>weixinURLParamsAPI</string>
<string>alipay</string>
<string>safepay</string>
<string>wechat</string>
<string>mqq</string>
<string>weibosdk2.5</string>
<string>weibosdk</string>
<string>mqqapi</string>
<string>mqzone</string>
<string>sinaweibo</string>
<string>sinaweibohd</string>
<string>mqqopensdkapiV3</string>
<string>mqqwpa</string>
<string>mqqopensdkapiV2</string>
<string>mqqOpensdkSSoLogin</string>
<string>qqmap</string>
<string>baidumap</string>
<string>iosamap</string>
<string>comgooglemapsurl</string>
<string>openApp.jdMobile</string>
<string>taobao</string>
<string>hbuilder</string>
<string>pinduoduo</string>
<string>imeituan</string>
<string>tmall</string>
<string>dianping</string>
<string>vipshop</string>
<string>yanxuan</string>
<string>suning</string>
<string>kaola</string>
<string>snssdk32</string>
<string>shark.video</string>
<string>wbmain</string>
<string>cydia</string>
<string>streamapp</string>
<string>kwai</string>
<string>pptv</string>
<string>bilibili</string>
<string>kugouURL</string>
<string>qqnews</string>
<string>zhihu</string>
<string>doubanradio</string>
<string>wccbyihaodian</string>
<string>ctrip</string>
<string>kuaikanmanhua</string>
<string>ntesopen</string>
<string>yddict</string>
<string>shanbay</string>
<string>gugutouchmanga</string>
<string>bobo</string>
<string>wtloginmqq2</string>
<string>qrxs</string>
<string>mailmaster</string>
<string>jcnhers</string>
<string>lightsky</string>
<string>gaeagj</string>
<string>yixin</string>
<string>ydcourse</string>
<string>awemesso</string>
</array>

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>__UE519</string>
<key>CFBundleURLSchemes</key>
<array>
<string>alipays</string>
<string>weixin</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>wx3cc**
77a5d</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>alixpay</string>
<key>CFBundleURLSchemes</key>
<array>
<string>ap3c950b6****a3d747</string>
</array>
</dict>
</array>

要回复问题请先登录注册