本节包含验证购买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>", // 仅适用于多商店 "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。 }'
Payments API Key
可以在nowStudio的证书板块找到。更多信息。purchaseToken
在成功购买后返回。您可以参考下列文档获取更多信息:以下是 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" } }
参数 | 类型 | 描述 |
---|---|---|
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的认证/凭据时发生错误。 |