我有一个
Google is indicating that we have some issue connecting to payment.
错误
在logcat中,我得到了E/DoobooUtils: Error Code : 5
我以前使用的是2.5.5版本,它运行良好。
唯一不起作用的是acceptPurchaseAndroid调用
这是我的代码:
handleServerSubscribe = async purchase => {
const {
productId,
transactionReceipt,
} = purchase
if (transactionReceipt) {
try {
// FIXME it fails right here
await acknowledgePurchaseAndroid(purchase.purchaseToken)
} catch (e) {
console.log('subscription error ', e)
}
}
}
componentDidMount() {
this.purchaseUpdateSubscription = purchaseUpdatedListener(purchase => {
this.handleServerSubscribe(purchase)
})
}
如果acknowledgePurchase
无法正常工作,则感觉您没有正确将android中的billingClient
更新2.0.3
。 您可以检查build.gradle
吗?
@hyochan好吧,看来我没有它,但是我不知道在哪里可以得到正确的语法。
它应该在自述文件中吗?
尝试通过搜索找到行com.android.billingclient:billing
。
好吧,我没有,我只有
implementation project(':react-native-iap')
我需要两个实现吗?
implementation 'com.android.billingclient:billing:2.0.3'
implementation project(':react-native-iap')
我仍然有相同的错误
@MeisterTea我希望您检查已安装的react-native-iap
项目中billingclient
的版本。 检入node_modules/react-native-iap/android/build.gradle
哦,我的糟糕...是的,它的版本正确
implementation 'com.android.billingclient:billing:2.0.3'
任何的想法 ?
@MeisterTea我想我发现了对您有用的链接。
@MeisterTea这有帮助吗?
好吧,我仍然有错误:
js网桥: Google is indicating that we have some issue connecting to payment.
logcat: E/DoobooUtils: Error Code : 5
await acknowledgePurchaseAndroid(purchase.purchaseToken)
, 我有一些问题:
编辑:与react-native-iap的示例项目都是一样的。
我将versionCode更改为我在beta轨道上上传的最新代码,为其提供了发布密钥,添加了我的订阅ID,更改了代码以加载订阅,完成了react-native run-android variant = release
我可以购买订阅,但仍然出现错误5
有同样的问题。 有什么解决办法吗?
是的,这是由于已确认待付款。
IMO,许可测试人员无论如何都不应该处于PENDING状态,因此Google可能在此出错。
对于状态purchaseStateAndroid
1(已购买)的付款,我也遇到同样的问题
是的,这是由于已确认待付款。
我确认这一点。 当purchaseState
为1时,我永远不会出错。
编辑:
然而购买仍然被承认。 换句话说,有一个错误,但仍在工作。
我有同样的问题,我意识到问题是PurchaseToken已被确认。 所以我解决了控制呼叫await acknowledgePurchaseAndroid(purchase.purchaseToken).
@hyochan的问题
因此,我不得不检查从RNIap.getAvailablePurchases()
purchases [0] .isAcknowledgedAndroid是否为假,以调用acceptPurchaseAndroid。
希望能帮助到你。
嘿,看来这个问题最近没有任何活动。 问题是否已解决,还是仍然需要社区的关注? 如果没有其他活动,则可能已关闭此问题。 您也可以将此问题标记为“供讨论”或“良好的第一期”,我将其保留为开放状态。 感谢你的贡献。
我最近有同样的错误信息。 所以我说这应该保持活跃。
我在RNIap.finishTransaction
遇到了相同的错误
@ creativemind1您正在使用什么版本? finishTransaction
应该同时在iOS
和android
。
我正在使用"react-native-iap": "^4.4.1"
,当我在Android中调用finishTransaction时,我从Google Google is indicating that we have some issue connecting to payment
得到了错误。 因此,从我的服务器获得成功的响应后,我正在调用正在运行的RNIap.acknowledgePurchaseAndroid
,但没有调用finishTransaction
同样的错误,但在getProducts上
同样的错误,但是在消耗产品上。
订阅时出错:
Error: Google is indicating that we have some issue connecting to payment.
at Object.fn [as consumeProduct] (VM4 index.bundle:2143)
购买产品时出错:
Error: Purchase failed with code: 8
at Object.fn [as consumeProduct] (NativeModules.js:99)
反应本机:0.61
react-native-iap版本:4.4.9
我想如果您在.google play的测试用户中添加电子邮件地址
您将要设置的设置会看到tgat问题
2020年6月6日,星期六,下午8:41 rafaeelrf [email protected]写道:
同样的错误,但是在消耗产品中:
错误:Google表示我们在付款方面遇到了一些问题。
在Object.fn上[作为消费产品](VM4 index.bundle:2143)—
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/dooboolab/react-native-iap/issues/721#issuecomment-640075737 ,
或退订
https://github.com/notifications/unsubscribe-auth/ABH54CL5FLAY4C7CTL2V3V3RVJMA7ANCNFSM4IX5EJQA
。
我已经添加了,但是问题没有解决
如果我没记错的话,在测试服务器上时,不能在客户端执行此操作,因为在付款和服务器验证之间存在一些延迟。
我们不得不移动逻辑服务器端
嗨,我在RNIap.acknowledgePurchaseAndroid(purchase.purchaseToken);时遇到了同样的错误。 API。 有人可以帮忙吗
我在
RNIap.finishTransaction
遇到了相同的错误
我也有使用最新版本和测试卡的问题
同样的问题,在我的purchaseUpdatedListener中调用RNIap.finishTransaction(purchase,true),它在我的RNIap.requestSubscription之后被调用。 这导致错误。 5分钟后,我从Google收到取消邮件“此测试购买已取消,因为未确认,”。 当然,我使用的是测试帐户,但这应该可以。
相同的代码在iOS上就像一个超级按钮。
@MeisterTea您在后端做了什么,是否发现Google对RNIap.finishTransaction(purchase,true)的要求是什么? 您可以共享一些代码段或其他信息,以便我们其余的人可以使用该解决方案,直到该插件再次起作用为止?
我的问题是,我打电话给finishtransaction 2次。 当我删除它时,工作正常
我知道了:我只是为Android制作了这些特定的行,但是这样做的需要在文档中并不很明显。 现在,它可以在Android和iOS上使用:
// on Android we need to acknowledge purchase or finishTransaction fails
// if we do not acknowledge, purchase will roll back in 5 min
RNIap.acknowledgePurchaseAndroid(purchase.purchaseToken).then(() => {
RNIap.finishTransaction(purchase, true).catch(err => {
console.log(err.code, err.message);
});
});
我不知道这是否为您工作(消耗产品的此代码):
await RNIap.finishTransaction(purchase).then(async () => {
await RNIap.consumePurchaseAndroid(purchase.purchaseToken).then(async () => {
console.log('purchase :', purchase)
}).catch(err => {
console.log('consume error: ', err.code, err.message)
Alert.alert('consume finish error: ', err.message)
});
}).catch(err => {
console.log('finish error: ', err.code, err.message)
Alert.alert('purchase finish error: ', err.message)
})
我需要先完成交易,然后再按上面的代码,将consumperPurchaseAndroid()取消,以撤销购买。 希望能帮助到你。
我知道了:我只是为Android制作了这些特定的行,但是这样做的需要在文档中并不很明显。 现在,它可以在Android和iOS上使用:
// on Android we need to acknowledge purchase or finishTransaction fails
// if we do not acknowledge, purchase will roll back in 5 min
RNIap.acknowledgePurchaseAndroid(purchase.purchaseToken).then(() => {
RNIap.finishTransaction(purchase, true).catch(err => {
console.log(err.code, err.message);
});
});
这似乎也对我有用,我正在使用v5.0.0
最有用的评论
我知道了:我只是为Android制作了这些特定的行,但是这样做的需要在文档中并不很明显。 现在,它可以在Android和iOS上使用:
// on Android we need to acknowledge purchase or finishTransaction fails
// if we do not acknowledge, purchase will roll back in 5 min
RNIap.acknowledgePurchaseAndroid(purchase.purchaseToken).then(() => {
RNIap.finishTransaction(purchase, true).catch(err => {
console.log(err.code, err.message);
});
});