首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用NodeJS SDK获取更多的客户资源?

如何使用NodeJS SDK获取更多的客户资源?
EN

Stack Overflow用户
提问于 2018-07-14 13:28:22
回答 2查看 799关注 0票数 1

我只能通过get customer API获得前10个客户来源:

代码语言:javascript
复制
# stripe.customers.retrieve

{
  "id": "cus_DE8HSMZ75l2Dgo",
  ...
  "sources": {
    "object": "list",
    "data": [

    ],
    "has_more": false,
    "total_count": 0,
    "url": "/v1/customers/cus_DE8HSMZ75l2Dgo/sources"
  },
  ...
}

但是我怎么才能得到更多呢?是通过AJAX调用的唯一方法吗?我在想,SDK中应该有一个函数吧?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-14 20:27:47

当您通过API检索Customer对象时,Stripe将返回sources属性,该属性是一个列表对象。data属性将是一个最多包含10个源的数组。

如果你想获得比最新的10个更多的源码,你需要使用Pagination。其想法是,您将首先获得N个对象的列表(默认情况下为10个)。然后,您将通过再次请求N个对象,但使用参数starting_after设置为上一页中最后一个对象的id,来请求来自条纹的下一个“页面”。您将继续执行此操作,直到返回的页面中的has_more属性为false,表明您检索了所有对象。

例如,如果您的客户有35个消息源,您将获得第一页( 10 ),然后调用列表再获取10个消息源(20),然后再获取10个消息源(30),然后最后一个呼叫将只返回5个消息源(35),has_more将为false。

要减少调用次数,还可以将limit设置为更高的值。在这种情况下,最大值为100。

下面是代码的样子:

代码语言:javascript
复制
// list those cards 3 at a time
var listOptions = {limit: 3};
while(1) {
    var sources = await stripe.customers.listSources(
      customer.id,
      listOptions
    );

    var nbSourcesRetrieved = sources.data.length;
    var lastSourceId = sources.data[nbSourcesRetrieved - 1].id;
    console.log("Received " + nbSourcesRetrieved + " - last source: " + lastSourceId + " - has_more: " + sources.has_more);

    // Leave if we are done with pagination
    if(sources.has_more == false) {
      break;
    }

    // Store the last source id in the options for the next page
    listOptions['starting_after'] = lastSourceId;
}

您可以在Runkit上查看完整的运行示例:https://runkit.com/5a6b26c0e3908200129fbb5d/5b49eabda462940012c33880

票数 2
EN

Stack Overflow用户

发布于 2018-07-14 14:23:10

快速查看条带节点包的sources,似乎有一个stripe.customers.listSources方法,它接受一个customerId作为参数并请求正确的url。我想它的工作原理类似于listCards method。但我在文档中找不到它,所以你必须将其视为未记录的功能...但也许这只是文档中的一个错误。你可以联系技术支持部门。我们在一个老项目中使用了stripe,他们很欣赏他们在文档上的任何意见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51335562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档