本节包含验证购买API(Verify Purchase API)的参考资料和示例请求代码片段。
verifyPurchase API用于在将IAP产品分配给用户前,验证应用内产品的购买。
https://payments-api.now.gg/
v2/seller/order/verifyPurchase
POST
'Authorization': '<payment_api_key_here>', 'Content-Type': 'application/x-www-form-urlencoded'
以下参数应包含在 verifyPurchase API 的请求正文中:
"purchaseToken": "<purchase_token_here>", "productId": "<product_id_here>", // 已弃用 "type": "<store>" // 已弃用
productId 和 type 字段已弃用。以下示例代码阐明了使用 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>"
Payments API Key 可以在nowStudio的证书板块找到。更多信息。purchaseToken 在成功购买后返回。您可以参考下列文档获取更多信息:以下是 verifyPurchase API的示例响应。
{
"success": true,
"code": 0,
"codeMsg": "success",
"data": {
"purchaseTimeMillis": "1630529397125", // 此字段已被弃用,请改用 purchaseTime。
"purchaseTime": "1630529397",
"purchaseState": 0,
"consumptionState": 0,
"developerPayload": "<developer_payload>",
"orderId": "<orderId_here>",
"appId": "3",
"kind": "nowgg#productPurchase",
"regionCode": "US",
"currency": "USD",
"packageName": "<package_name>",
"payStatusTxt": "Unpaid",
"orderAmount": "25.15",
"isTestOrder": false,
"payTimeTxt": "2024 - 10 - 3006: 08: 01",
"sellerGoodsId": "11223343",
"purchaseToken": "241028222221SGP61717",
"productId": "11223343"
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| 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的认证/凭据时发生错误。 |