Anonymous
Как признать потребление потребления в приложении
Сообщение
Anonymous » 02 фев 2025, 10:17
Когда приложение загружается в home.tsx я сделал:
Код: Выделить всё
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>
Затем, когда нажата кнопка покупки, я делаю: < /p>
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);
}
};
В CurrentPurchase @ antippringListener Я вижу TransactionReceipt , напечатанный после успешной покупки, но это меняет мне:
Код: Выделить всё
{\"orderId\":\"GPA.3393-1976-6765-68323\",\"packageName\":\"com.simformLLC.iapdemo\",\"productId\":\"com.simformllc.iapdemo.years\",\"purchaseTime\":1706781727369,\"purchaseState\":0,\"purchaseToken\":\"gdpkmemapmpmmbgjakpccknl...\",\"quantity\":1,\"autoRenewing\":true,\"acknowledged\":false}
Как вы можете видеть, подтвержденное: false , и я не уверен, почему или как это исправить.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... p-purchase
1738480639
Anonymous
Когда приложение загружается в home.tsx я сделал: [code] 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> Затем, когда нажата кнопка покупки, я делаю: < /p> 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); } }; [/code] В CurrentPurchase @ antippringListener Я вижу TransactionReceipt , напечатанный после успешной покупки, но это меняет мне: [code]{\"orderId\":\"GPA.3393-1976-6765-68323\",\"packageName\":\"com.simformLLC.iapdemo\",\"productId\":\"com.simformllc.iapdemo.years\",\"purchaseTime\":1706781727369,\"purchaseState\":0,\"purchaseToken\":\"gdpkmemapmpmmbgjakpccknl...\",\"quantity\":1,\"autoRenewing\":true,\"acknowledged\":false} [/code] Как вы можете видеть, подтвержденное: false , и я не уверен, почему или как это исправить. Подробнее здесь: [url]https://stackoverflow.com/questions/79406197/how-do-i-acknowledge-consumable-in-app-purchase[/url]