Comment configurer votre point de terminaison de déverrouillage de produits in-app

Mis à jour le 22. juin 2023 par Jan Bunk


Si vous configurez vos paramètres d'achat intégré dans l'application pour utiliser notre point de terminaison de vérification d'achat intégré géré, ce point de vérification (après avoir vérifié l'achat) envoie via une requête POST un objet JSON tel que celui qui suit à votre point de terminaison de déverrouillage :

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 :


{
  "appId": 1234,
  "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"
  }
}
    

Déverrouiller les produits achetés

Vous aurez principalement besoin du userIdentifier (qui est le userIdentifier que vous avez passé lorsque vous avez appelé makeInAppPurchase dans le JavaScript de votre site web) pour déterminer pour qui débloquer les produits et 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.

Résultat attendu

Une fois que vous avez terminé, votre point de terminaison doit renvoyer un code d'état 200. Si ce n'est pas le cas, notre serveur de vérification essaiera de répéter la demande. Si le serveur de vérification ne parvient pas à obtenir une réponse indiquant que les produits ont été déverrouillés, l'application ne confirmera pas l'achat. L'achat sera alors automatiquement remboursé dans un délai de 3 jours.

Vous pouvez utiliser notre point de déverrouillage temporaire sans option à des fins de test. De cette façon, vous pouvez vous assurer que les achats in app n'échouent pas parce que votre serveur renvoie un code d'état incorrect ou quelque chose comme ça. Voici l'URL du point de déverrouillage que vous pouvez utiliser dans vos paramètres d'achat in app : https://webtoapp.design/apps/test_unlock_in_app_purchase/