分页

所有的 Ping++ 资源都可以被 list API 方法支持,例如分页 chargesrefunds。这些 list API 方法拥有相同的数据结构。Ping++ 是基于 cursor 的分页机制,使用参数 starting_after 来决定列表从何处开始,使用参数 ending_before 来决定列表从何处结束。

请求参数描述
limit optional限制每页可以返回多少对象,限制范围是从 1~100 项,默认是 10 项。
starting_after optional在分页时使用的指针,决定了列表的第一项从何处开始。假设你的一次请求返回列表的最后一项的 idobj_end,你可以使用 starting_after = obj_end 去获取下一页。
ending_before optional在分页时使用的指针,决定了列表的最末项在何处结束。假设你的一次请求返回列表的第一项的 idobj_start,你可以使用 ending_before = obj_start 去获取上一页。
created optional对象的创建时间,用 Unix 时间戳表示。具体参考下表 created 参数。
created 参数描述
created[gt] optional int大于 charge 对象的创建时间,用 Unix 时间戳表示。
created[gte] optional int大于或等于 charge 对象的创建时间,用 Unix 时间戳表示。
created[lt] optional int小于 charge 对象的创建时间,用 Unix 时间戳表示。
created[lte] optional int小于或等于 charge 对象的创建时间,用 Unix 时间戳表示。

返回

返回参数描述
object string值为 "list"
url string表明获取该列表所使用的 URL。
has_more boolean表明获取列表之后是否还有更多的元素实体。如果值为 false,表明当前页是最后一页。
data array包含一个由请求参数分页后的返回元素实体。

请求示例

curl https://api.pingxx.com/v1/charges/?limit=3 \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
\Pingpp\Pingpp::setApiKey('sk_test_ibbTe5jLGCi5rzfH4OqPW9KC');
\Pingpp\Charge::all(array('limit' => 3));
Pingpp.apiKey = "sk_test_ibbTe5jLGCi5rzfH4OqPW9KC";
Map<String, Object> chargeParams = new HashMap<String, Object>();
chargeParams.put("limit", 3);
Charge.all(chargeParams);
require "pingpp"
Pingpp.api_key = "sk_test_ibbTe5jLGCi5rzfH4OqPW9KC"
Pingpp::Charge.all(:limit => 3)
var pingpp = require('pingpp')('sk_test_ibbTe5jLGCi5rzfH4OqPW9KC');
pingpp.charges.list({ limit: 3 }, function(err, charges) {
    // 异步调用
});
import pingpp
pingpp.api_key = 'sk_test_ibbTe5jLGCi5rzfH4OqPW9KC'
res = pingpp.Charge.all(limit=3)
pingpp.Key := "sk_test_ibbTe5jLGCi5rzfH4OqPW9KC"
params := &pingpp.ChargeListParams{}
params.Filters.AddFilter("limit", "", "3")
params.Single = true
i := charge.List(params)
for i.Next() {
  c := i.Charge()
}
Dictionary<String, Object> chargeParams = new Dictionary<String, Object>();
chargeParams.Add("limit", 3);
  try {
      ChargeList chs = Charge.list(chargeParams); 
      Console.WriteLine(chs);
  } catch (AuthenticationException e) {
      Console.WriteLine(e.Message.ToString());
  }

返回示例

{
  "object": "list",
  "url": "/v1/charges",
  "has_more": false,
  "data": [
    {
      "id": "ch_Hm5uTSifDOuTy9iLeLPSurrD",
      "object": "charge",
      "created": 1410767648,
      "livemode": true,
      "paid": false,
      "refunded": false,
      "app": "app_1Gqj58ynP0mHeX1q",
      "channel": "upacp",
      "order_no": "123456789012",
      "client_ip": "127.0.0.1",
      "amount": 900,
      "amount_settle": 0,
      "currency": "cny",
      "subject": "Your Subject",
      "body": "Your Body",
      "time_expire": 1410771248,
      "time_settle": null,
      "transaction_no": null,
      "refunds": {
        "object": "list",
        "url": "/v1/charges/ch_Hm5uTSifDOuTy9iLeLPSurrD/refunds",
        "has_more": false,
        "data": [ ]
      },
      "amount_refunded": 0,
      "failure_code": null,
      "failure_msg": null,
      "metadata": {},
      "credential": {},
      "description": null
    }
  ]
}