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

如果我输入我的Zuora卡,它会显示发票,但当然我的客户没有Zuora卡。
是否有某种设置允许客户从URL中查看PDF?
很长的问题:
发票端点返回两项感兴趣的内容。
body是发票PDF文件的REST URL。
和
InvoiceFiles返回
body和InvoiceFiles.pdfFileUrl返回的内容是否有区别,以及如何正确使用它们?
pdfFileUrl可以返回多个文件。每次更新发票(客户付款等),它都会生成另一个文件。最近的是at指数0。
无论如何访问任何一个URL,我都会得到一个api.zuora登录表单。如果我输入我的Zuora卡,它会显示发票,但当然我的客户没有Zuora卡。
端点页面上的示例将主体和pdfFiles作为空白返回,因此这没有多大帮助。
在他们的社区里搜索了一段时间,什么都找不到与我的问题有点相似的东西。
发布于 2017-06-26 18:08:05
最好的做法是使用授权cookie。cookie授权用户在Zuora设置中指定的持续时间内调用REST > Security >会话超时。每次调用REST之后,就会用这个持续时间重置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/
发布于 2017-03-22 21:49:16
我们终于想出了怎么做。必须在服务器端完成。
第一步是调用“/事务/发票/帐户/{accountId}”来获取发票列表。
第二,从与我们试图查看的发票号相匹配的列表中选择发票。
该对象上有一个名为"invoiceFiles“的列表--如果它不是空的,则获取第一项。
使用该项上的"pdfFileUrl“属性作为URL从中获取PDF,但在GET请求中,包含标题"apiAccessKeyId”和"apiSecretAccessKey",并将值设置为适用的api键。这消除了auth问题,但也使得您必须在后端执行此操作,以避免暴露您的apiAccessKeyId和机密。
假设传入我们的PDF请求经过身份验证,我们将对从Zuora返回到服务器上当前正在处理的传出响应执行管道命令: zuoraResponse.pipe(ourOutgoingResponseObj)
这将直接向用户显示PDF。
https://stackoverflow.com/questions/42913225
复制相似问题