Mis à jour le 18. février 2024 par Jan Bunk
Bien que la configuration de votre propre point de vérification soit un peu compliquée, nous passerons en revue les principales étapes dans ce guide pour vous orienter dans la bonne direction.
L'application enverra un objet JSON via une requête POST tel que le suivant à votre point de terminaison de vérification :
Exemple JSON d'achat sur Google Play :
{
// the userIdentifier you passed via Javascript
"userIdentifier": "user123",
// your app's ID (only relevant if you have multiple apps using the same verification endpoint)
"appId": 1234,
"purchaseDetails": {
"verificationData": {
"serverVerificationData": "abcdefghijklmnopqrstuvwx.AO-J1Oyabcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopq",
// the "autoRenewing" property in localVerificationData is only sent if the product is a subscription
"localVerificationData": "{\"orderId\":\"GPA.1234-1234-1234-12345\",\"packageName\":\"example.package.name\",\"productId\":\"exampleProductId\",\"purchaseTime\":1643389081662,\"purchaseState\":0,\"purchaseToken\":\"abcdefghijklmnopqrstuvwx.AO-J1Oyabcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopq\",\"autoRenewing\":true,\"acknowledged\":false}",
"source": "google_play"
},
"productID": "consumable",
"purchaseID": "GPA.1234-1234-1234-12345",
// can also be "restored" if triggered by a call to restorePurchases()
"status": "purchased",
"transactionDate": "1643389081662"
}
}
}
Exemple JSON d'achat sur l'App Store :
{
// your app's ID (only relevant if you have multiple apps using the same verification endpoint)
"appId": 1234,
// the userIdentifier you passed via Javascript
"userIdentifier": "user123",
"purchaseDetails": {
"verificationData": {
"serverVerificationData": "veryLongBase64String",
"localVerificationData": "veryLongBase64String",
"source": "app_store"
},
"productID": "consumable",
"purchaseID": "123",
// can also be "restored" if triggered by a call to restorePurchases()
"status": "purchased",
"transactionDate": "1644239123000"
}
}
Ensuite, sur la base du source
, vous devez vérifier l'achat avec Google Play (if source==google_play
) ou avec l'App Store (if source==app_store
).
Puis, si l'achat est valide, vous devez accorder à l'utilisateur l'accès au produit acheté.
Vous aurez principalement besoin de l'userIdentifier
(qui est la chaîne que vous avez passée lorsque vous avez appelé makeInAppPurchase
dans le JavaScript de votre site web) pour déterminer à qui débloquer les produits et de l'productID
pour déterminer quel produit débloquer pour l'utilisateur.
Une fois qu'un achat intégré dans l'application - en particulier un abonnement - a été effectué, vous devez être informé de toute modification apportée à cet achat. Par exemple, vous serez informé de l'annulation d'un abonnement ou du remboursement d'un achat intégré dans une application, ce qui vous permettra de révoquer les avantages que l'utilisateur tire de l'abonnement.
Enfin, renvoyez un code d'état 200 et ce JSON, afin que l'application puisse confirmer l'achat :
{
"complete_purchase": true
}
Ou, si l'achat n'est pas valide, renvoyez un code d'état 200 et ce JSON, auquel cas l'application ne confirmera pas l'achat :
{
"complete_purchase": false
}
Si vous ne renvoyez pas un code d'état 200, l'application essaiera de répéter la demande. Si l'application ne parvient pas à obtenir une réponse indiquant que l'achat a été vérifié, elle ne confirmera pas l'achat. L'achat sera alors automatiquement remboursé dans un délai de trois jours (s'il était effectivement valable).
Voici une liste de pages connexes sur les achats intégrés :