Wir entwickeln eine App mit Recurly-Integration und versuchen, es PDF-Rechnungsfunktion zu verwenden.Recurly pdf Rechnungsabruf mit JavaScript und Node.js (Meteor)
Die App basiert auf Node.js (Meteor-Plattform).
Er empfängt richtige Antwort aus Recurly mit Binärdatei:
Aber ich kann es nicht richtig speichern. Ich habe zwei Möglichkeiten versucht: es auf der Client-Seite in Browser drucken:
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)
}
Und es direkt auf dem Server (nur Test) speichern:
var fs = require('fs');
var wstream = fs.createWriteStream('C:/recurly.pdf');
wstream.write(result.content);
wstream.end();
Aber in beiden Fällen habe ich beendet up mit nicht funktionierenden pdf-Datei. Acrobat, Foxit Reader und Chrome können diese Datei nicht öffnen - sie ist beschädigt.
Haben Sie Vorschläge, wo ich falsch liege? Vielleicht brauche ich eine Inhaltskonvertierung, bevor ich sie oder etwas anderes speichere?
Added
Das Ergebnis dieser Anfrage Ich habe (Bild oben) in Konsole-Client und gedruckt gesendet.
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;
}
Wie haben Sie die Daten erhalten? Haben Sie den 'blob' responseType gesetzt? – MasterAM
@MasterAM Ich habe immer wieder Dokumente verwendet, um die Daten zu erhalten. https://dev.recurly.com/docs/lookup-invoice-details –
Dies beinhaltet keine JS-API. Kannst du etwas Code posten? – MasterAM