Ich versuche, die Canada Post API direkt vom NetSuite-Client aus aufzurufen, um die Versandkosten zu erhalten.Aufruf von CanadaPost von NetSuite Client
Dies ist der Test-Code für devlopment:
var url = 'https://ct.soa-gw.canadapost.ca/rs/ship/price';
var auth = 'Basic BASE64ENCODEDUSERNAMEANDPASSWORD';
var xml = '' +
'<?xml version="1.0" encoding="utf-8"?>' +
'<mailing-scenario xmlns="http://www.canadapost.ca/ws/ship/rate-v3">' +
'<customer-number>1234567</customer-number>' +
'<parcel-characteristics><weight>1.0</weight></parcel-characteristics>' +
'<services><service-code>DOM.XP</service-code></services>' +
'<origin-postal-code>K2B8J6</origin-postal-code>' +
'<destination><domestic><postal-code>J0E1X0</postal-code></domestic></destination>' +
'</mailing-scenario>';
var header = {
'Authorization': auth,
'Content-Type': 'application/soap+xml;application/vnd.cpc.ship.rate-v3+xml',
'Accept-language': 'en-CA',
'Accept': 'application/vnd.cpc.ship.rate-v3+xml'
};
var r = nlapiRequestURL(url, xml, header, null, 'POST');
console.log(r.code[0]);
console.log(r.body);
Die Anweisungen ziemlich klar sind und das XML-Format scheint richtig zu sein, aber ich halte die gleiche Antwort bekommen:
<?xml version="1.0" encoding="UTF-8"?>
<messages xmlns="http://www.canadapost.ca/ws/messages">
<message>
<code>400</code>
<description>Backend Bad Request</description></message></messages>
Jeder Hinweis ?
* Edit: Ich habe auch versucht, 'Content-Type' mit: 'application/vnd.cpc.ship.rate-v3 + xml' und ich erhalte den folgenden Fehler:
<?xml version="1.0" encoding="UTF-8"?>
<messages xmlns="http://www.canadapost.ca/ws/messages">
<message>
<code>415</code>
<description>Backend Unsupported Media Type</description></message></messages>
Ich habe versucht, den Inhaltstyp zu ändern, und es gibt mir einen "Backend nicht unterstützten Medientyp" -Fehler. Das Skript wird derzeit über einen PHP-Proxy ausgeführt, um Anmeldeinformationen zu verarbeiten, aber wir möchten, dass der Refactor direkt vom Client ausgeführt wird. – pipechang
Ich würde zuerst den technischen Support mit Canada Post gehen. Es gibt keinen guten Grund für ihre sehr spezifische Content-Typ-Anforderung. Es gibt keinen guten Grund für die Einschränkungen von Netsuite, aber viel Glück dort. – bknights
Lol ... Ich tippte genau die gleiche Frage und die Schönheit, die StackOverflow & Joel Spoelsky ist erstaunlich ... es brachte mich hier ... Ich habe bereits eine Anfrage an die Canada Post Technical Department eingereicht und ich werde POST (Wortspiel beabsichtigt) die Antwort, sobald sie zurück zu mir kommen, weil Sie wissen, dass ich diese Upvotes will !!! LOL – lopezdp