en zh

Samsung IAP 发布 API

Samsung IAP 发布 API 用于查看、注册、修改和删除 Samsung 应用程序内购买 (IAP) 项目。在开始使用 IAP Publish API 之前,必须满足所有要求并在请求中使用规定的授权头参数。请参阅 开始使用 Samsung IAP API 了解详细信息。

下面是有关 IAP 发布 API 的快速参考:

名称 请求 说明
查看项目列表

GET /iap/v6/applications/:packageName/items 在适用于该页面和大小的范围内请求项目信息的列表。
查看单个项目

GET /iap/v6/applications/:packageName/items/:id 请求一个项目中的详细信息。
创建项目

POST /iap/v6/applications/:packageName/items 注册应用程序内项目。
修改项目

PUT /iap/v6/applications/:packageName/items 修改应用程序内项目。
部分项目修改

PATCH /iap/v6/applications/:packageName/items 修改应用程序内项目的指定参数。
删除项目

DELETE /iap/v6/applications/:packageName/items/:id 删除应用程序内项目。

有关卖家门户中的 IAP 功能的详细信息,请参阅应用程序内购买

查看项目列表

在适用于该页面和大小的范围内请求项目信息的列表。

请求

GET /iap/v6/applications/:packageName/items?page={}&size={}
名称 类型 范围 说明
page int 查询 必需。要返回的内容的页数

size int 查询 必需。要在页面上返回的项目数

curl \
  -X GET \
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items?page=1&size=20"

响应

参数

名称 类型 说明
id string 在卖家门户中注册的应用程序内项目的唯一标识符。
title string 在卖家门户中注册的应用程序内项目的标题。
description string 在卖家门户中注册的应用程序内项目的简要说明。
type string 应用程序内项目的类型。

  • CONSUMABLE:可以一次或多次购买,并且在使用一次之前一直有效或可用的项目(例如金币、特殊能力或宝石)。
  • NON_CONSUMABLE:仅购买一次,将始终保持有效或可用的项目,甚至在删除和重新安装应用程序后也是如此(例如游戏板或升级)。
  • UNSPECIFIED:未知的项目类型。

status string 卖家门户中的项目分发状态。

  • PUBLISHED:项目在 Galaxy Store 中可供销售。
  • UNPUBLISHED:项目在 Galaxy Store 中不可用。
  • REMOVED:项目已从 Galaxy Store 中删除。
  • UNSPECIFIED:项目状态为未知。

itemPaymentMethod.phoneBillStatus Boolean 项目的付费方式是否是通过电话账单自动付款。

  • true:项目的付费方式是通过电话账单自动付款。
  • false:项目的付费方式不是通过电话账单自动付款。

usdPrice number 项目以 USD(美国美元)表示的基本价格。价格可以设置在 0 与 400 之间。
prices[].countryId string 将销售项目的国家/地区的三字符国家/地区代码 (ISO 3166)。

prices[].currency string 所指定国家/地区的货币的三字符货币代码 (ISO 4217)(例如 EUR、GBP、USD)。

prices[].localPrice string 以所指定国家/地区的货币表示的项目价格。
totalCount number 响应中列出的项数。

成功

