你如何下载所有发票

时间:2015-10-09 16:37:56

标签: python django api paypal django-models

我想下载每张发票,以便我们搜索/报告数据。然后单击按钮,刷新每张发票的状态。

我没有每个发票ID。

我可以让Invoice.all()工作,但它似乎要么是错误的,要么我不知道如何使用它。

我有350张发票,200张是页面上的最大值,所以我尝试了这张发票来获取所有发票:

Invoice.all({page_size=200, page=1})
Invoice.all({page_size=200, page=2})

这会收到400张发票。 第一页似乎很好。这是200个不同的索引。 第二页与第一页相同,约为98%。

我实际上通过30页运行它,它总是会找到记录但不能确定地以任何特定顺序返回结果。到第30页,我可能有90%的发票。

我没有看到如何在此处应用订单或范围。

作为计划B,我试图使用Invoice.search()方法。 我想我可以通过dict一次抓一个月(invoice_create_start / end)甚至使用“数字”。发票都是0001到0350,所以这是一个简单的拉动。

我无法进行搜索工作。

Invoice.find("AAAA-BBBB-CCCC-DDDD")是唯一似乎按照我的预期工作的东西,但这假设我已经拥有此ID。

以下是我的代码示例。 .all示例有效,但并不像我期望的那样。 .search示例根本不起作用,这就是为什么有一堆代码试图询问结果的原因。我已尝试将搜索参数与.all一起使用,但这些将被忽略。

@staticmethod
def get_invoices(page=1, mode='live'):
    import paypalrestsdk
    page_limit = 100
    c = 0
    paypalrestsdk.configure({
        "mode": mode, # sandbox or live
        "client_id": "client id",
        "client_secret": "secret code" })


    # history = paypalrestsdk.Invoice.all()
    history = paypalrestsdk.Invoice.all({"page": page, "page_size": page_limit})
    for invoice in history.invoices:
        c += 1
        print 'p{} record: {}. {}'.format(page, c, invoice)



    print 'page {} done. records: {}'.format(page, c)
    if c == page_limit:
        return True
    return False
@staticmethod
def get_invoice(invoice_number, mode='live'):
    import paypalrestsdk
    paypalrestsdk.configure({
        "mode": mode, # sandbox or live
        "client_id": "Client Id",
        "client_secret": "Client secret" })

    from paypalrestsdk import Invoice, ResourceNotFound
    import logging
    logging.basicConfig(level=logging.INFO)

    page_size = 200
    try:
        search_attributes = {
            "number": invoice_number,
            }

        all = Invoice.search(search_attributes)
        # print("Got Invoice Details for Invoice[%s]" % (all.invoices.id))
        print 'invoice: {}'.format(all.invoices)
        # print 'count: {}'.format(all.invoices.c)
        i = page*page_size - page_size
        for invoice in all.invoices:
            i += 1
            print '{}: [{}] {}'.format(i, invoice.number, invoice)
    except ResourceNotFound as error:
        print("Invoice Not Found")

0 个答案:

没有答案