Isacknoweddgedandroid ist für Verbrauchsmaterial immer falsch
Posted: 02 Feb 2025, 08:10
Beschreibung
Als erstes Mal implementiert ich den In-App-Kauf, sodass ich möglicherweise etwas weniger Wissen über den gesamten Lebenszyklus des IAP habe. Ich habe nur In-App-Produkte, um virtuelle Münzen zu kaufen, die der Benutzer so oft kaufen kann, wie er es gefällt. kann bis zu drei Änderungen summiert werden: < /p>
[*] Der Einstiegspunkt der App mit meinem Navigator usw. Ich habe in der Startseite
in der Startseite. .TSX lädt in jedem Fall, d. H. AUTH- oder Nicht-Auth-Benutzer, eingehalten, wobei ich den Kaufverfahren hinzugefügt habe, und hier geschieht auch. /code> Bildschirm ist, an dem ich products sowie requestPurchase Wenn eine Kauftaste gedrückt wird Punkte oben finden Sie hier der Code:
app.tsx
Home.tsx
buycoins.tsx
Erwartete Verhalten
Wenn ich es kaufe, geht es erfolgreich durch, aber in der Beendigung der Zahlung, wenn ich versuche, den Transaktionsreceipt < /Code> Ich erhalte: < /p>
Die "Anerkennung": Falsch sollte wahr sein, da es sich um ein Verbrauchsmaterial handelt und sobald der Benutzer jedes Produkt kauft, sollte es zurückgeben, weil ich es nach der Wartedauer von FinishTransaction angerufen habe. ..
Screenshots
n/a
Umgebung: < /strong> < /p>
React-nativ-iap: 12.16.0 < /li>
React-native : 0.75.4 < /li>
Plattformen (iOS, Android, Emulator, Simulator, Gerät): Android -Emulator und physisches Gerät < /li>
< /ul>
< HR />
[Optional] Zusätzlicher Kontext < /strong> < /p>
Ich erhalte manchmal einen Fehler in der FinishTransaction [Fehler: Kauf fehlgeschlagen mit Code: 8] < /Code>
Als erstes Mal implementiert ich den In-App-Kauf, sodass ich möglicherweise etwas weniger Wissen über den gesamten Lebenszyklus des IAP habe. Ich habe nur In-App-Produkte, um virtuelle Münzen zu kaufen, die der Benutzer so oft kaufen kann, wie er es gefällt. kann bis zu drei Änderungen summiert werden: < /p>
[*]
Code: Select all
App.tsx
in der Startseite. .TSX lädt in jedem Fall, d. H. AUTH- oder Nicht-Auth-Benutzer, eingehalten, wobei ich den Kaufverfahren hinzugefügt habe, und hier geschieht auch. /code> Bildschirm ist, an dem ich products sowie requestPurchase Wenn eine Kauftaste gedrückt wird Punkte oben finden Sie hier der Code:
app.tsx
Code: Select all
useEffect(() => {
const initIAP = async () => {
try {
await initConnection();
if (Platform.OS == 'android') {
await flushFailedPurchasesCachedAsPendingAndroid();
} else {
// TODO: Add code to handle iOS purchases
// await clearTransactionIOS();
}
} catch (error) {
console.log('Error initializing IAP: ', error);
}
};
initIAP();
return () => {
endConnection();
};
}, []);
Code: Select all
const {
currentPurchase,
finishTransaction,
getProducts,
} = useIAP();
useEffect(() => {
const subscriptionListener = purchaseUpdatedListener(
async (_purchase: Purchase) => {
if (currentPurchase) {
//TODO: Send the receipt to the server
await finishTransaction({
purchase: currentPurchase,
isConsumable: true,
});
console.log(
'currentPurchase @ subscriptionListener: ',
currentPurchase.transactionReceipt,
);
}
},
);
return () => {
subscriptionListener.remove();
};
}, []);
Code: Select all
const handleGetProducts = async () => {
try {
if (constants.productSkus) {
await getProducts({ skus: constants.productSkus });
}
} catch (error) {
errorLog({ message: 'handleGetProducts', error });
}
};
const handleProductPurchase = async (sku: Sku) => {
try {
let purchaseParams: RequestPurchase = {
sku,
andDangerouslyFinishTransactionAutomaticallyIOS: false,
};
if (Platform.OS === 'android') {
purchaseParams = { skus: [sku] };
}
await requestPurchase(purchaseParams);
} catch (error) {
console.log('err: ', error);
setIsLoading(false);
}
};
Wenn ich es kaufe, geht es erfolgreich durch, aber in der Beendigung der Zahlung, wenn ich versuche, den Transaktionsreceipt < /Code> Ich erhalte: < /p>
Code: Select all
{"orderId":"ABC123","packageName":"com.MYAPP.TEST","productId":"passtest","purchaseTime":1234,"purchaseState":0,"purchaseToken":"safkhbvkhvbkfhbvfehbv","quantity":1,"acknowledged":false}
Screenshots
n/a
Umgebung: < /strong> < /p>
React-nativ-iap: 12.16.0 < /li>
React-native : 0.75.4 < /li>
Plattformen (iOS, Android, Emulator, Simulator, Gerät): Android -Emulator und physisches Gerät < /li>
< /ul>
< HR />
[Optional] Zusätzlicher Kontext < /strong> < /p>
Ich erhalte manchmal einen Fehler in der FinishTransaction [Fehler: Kauf fehlgeschlagen mit Code: 8] < /Code>