1***@163.com
1***@163.com
  • 发布:2025-03-01 11:51
  • 更新:2025-03-01 13:18
  • 阅读:25

【报Bug】IOS APP端调用uni.requestPayment进行支付,应用闪退

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.45

手机系统: iOS

手机系统版本号: iOS 18

手机厂商: 苹果

手机机型: iPhone12 Pro Max

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://apps.apple.com/cn/app/%E9%B2%B8%E5%A5%87%E4%BD%93%E8%82%B2/id6499072801

示例代码:
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,证明昨天是没有出现闪退问题,今日测试发现,重新打包仍然出现问题

2025-03-01 11:51 负责人:无 分享
已邀请:
1***@163.com

1***@163.com (作者)

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

要回复问题请先登录注册