Return CurrencySpent with MarketplaceService.PromptPurchaseFinished and MarketplaceService.PromptGamePassPurchaseFinished

As a Roblox developer, it is currently too hard to …
It is impossible to be 100% sure of the price a player paid for Gamepasses, Tshirt, Shirt and Pants since the MarketplaceService doesnt return the CurrencySpent. Why DeveloperProduct are doing it but not the rest??

If Roblox is able to address this issue, it would improve my development experience because …
In games like PLS Donate, ( I’m the owner of a similar game ) It will fix the fact that some players are changing their gamepass price while purchasing it and fake Big Purchase

15 Likes

I wouldn’t say it’s “impossible” to be sure of the price a player paid. But, I guess you could make the argument it is “harder”, although it takes one more function call, :GetProductInfo().

5 Likes

From the time the player changed the price of the Product and the time you get the Right price after doing your GetProductInfo() its too late.

it takes around 10 to 60 second for roblox to update the price on the Product info after a player changed it.

6 Likes

Oh, I didn’t know this, I can see this being a pretty big issue then.

7 Likes

Call getproductinfo before prompting purchase.

Would definitely be helpful if roblox implemented current spent, though.

7 Likes

To make it clear, you should always be doing this, no matter if GetProductInfo gets updated immediately or not. Most Roblox purchases employ an “expected price” system, in-where if a player is prompted to buy an item for x price and the price is changed to y while the prompt is displayed, it will deny the sale since the client will send an outdated “expected price” to the purchase endpoint.

Is there any documentation on this or is this from personal experience? This sounds like something that should be addressed in the original post because feature-requests are generally to address problems and not solutions. If this was mentioned in the OP, other solutions may be possibly discussed such as allowing GetProductInfo to have no cache or returning cost as an argument of PromptPurchase.

4 Likes

So you think its normal that Roblox are not returning the paid price? I think that its a major issue.

2 Likes

That’s a strange way to interpret the post since that’s not what is being said at all. It’s being mentioned that you should be fetching the price of an item from GetProductInfo for display purposes or before prompting and that most Roblox in-experience purchases have an expected price, not a fluctuating one.

Though in my personal opinion, I wouldn’t agree with a feature like this because it would break convention with the rest of the purchase prompt finished signals, so at least from me yes I do think it’s normal that the price isn’t returned because your use case is niche.

I do think there are more useful things such as consolidating all prompt finished APIs into a single signal and returning an object containing information about the finished purchase much like how the engine calls the developer-assigned ProcessReceipt callback with information about a purchased product. This would really only matter to me as a developer for custom analytics.

1 Like