Status: 200 Success
{
  "itemList": [
    {
      "id": "one_gallon_gas",
      "title": "1 Gallon gas",
      "description": "Fuel for driving game",
      "type": "CONSUMABLE",
      "status": "PUBLISHED",
      "itemPaymentMethod": {
        "phoneBillStatus": true
      },
      "usdPrice": 0.900,
      "prices": [
        {
          "countryId": "KOR",
          "currency": "KRW",
          "localPrice": "1000.000"
        },
        {
          "countryId": "USA",
          "currency": "USD",
          "localPrice": "0.900"
        }, ...
      ]
    }, ...
  ],
  "totalCount": 3
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

查看单个项目

请求有关一个项目的详细信息。

请求

GET /iap/v6/applications/:packageName/items/:id
名称 类型 说明
id string 必需。在卖家门户中注册的应用程序内项目的唯一标识符。

curl \
  -X GET
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items/one_gallon_gas"

响应

有关响应参数的说明,请参阅“查看项目响应参数”。

成功

Status: 200 Success
{
  "id": "one_gallon_gas",
  "title": "1 Gallon gas",
  "description": "Fuel for driving game",
  "type": "CONSUMABLE",
  "status": "PUBLISHED",
  "itemPaymentMethod": {
    "phoneBillStatus": true
  },
  "usdPrice": 0.900,
  "prices": [
   {
      "countryId": "KOR",
      "currency": "KRW",
      "localPrice": "1000.000"
    },
    {
      "countryId": "USA",
      "currency": "USD",
      "localPrice": "0.900"
    }, ...
  ]
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

创建项目

注册应用程序内项目。

请求

POST /iap/v6/applications/com.package.name/items
名称 类型 说明
id string 必需。在卖家门户中注册的应用程序内项目的唯一标识符。

title string 必需。在卖家门户中注册的应用程序内项目的标题。

description string 在卖家门户中注册的应用程序内项目的简要说明。
type string 必需。应用程序内项目的类型。

  • CONSUMABLE:可以一次或多次购买,并且在使用一次之前一直有效或可用的项目(例如金币、特殊能力或宝石)。
  • NON_CONSUMABLE:仅购买一次,将始终保持有效或可用的项目,甚至在删除和重新安装应用程序后也是如此(例如游戏板或升级)。
  • UNSPECIFIED:未知的项目类型。

status string 必需。卖家门户中的项目分发状态。

  • PUBLISHED:项目在 Galaxy Store 中可供销售。
  • UNPUBLISHED:项目在 Galaxy Store 中不可用。
  • REMOVED:项目已从 Galaxy Store 中删除。
  • UNSPECIFIED:项目状态为未知。

itemPaymentMethod.phoneBillStatus Boolean 必需。项目的付费方式是否是通过电话账单自动付款。

  • true:项目的付费方式是通过电话账单自动付款。
  • false:项目的付费方式不是通过电话账单自动付款。

usdPrice number 必需。项目以 USD(美国美元)表示的基本价格。价格可以设置在 0 与 400 之间。

prices[].countryId string 必需。将销售项目的国家/地区的三字符国家/地区代码 (ISO 3166)。

prices[].currency string 所指定国家/地区的货币的三字符货币代码 (ISO 4217)(例如 EUR、GBP、USD)。

prices[].localPrice string 必需。以所指定国家/地区的货币表示的项目价格。

curl \
  -X POST \
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  -d '{"id":"one_gallon_gas","title":"1 Gallon gas","description":"Fuel for driving game","type":"CONSUMABLE","status":"PUBLISHED","itemPaymentMethod":{"phoneBillStatus":true},"usdPrice":0.99,"prices":[{"countryId":"KOR","currency":"KRW","localPrice":"1000"},{"countryId":"USA","currency":"USD","localPrice":"0.99"}]}' \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items"

响应

成功

Status: 200 Success
{
  "id": "one_gallon_gas",
  "type": "CONSUMABLE",
  "status": "PUBLISHED",
  "prices": [
    {
      "countryId": "KOR",
      "currency": "KRW",
      "localPrice": "1000.000"
    },
    {
      "countryId": "USA",
      "currency": "USD",
      "localPrice": "0.99"
    }, ...
  ]
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

修改项目

修改应用程序内项目。请求将替换项目的所有现有信息,内容 ID 除外。

请求

PUT /iap/v6/applications/:packageName/items

有关请求参数的说明,请参阅“创建项目请求”。

curl \
  -X PUT \
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  -d '{"id":"one_gallon_gas","title":"1 Gallon gas","description":"Fuel for driving game fix","type":"CONSUMABLE","status":"PUBLISHED","itemPaymentMethod":{"phoneBillStatus":true},"usdPrice":1,"prices":[{"countryId":"KOR","currency":"KRW","localPrice":"1000"},{"countryId":"USA","currency":"USD","localPrice":"1"}]}' \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items"

响应

成功

Status: 200 Success
{
  "id": "one_gallon_gas",
  "type": "CONSUMABLE",
  "status": "PUBLISHED",
  "prices": [
    {
      "countryId": "KOR",
      "currency": "KRW",
      "localPrice": "1000.000"
    },
    {
      "countryId": "USA",
      "currency": "USD",
      "localPrice": "1"
    }, ...
  ]
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

部分项目修改

修改应用程序内项目的标题、countryIdlocalPrice。无法修改 id。不会修改未指定的参数。

请求

PATCH /iap/v6/applications/:packageName/items
名称 类型 说明
id string 必需。在卖家门户中注册的应用程序内项目的唯一标识符。

title string 在卖家门户中注册的应用程序内项目的标题。
prices[].countryId string 将销售项目的国家/地区的三字符国家/地区代码 (ISO 3166)。

prices[].localPrice string 以所指定国家/地区的货币表示的项目价格。
curl \
  -X PATCH \
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  -d '{"id":"one_gallon_gas","title":"2 Gallon gas"}' \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items"

响应

成功

Status: 200 Success
{
  "id": "one_gallon_gas",
  "type": "CONSUMABLE",
  "status": "PUBLISHED"
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

删除项目

删除应用程序内项目。

请求

DELETE /iap/v6/applications/:packageName/items/:id
名称 类型 范围 说明
id string 路径 必需。在卖家门户中注册的应用程序内项目的唯一标识符。

curl \
  -X DELETE
  -H "content-type:application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -H "service-account-id: <your-service-account-id>" \
  "https://devapi.samsungapps.com/iap/v6/applications/com.package.name/items/one_gallon_gas"

响应

成功

Status: 200 OK
{
  "id": "one_gallon_gas"
}

有关请求失败时可能的响应代码列表,请参阅“失败响应代码”。

失败响应代码

下面是请求失败时可能会显示的响应代码。

状态 代码和消息
400
错误请求

  • 109: 尚不支持订阅
  • 117: 价格低于最小值。例如,本地价格 0.69 低于最小价格 0.99。
  • 118: 价格低于最小单位。例如,本地价格 1.099 与最小价格单位 0.01 不匹配。
  • 400: 错误请求,包含应用程序产品错误信息
401
未授权

  • 101: 用户无权更改此应用程序
  • 103: 验证网关服务器授权失败
404
未找到

  • 104: 内容不存在请首先创建内容
  • 106: 生产级别中不存在 ItemGroup。需要发布 IAP 支持的应用程序。
  • 110: 项目不存在
409
冲突

  • 105: 已存在具有所请求 ID 的项目
  • 107: 存在多个具有所请求 packageName 的 ItemGroupIds 或 ItemId