uni-app ios 苹果内购支付 问题
uni-app ios 苹果内购支付 问题
代码示例
uni.getProvider({
service: 'payment',
success: (res) => {
const iapChannel = res.providers.find((channel) => {
return (channel.id === 'appleiap')
})
if (!iapChannel) return console.error("未找到Apple支付通道");
uni.requestPayment({
provider: 'appleiap',
orderInfo: {
productid: 'HUIYUANTEXT',
quantity: 1,
optimize: true,
sandbox: true
},
success: (res) => {
console.log("支付成功", res);
// 发送res.transactionReceipt至服务器二次验证
},
fail: (err) => console.log("支付失败", err)
});
// 如果 iapChannel 为 null,说明当前包没有包含iap支付模块。注意:HBuilder基座不包含 iap 通道
}
});
一直提示我 RequestPayment:fail Payment_appleiap:订单的ID不存在, https://ask.dcloud.net.cn/article/282
更多关于uni-app ios 苹果内购支付 问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app ios 苹果内购支付 问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你的代码和报错信息,问题主要出现在订单配置和参数传递上。
在iOS苹果内购中,orderInfo参数需要严格遵循Apple IAP的规范。你的代码中直接使用了productid字段,但实际应该使用productIdentifier作为商品ID字段名。
正确的参数配置应该是:
uni.requestPayment({
provider: 'appleiap',
orderInfo: {
productIdentifier: 'HUIYUANTEXT', // 必须是App Store Connect中配置的商品ID
quantity: 1,
optimize: true,
sandbox: true
},
success: (res) => {
console.log("支付成功", res);
// 将res.transactionReceipt发送到服务器验证
},
fail: (err) => console.log("支付失败", err)
});

