As a Roblox developer, it is currently too hard to give players a fair experience when buying products due to roblox service failures leading to multiple transactions on single use purchases. Sometimes a gamepass doesn’t suit the use for a one time purchase and if players manage to double transact, they will never be granted the purchase because the dev product can only be applied once.
If we were able to reject purchases outright instead of only marking “NotProcessedYet” it would allow us to actually handle invalid transactions rather than just making the player wait days to receive a refund.
If Roblox is able to address this issue, it would improve my development experience because it would allow players to get what they paid for, and if not that then a prompt refund.
Another option would be allowing a limit for the number of times a developer product could be purchased. Either way works for me…
From the API
The supported ProductPurchaseDecision values in Roblox are:
- NotProcessedYet: This value indicates that the purchase request has been sent but has not yet been processed. It could mean that the purchase is still being reviewed or that there is a delay in processing the purchase.
- PurchaseGranted: This value indicates that the purchase has been processed and granted to the user who initiated the purchase request. It means that the player has successfully received the benefit or item associated with the developer product.
These two values are used in conjunction with the MarketplaceService and the sale of developer products in Roblox. They help determine the status of a purchase and whether the player should receive the intended benefit or not.
We need Enum.ProductPurchaseDecision.PurchaseRejected so we can refund a player immediately OR single purchase dev products to prevent the issue entirely.
To be totally clear, gamepasses are not an option because things that have pre-requisites for the purchase cannot be applied to gamepasses since they are available outright on the website and there is no way to guard forced purchases from the client.