Hi team,
we use Playfab payment API but at times, we find its happened that items were not provided accordingly.
Project ID : D4D8
Code we're writing is as follows:
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
{
...Other Script...
PlayFabClientAPI.ValidateGooglePlayPurchase(new ValidateGooglePlayPurchaseRequest()
{
// Pass in currency code in ISO format
CurrencyCode = e.purchasedProduct.metadata.isoCurrencyCode,
// Convert and set Purchase price
PurchasePrice = (uint)(e.purchasedProduct.metadata.localizedPrice * 100),
// Pass in the receipt
ReceiptJson = googleReceipt.PayloadData.json,
// Pass in the signature
Signature = googleReceipt.PayloadData.signature
},
result =>
{
Debug.Log("Validation successful!");
…InApp PurchaseUI Complete Script...
},
error =>
{
Debug.Log("Validation failed: " + error.GenerateErrorReport());
…InApp PurchaseUI Complete Script...
});
}
When using [PlayFabClientAPI.ValidateGooglePlayPurchase], we were able to see that item purchased(paid for) has been provided in to [Inventory] of the [Title Player].
However, what we're trying to say of is that [result =>, error =>] doesn't perform.
Items paid for(purchased) are provided normally to most of users, but the issue we've mentioned keep happening only to certain users over and over.
We would like to know the reason WHY and HOW to solve this problem.
Unity 3D version : 2018.3.12 ~ 2019.2.2f1
Unity IAP in use
PlayFab SDK version : up to date, at all times
May I ask what do you mean by "[result =>, error =>] doesn't perform" ? If ValidateGooglePlayPurchase is called, either success callback or fail callback will be returned. Can you confirm that this API has been sent successfully?
You may also keep a copy of details in ValidateGooglePlayPurchaseRequest and try to manually send it via RESTful API testing tools like Postman. Any reproductions, information about title ID, player ID will be helpful.