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
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+版本已兼容该问题,但还是建议遵循规范传递字符串
这个问题你先找到具体问题是出在哪个方面