分页
所有的 Ping++ 资源都可以被 list API 方法支持,例如分页 charges
和 refunds
。这些 list API 方法拥有相同的数据结构。Ping++ 是基于 cursor
的分页机制,使用参数 starting_after
来决定列表从何处开始,使用参数 ending_before
来决定列表从何处结束。
请求参数 | 描述 |
---|
limit optional | 限制每页可以返回多少对象,限制范围是从 1~100 项,默认是 10 项。 |
starting_after optional | 在分页时使用的指针,决定了列表的第一项从何处开始。假设你的一次请求返回列表的最后一项的 id 是 obj_end ,你可以使用 starting_after = obj_end 去获取下一页。 |
ending_before optional | 在分页时使用的指针,决定了列表的最末项在何处结束。假设你的一次请求返回列表的第一项的 id 是 obj_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
}
]
}