This week, our game had a massive outage of our product purchases handler. As such, purchases that occurred over a 3 day period were rejected and the callback returned as NotProcessedYet
.
It is my new understanding, after some digging, that a return of NotProcessedYet
nullifies the typical behavior where funds are held in escrow for 72 hours and returned to the player if PurchaseGranted
is never returned for the receipt. It is also my understanding, as it has always been, that unsuccessful purchases marked NotProcessedYet
should indefinitely re-invoke ProcessReceipt when the player rejoins, as is stated in the documentation for MarketplaceService.
However, it appears that these receipts are NOT being reprocessed when players are rejoining my game. I have verified that the initial return for the user’s purchase would have been NotProcessedYet
. I have verified, on multiple case-by-case basis’, users whose transactions were unsuccessful did not return PurchaseGranted
. However, my game is no longer attempting to process their receipts. Users are also not receiving their refunds after the escrow period, which I have been informed will not happen because NotProcessedYet
voids this behavior; yet the receipts never received a PurchaseGranted
callback.
What on earth am I to do in order to return/reimburse players for the purchases they made? If NotProcessedYet
forces the transaction into a state of infinite re-attempts and will never refund the player their Robux, but it is indeed NOT re-attempting the transaction when players join, what is the solution to this problem?
Am I misunderstanding the documentation/other threads I have viewed on this topic?