私たちはRecurlyインテグレーションを使用してアプリを開発しており、PDFインボイス機能を使用しようとしています。JavaScriptとNode.js(Meteor)を使用して定期的にPDFインボイスを取得します
このアプリはNode.js(Meteorプラットフォーム)に基づいています。
それはバイナリファイルでRecurlyから正しい答えを受け取る:
しかし、私はそれを正しく保存することはできません。私は、次の2つの方法を試してみた:
var file = window.URL.createObjectURL(new Blob([r.content], {type: "application/pdf"}));
var a = document.createElement("a");
a.href = file;
a.download = "invoicePDF";
document.body.appendChild(a);
a.click();
window.onfocus = function() {
document.body.removeChild(a)
}
をと(単なるテストのために)サーバー上で直接それを保存します:ブラウザでクライアント側でそれを印刷
var fs = require('fs');
var wstream = fs.createWriteStream('C:/recurly.pdf');
wstream.write(result.content);
wstream.end();
しかし、私は終了しました両方のケースで非稼動のpdfファイルでアップ。 Acrobat、Foxitリーダー、Chromeでこのファイルを開くことはできません。破損しています。
私が間違っているところはありますか?たぶん私はそれを保存する前にいくつかのコンテンツの変換が必要ですか?
を追加しました
私はクライアントに送信され、コンソール(上の画像)で印刷しました。この要求の結果。
try {
result = HTTP.call(
'GET',
'https://' + Meteor.settings.recurly.SUBDOMAIN + '.recurly.com/v2/invoices/' + invoiceId,
{
headers: {
Authorization: "Basic " + (new Buffer(Meteor.settings.recurly.API_KEY)).toString('base64'),
Accept: 'application/pdf'
}
}
);
} catch (err) {
result = e;
}
データをどのように入手しましたか? 'blob'レスポンスタイプを設定しましたか? – MasterAM
@MasterAMデータを取得するために定期的にドキュメントを使用しました。 https://dev.recurly.com/docs/lookup-invoice-details –
これにはJS APIは含まれていません。いくつかのコードを投稿できますか? – MasterAM