verifyPurchase

本节包含验证购买API(Verify Purchase API)的参考资料和示例请求代码片段。

描述

verifyPurchase API用于在将IAP产品分配给用户前,验证应用内产品的购买。

重要信息

  • 此API须从您应用的后端服务器调用。

基础URL(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'

请求正文

以下参数应包含在 verifyPurchase API 的请求正文中:

"purchaseToken": "<purchase_token_here>",
 "productId": "<product_id_here>", // 已弃用
 "type": "<store>" // 已弃用

重要信息

  • productIdtype 字段已弃用。

示例请求

以下示例代码阐明了使用 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>" 
}

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

print("响应状态码:", response.status_code)
print("响应正文:", response.text)
curl -X \
  POST "https://payments-api.now.gg/v2/sellers/order/verifyPurchase" \
   -H \
  "Authorization: <payment_api_key_here>" \
   -H \
  "Content-Type: application/x-www-form-urlencoded" \
   -d "purchaseToken=<purchase_token_here>"

重要信息


预期响应

以下内容展示了 now.ggONEStoreXiaomi 商店的 verifyPurchase API 示例响应。

{
    "success": true,
    "code": 0,
    "codeMsg": "success",
    "data": {
        "appId": "11001",
        "consumptionState": 0,
        "currency": "USD",
        "developerPayload": "<developer_payload>",
        "isTestOrder": false,
        "kind": "nowgg#productPurchase",
        "orderAmount": "25.15",
        "orderId": "<orderId>",
        "packageName": "<package_name>",
        "payStatusTxt": "Unpaid",
        "payTimeTxt": "2024 - 10 - 3006: 08: 01",
        "productId": "11223343",
        "purchaseState": 0,
        "purchaseTime": "1630529397",
        "purchaseTimeMillis": "1630529397125",
        "purchaseToken": "241028222221SGP61717",
        "regionCode": "US",
        "sellerGoodsId": "11223343"
    }
}
{
    "success": true,
    "code": 0,
    "codeMsg": "success",
    "data": {
        "appId": "11001",
        "consumptionState": 0,
        "countryCode": null,
        "currency": null,
        "developerPayload": "<developer_payload>",
        "environment": "release",
        "isTestOrder": false,
        "kind": null,
        "orderAmount": null,
        "orderId": "<orderId>",
        "packageName": "<package_name>",
        "payStatusTxt": "Paid",
        "payTimeTxt": null,
        "productId": "11223343",
        "productName": "<product_name>",
        "purchaseState": 1,
        "purchaseTime": "1763642919000",
        "purchaseTimeMillis": "1763642919000",
        "purchaseToken": "241028222221SGP61717",
        "regionCode": null,
        "sellerGoodsId": "11223343"
     }
}
{
     "success": true,
     "code": 0,
     "codeMsg": "success",
     "data": {
         "appId": "10362",
         "consumptionState": 0,
         "countryCode": "FR",
         "currency": null,
         "developerPayload": null,
         "environment": "release",
         "isTestOrder": false,
         "kind": null,
         "orderAmount": null,
         "orderId": "<orderId>",
         "packageName": "<package_name>",
         "payStatusTxt": null,
         "payTimeTxt": null,
         "productId": "11223343",
         "productName": "<product_name>",
         "purchaseState": 1,
         "purchaseTime": "1763643382000",
         "purchaseTimeMillis": "1763643382000",
         "purchaseToken": "PFR251120205611111111395373223875",
         "regionCode": "FR",
         "sellerGoodsId": "11223343"
     }
}

重要信息

  • 响应值可能因处理购买的商店不同而有所差异,如果某些信息不可用或不受支持,则字段可能返回 null
  • 请参考上方各商店的示例响应,以了解不同商店之间字段可用性和字段值差异。

响应参数

参数 类型 描述
success boolean 返回是否成功,true或false。
code int 成功返回0,失败返回非0
codeMsg string 返回错误码关联的消息。(错误码参考此处
appId string 应用的唯一标识符。与支付ID相同。
consumptionState int 应用内产品的消费状态。可能的取值有:
0:还未消费,1:已消费
countryCode string 用户在购买时的国家代码。该值可能因商店或用户的账单地区而不同,某些商店可能返回 null
currency string 购买所用的货币。示例 – USD、INR 等。
developerPayload string 由开发者指定的字符串,包含订单的补充信息。
environment string 表示购买被处理的环境。
release: 真实的生产环境购买
sandbox: 测试或开发环境购买(因商店而异)
isTestOrder boolean 返回是否是测试订单。
kind string 购买的应用内产品的硬编码类型 nowgg#productPurchase
orderAmount string 您购买的 orderAmount
orderId string 关联每个应用内购买产品的订单ID(唯一交易标识符)。
packageName string 您应用关联的 packageName
payStatusTxt string 已支付或未支付的状态。
payTimeTxt string 购买关联的支付日期和时间。
productId string 已购买产品的唯一标识符。
productName string 已购买商品的商品名称。
purchaseState int 订单的购买状态。可能的取值有:
0:未支付,1:已支付,2:失败
purchaseTime string 产品的购买时间,自纪元以来的秒数。
purchaseTimeMillis (弃用) string 购买产品的时间,以自纪元(epoch)以来的毫秒数表示。此字段已弃用,请使用 purchaseTime 代替
purchaseToken string 与购买相关联的 purchaseToken
regionCode string 产品被授予时,用户的计费区域代码(ISO 3166-1 alpha-2)。
sellerGoodsId string 购买产品的唯一标识符,与 productId 相同。这是为了向后兼容而提供的。

错误代码映射

错误代码 消息 描述
3900 INVALID_AUTHORIZATION_KEY 提供的用于授权的API秘钥无效。
3901 INVALID_PURCHASE_TOKEN 提供的购买令牌无效。
5014 MULTISTORE_UNKNOWN_ERROR 表示来自Multistore API的通用错误。
5015 MULTISTORE_AUTH_ERROR 表示在生成Multistore API的认证/凭据时发生错误。
×
文本已复制到剪贴板
copyLinkText
有疑问?请通过以下方式联系我们: dev-support@now.gg