I just wonder how can it happen.
I already call ValidateGooglePlayPurchase after I get a receipt from google whenever a user using in-app payment.
I used Playfab for almost 4 years but it is the first time for me.
I just wonder how can it happen.
I already call ValidateGooglePlayPurchase after I get a receipt from google whenever a user using in-app payment.
I used Playfab for almost 4 years but it is the first time for me.
Thank you for reporting this issue. Currently, PlayFab doesn't check the "purchaseState" in each receipt. Our engineering team has aware of this. As a workaround, please check purchase state in client before calling ValidateGooglePlayPurchase method as Google said: https://developer.android.com/google/play/billing/integrate#pending.
PlayFab calls google API to validate receipt from google, so it's google who returns true. However, the cancellation of the payment is shown on google console. So, this issue seems to be caused by google play, you can ask google support for help.
After I checked that user’s player_receipt_validation log.
I can find this “purchaseState: 4" in ReceiptContent.
"purchaseState: 0" means success purchase as I know.
So, I wonder how can this receipt pass validate receipt API.
I was actually about to post this question, I have seen the exact same issue @Ivan Cai. Can you talk via email? I can show you what's going on.
Our engineering team is implementing the server-side check according to Google’s recommendations: https://developer.android.com/google/play/billing/security#verify. As it’s using Google Play Developer API to verify with Google that the purchase is legitimate, we will need you provide the Service account key field in Game Manager.
You can create a service account as following Getting Started | Google Play Developer API | Google Developers. In this process, you can create a private key. The private key is downloaded to your machine and is the only copy of this key. This private key is what we need. Please enter the whole JSON into Service Account Key section. When it is saved successfully, you will only see the private key id in GM.
3 People are following this question.