IOS APP端调用uni-app的uni.requestPayment进行支付应用闪退

IOS APP端调用uni-app的uni.requestPayment进行支付应用闪退

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win10
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 iOS
手机版本号 iOS 18
手机厂商 苹果
手机机型 iPhone12 Pro Max
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

示例代码:

function zfButton() {  
  var param = {  
    type: 4,  
    goods_type: "pay",  
    price: coinSelect.value.price * 100,  
    price_id: coinSelect.value.id,  
    system: 1,  
    openid: openidCode.value,  
    place: 1,  
  };  
  console.log(param);   
  request.httpRequest(orderCreate, param).then((res) => {  
    if (res.code == 0) {  
    // 服务器订单创建成功  
      uni.showLoading({  
        title: "加载中...",  
        mask: true,  
      });  
      if (coinSelect.value.appleInfo && coinSelect.value.appleInfo.productid) {  
        var orderInfo = {  
          productid: coinSelect.value.appleInfo.productid,  
          username: userInfo.info.id,  
          manualFinishTransaction: true,  
          optimize: true,  
        };  
        // 判断苹果产品ID是否获取成功 并创建参数  
        console.log(orderInfo); // 可以正常控制台输入 执行到这里应用闪退  

        uni.requestPayment({  
          provider: "appleiap",  
          orderInfo: orderInfo,  
          success: (e) => {  
            console.log(e); //   
            var zfInfo = {  
              receiptData: e.transactionReceipt,  
              transaction_id: e.transactionIdentifier,  
              order_id: res.data.id,  
            };  
            request.httpRequest(orderIosZf, zfInfo).then((success) => {  
              console.log(success); // 无法正常输出  
              if (success.code == 0) {  
                uni.showToast({ title: "成功!", icon: "none" });  
                userInfo.getAnewUserInfo();  
                zfSuccess();  
              } else {  
                userInfo.getAnewUserInfo();  
                uni.showToast({ title: "失败!", icon: "none" });  
              }  
            });  
            uni.hideLoading();  
          },  
          fail: (err) => {  
           // 无法正常输入错误信息 应用直接闪退  
            uni.hideLoading();  
            uni.showToast({ title: "失败!", icon: "none" });  
          },  
        });  
      } else {  
        uni.hideLoading();  
        uni.showToast({ title: "失败!", icon: "none" });  
      }  
    } else {  
      uni.showToast({  
        title: row.msg,  
        icon: "none",  
      });  
    }  
  });  
}

操作步骤:

同代码示例,苹果产品ID等数据获取成功,在触发uni.requestPayment后应用直接闪退

预期结果:

苹果支付成功

实际结果:

只要执行到uni.requestPayment方法,应用就会立刻闪退

bug描述:

在IOS端 APP使用uni.requestPayment方法应用直接闪退,没有回调信息,之前支付功能是正常的,目前线上也出现此问题,而线上之前还可以正常支付,最后一笔成交订单时间为2025-02-28 15:07:37,证明昨天是没有出现闪退问题,今日测试发现,重新打包仍然出现问题


更多关于IOS APP端调用uni-app的uni.requestPayment进行支付应用闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

HBuilderX 4.54.2025030608-alpha 已修复。

更多关于IOS APP端调用uni-app的uni.requestPayment进行支付应用闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


尝试使用IOS 17版本的可以正常支付,测试机为18版本 出现闪退问题

username确认下是否传的是字符串

1.username需要传字符串,否则在iOS18+的设备上会Crash 2.HBuilderX 4.53+版本已兼容该问题,但还是建议遵循规范传递字符串

这个问题你先找到具体问题是出在哪个方面

回到顶部