--- title: "Google Play Store Integration" slug: "google-play-store-integration" updated: 2026-07-09T05:06:14Z published: 2026-07-09T05:06:14Z canonical: "help.frisbii.com/google-play-store-integration" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.frisbii.com/llms.txt > Use this file to discover all available pages before exploring further. # Google Play Store Integration Your backend receives the Google Play purchase token from the app and forwards it to Frisbii Media for validation. Frisbii Media validates it server-to-server with Google and returns an `inAppToken`. --- ## Add a Google Play purchase ```php /** * @Route("/google/purchases/add", name="GooglePurchase", methods={"POST"}) */ public function addGooglePurchase(Request $request): Response {    $content       = json_decode($request->getContent(), true);    // The app package name sent by the app as a request header    $appIdentifier = $request->headers->get('x-app-bundle');    // @see https://api.frisbii-media.com/#tag/App-Stores/operation/addGooglePlaystorePurchase    $response = json_decode($client->request('POST', '/appstores/google/purchases', [        'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],        'json'    => [            'appIdentifier' => $appIdentifier,            'purchaseToken' => $content['purchaseToken'], // purchase token from Google Play Billing            'productId'     => $content['productId'],     // Google Play product/SKU ID        ],    ])->getBody()->getContents(), true);    // inAppToken identifies this purchase until it is associated with a customer    $inAppToken = $response['inAppToken'];    return new JsonResponse(['inAppToken' => $inAppToken]); } ``` --- ## Verify an existing Google Play purchase Google sends Real-time Developer Notifications (RTDN) via Pub/Sub to your backend for subscription events — renewals, cancellations, refunds, and so on. Forward each notification to Frisbii Media using the verify endpoint to keep the subscription state in sync. ```php /** * @Route("/google/purchases/verify", name="GooglePurchaseVerify", methods={"POST"}) */ public function verifyGooglePurchase(Request $request): Response {    $content       = json_decode($request->getContent(), true);    $appIdentifier = $request->headers->get('x-app-bundle');    // @see https://api.frisbii-media.com/#tag/App-Stores/operation/verifyGooglePlaystorePurchase    $response = json_decode($client->request('PUT', '/appstores/google/purchases/verify', [        'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],        'json'    => [            'appIdentifier' => $appIdentifier,            'purchaseToken' => $content['purchaseToken'],            'productId'     => $content['productId'],        ],    ])->getBody()->getContents(), true);    return new JsonResponse($response); } ``` > [!TIP] > **Tip:** The verify endpoint is idempotent — passing the same purchase token more than once does not create a duplicate order. --- ## Request payload reference | Field | Description | | --- | --- | | `appIdentifier` | Your Google Play application package name (e.g. `com.example.myapp`) | | `purchaseToken` | The purchase token returned by Google Play Billing after a successful purchase | | `productId` | The product or SKU identifier as configured in Google Play Console | --- ## Configuring Google Real-time Developer Notifications To receive ongoing subscription lifecycle events from Google, you must configure RTDN in the Google Play Console: 1. Go to **Google Play Console → Your app → Monetisation setup → Real-time developer notifications** 2. Set the Pub/Sub topic to your backend's verify endpoint URL 3. Google will send a Pub/Sub message for every subscription event; decode the `data` field (base64) to get the notification payload Pass the `purchaseToken` and `productId` from the decoded notification to the verify endpoint. --- ## API reference - [addGooglePlaystorePurchase](https://api.plenigo.com/#tag/App-Stores/operation/addGooglePlaystorePurchase) - [verifyGooglePlaystorePurchase](https://api.plenigo.com/#tag/App-Stores/operation/verifyGooglePlaystorePurchase) ---