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'

请求主体(Request Body)

以下参数须包含于 verifyPurchase API的请求主体中。

 "purchaseToken": "<purchase_token_here>",
  "productId": "<product_id_here>", // 仅适用于多商店
  "currency": "<currency>",  // 仅适用于多商店
  "type": "<store>"  // xiaomi | onestore | amazon | huawei 如果不存在,则默认值为 nowgg。

注意: 如果type不存在,默认值将为 nowgg。


示例请求

以下示例代码阐明了使用 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>", // 仅适用于多商店
    "currency": "<currency>", // 仅适用于多商店
    "type": "<store>"  // 选项: xiaomi, onestore, amazon, huawei. 如果不存在,则默认值为 nowgg。
}

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

print("响应状态码:", response.status_code)
print("响应正文:", 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>", // 仅适用于多商店
    "currency": "<currency>", // 仅适用于多商店
    "type": "<store>"  // xiaomi | onestore | amazon | huawei 如果不存在,则默认值为 nowgg。
}'

重要信息


预期响应

以下是 verifyPurchase API的示例响应。

{
    "success": true,
    "code": 0,
    "codeMsg": "success",
    "data": {
      "purchaseTimeMillis": "1630529397125", // 此字段已被弃用,请改用 purchaseTime。
      "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" 
    }
 }

重要信息

  • 某些响应值可能会根据多商店环境的配置返回为 null 或特定于所选的商店。

响应参数

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

错误代码映射

错误代码 消息 描述
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