【问题标题】:Zuora - How to get invoice PDF and display to userZuora - 如何获取发票 PDF 并显示给用户
【发布时间】:2017-03-20 20:19:54
【问题描述】:

小问题:使用get_invoices endpoint,当我尝试从InvoiceFiles.pdfFileUrl 响应访问URL 时,它会弹出一个api.zuora 登录表单。我需要我的客户能够访问这些 PDF。

如果我输入我的 Zuora 信用,它会显示发票,但我的客户当然没有 Zuora 信用。

是否有某种设置允许客户从 URL 查看 PDF?

长问题:

get_invoices endpoint 返回 2 个感兴趣的项目。

body 是发票 PDF 文件的 REST URL。

InvoiceFiles 返回

  1. id 发票 PDF 文件的 ID。这是文件对象的 ID,与 pdfFileUrl 字段中的文件句柄 ID 不同。要打开文件,您需要使用文件句柄 ID。
  2. versionNumber 发票PDF文件的版本号
  3. pdfFileUrl 发票 PDF 文件的 REST URL。点击网址打开发票 PDF 文件。

bodyInvoiceFiles.pdfFileUrl返回的内容有区别吗,如何正确使用?

pdfFileUrl 可以返回多个文件。每次更新发票(客户付款等)时,它都会生成另一个文件。最近的是 at 索引 0。

但是,我尝试访问任何 URL 时,都会得到一个 api.zuora 登录表单。如果我输入我的 Zuora 信用,它会显示发票,但我的客户当然没有 Zuora 信用。

端点页面上的示例将正文和 pdfFiles 返回为空白,因此没有多大帮助。

在他们的社区中搜索了一段时间,没有找到与我的问题有相似之处的任何东西。

【问题讨论】:

    标签: invoice zuora


    【解决方案1】:

    我们终于想出了如何做到这一点。必须在服务器端完成。

    第一步是调用“/transactions/invoices/accounts/{accountId}”来获取发票列表。

    其次,从列表中选择与我们试图查看的发票编号匹配的发票。

    在该对象上是一个名为“invoiceFiles”的列表 - 如果它不为空,则获取第一项。

    使用该项目上的“pdfFileUrl”属性作为从中获取 PDF 的 URL,但在 GET 请求中,包括标头“apiAccessKeyId”和“apiSecretAccessKey”,其值设置为我们适用的api 密钥。这消除了身份验证问题,但也使您必须在后端执行此操作以避免暴露您的 apiAccessKeyId 和 Secret。

    假设传入我们的 PDF 请求已通过身份验证,我们将对从 Zuora 返回的响应执行管道命令到我们当前在服务器上处理的传出响应:zuoraResponse.pipe(ourOutgoingResponseObj)

    这将直接向用户显示 PDF。

    【讨论】:

      【解决方案2】:

      最佳做法是使用授权 cookie。 cookie 授权用户在 Zuora 设置中的管理 > 安全策略 > 会话超时中指定的持续时间内调用 REST API。每次调用 REST API 后,cookie 过期时间都会重置为此持续时间。

      要获取 cookie,请调用 REST 连接资源:

      curl -X POST \
      -H "apiAccessKeyId: dummyUser" \
      -H "apiSecretAccessKey: dummyPassword" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://rest.zuora.com/v1/connections"
      

      一旦建立连接,后续 API 调用将在标头中没有 apiSecretAccessKey 和 apiAccessKeyId 的情况下工作。

      请从他们的新 API 文档中找到更多详细信息。 https://www.zuora.com/developer/api-reference/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多