verifyPurchase

This section contains the API reference for Verify Purchase API and the sample request code segments.

Description

The verifyPurchase API is used to verify the in-app product purchase before assigning the IAP product to the user.

Important Information

  • This API must be called from your app backend server.

Base URL

 https://payments-api.now.gg/

Request Path

 v2/seller/order/verifyPurchase

Request Method

 POST

Request Header

 'Authorization': '<payment_api_key_here>',
  'Content-Type': 'application/x-www-form-urlencoded'

Request Body

The following params should be included within the request body with verifyPurchase API:

 "purchaseToken": "<purchase_token_here>",
  "productId": "<product_id_here>", // Required only for multi-store
  "currency": "<currency>", // Required only for multi-store
  "type": "<store>"  // xiaomi | onestore | amazon | huawei // Required only for multi-store

Note: If type is not present, fallback value will be nowgg.


Sample Request

The following sample code illustrates the associated request using the verifyPurchase API.

import requests

 url = "https://payments-api.now.gg/v2/sellers/order/verifyPurchase"

 headers = {
     "Authorization": "<payment_api_key_here>",
     "Content-Type": "application/x-www-form-urlencoded"
 }

 data = {
     "purchaseToken": "<purchase_token_here>", 
     "productId": "<product_id_here>", // Required only for multi-store
     "currency": "<currency>", // Required only for multi-store
     "type": "<store>"  // xiaomi, onestore, amazon, huawei. If not present, the fallback value will be nowgg.
 }

response = requests.post(url, headers=headers, data=data)

print("Response Status Code:", response.status_code)
print("Response Body:", response.text)
curl --location --request POST 'https://payments-api.now.gg/v2/sellers/order/verifyPurchase' \
--header 'Authorization: <payment_api_key_here>' \
--header 'Content-Type': 'application/x-www-form-urlencoded' \
--data '{
    "purchaseToken": "<purchase_token_here>",
    "productId": "<product_id_here>", // Required only for multi-store
    "currency": "<currency>", // Required only for multi-store
    "type": "<store>"  // xiaomi | onestore | amazon | huawei //If not present, the fallback value will be nowgg.
}'

Important Information


Expected Response

The following is a sample response from the verifyPurchase API.

{
    "success": true,
    "code": 0,
    "codeMsg": "success",
    "data": {
      "purchaseTimeMillis": "1630529397125", // This field has been deprecated, use purchaseTime instead.
      "purchaseTime": "1630529397125",
      "purchaseState": 0,
      "consumptionState": 0,
      "developerPayload": "<developer_payload>",
      "orderId": "<orderId_here>",
      "appId": "3", 
      "kind": "nowgg#productPurchase",
      "regionCode": "US",
      "currency": "USD",
      "packageName": "<package_name>",
      "payStatusTxt": "Paid",
      "orderAmount": "25.15",
      "isTestOrder": false,
      "payTimeTxt": "2024 - 10 - 3006: 08: 01",
      "sellerGoodsId": "11223343",
      "purchaseToken": "241028222221SGP61717", 
      "productId": "11223343" 
    }
 }

Important Information

  • Some response values may return null or be specific to the selected store based on the configurations set for the multi-store environment.

Response Params

Params Type Description
success boolean Returns success as true or false.
code int Returns 0 for success and non-zero for failure.
codeMsg string Returns msg related to error code. (Provided here)
purchaseTimeMillis (DEPRECATED) string The time the product was purchased, in milliseconds since the epoch. This field has been deprecated, use purchaseTime instead.
purchaseTime string The time the product was purchased, in seconds since the epoch.
purchaseState int The purchase state of the order. Possible values are:
0: Unpaid, 1: Paid, 2: Failed
appId string Unique Identifier for your app. Same as Payment ID.
consumptionState int The consumption state of the in-app product. Possible values are:
0: Yet to be consumed, 1: Consumed
developerPayload string A developer-specified string containing supplemental information about an order.
orderId string The order ID (Unique transaction identifier) associated with every in-app purchase product.
kind string The kind of in-app product purchased with a hardcoded type nowgg#productPurchase.
regionCode string ISO 3166-1 alpha-2 billing region code of the user at the time the product was granted.
currency string The currency of the purchase. Examples – USD, INR, etc.
packageName string The packageName associated with your app.
payStatusTxt string Payment status as Paid or Unpaid.
orderAmount string The orderAmount of your purchase.
isTestOrder boolean Returns results as true or false if the order is generated during testing.
payTimeTxt string Payment date and time associated with a purchase.
sellerGoodsId string Unique identifier for the purchased product, identical to `productId`. This is provided for backward compatibility.
productId string Unique identifier for the purchased product.
purchaseToken string The purchaseToken associated with a purchase.

Error Code Mapping

Error Code Message Description
3900 INVALID_AUTHORIZATION_KEY The API Key provided for authorization is invalid.
3901 INVALID_PURCHASE_TOKEN The provided purchase token is invalid.
5014 MULTISTORE_UNKNOWN_ERROR Indicates a generic error from the Multistore API.
5015 MULTISTORE_AUTH_ERROR Indicates an error while generating auth/credentials for Multistore API.
×
Text copied to clipboard
Link copied to clipbord
Questions? Please reach out to us at dev-support@now.gg