2016-12-04 1 views
0

Ich baue ein Front-End für NS, das außerhalb des Webstores sitzt. Unser Zahlungsportal verfügt über eine Web-App, die in der Lage ist, eine Ref-Nummer und einen Auth-Code zu erstellen. Diese müssen an den Kundenauftrag angehängt werden, damit der Zahlungsprovider die Zahlung bearbeiten kann, wenn die Bestellung versandt wurde. Ist das möglich oder belle ich den falschen Baum an?NetSuite: Umwandeln des Bestellers Hinzufügen von Kreditkarten authCode und pnRefNum vor Artikelerfüllung

Ich bin ziemlich neu in NS, Entschuldigung, wenn die Antwort offensichtlich ist!

Die Fehlermeldung Ich erhalte ist:

Code: INVALID_RCRD_TRANSFRM Details: That type of record transformation is not allowed. Please see the documentation for a list of supported transformation types. 

und hier ist der Code Ich versuche in meinem Restlet zu verwenden:

function authorizeCreditCard(dataIn) { 
    nlapiLogExecution('DEBUG', 'Pre Transform', JSON.stringify(dataIn)); 
    var customerpayment, paymentrecord 
    try { 
    customerpayment = nlapiTransformRecord('salesorder', dataIn.id, 'customerpayment', { 
     "memo": dataIn.memo, 
     "authCode": dataIn.authCode, 
     "pnRefNum": dataIn.pnRefNum, 
     "ccApproved": dataIn.ccApproved, 
     "ccAvsStreetMatch": dataIn.ccAvsStreetMatch, 
     "ccAvsZipMatch": dataIn.ccAvsZipMatch, 
     "ccSecurityCodeMatch": dataIn.ccSecurityCodeMatch 
    }); 
    paymentrecord = nlapiSubmitRecord(customerpayment); 
    } catch (e) { 
    nlapiLogExecution('ERROR', 'Transform failed', e); 
    } 
    nlapiLogExecution('DEBUG', 'Post Transform: CP', JSON.stringify(customerpayment)); 
    nlapiLogExecution('DEBUG', 'Post Transform: PR', JSON.stringify(paymentrecord)); 

    if (paymentrecord) { 
    return { 
     status: 'success', 
     data: paymentrecord 
    } 
    } 
    return { 
    status: 'error', 
    message: 'something went wrong' 
    } 
} 

Antwort

0

Um die erste Stufe mit dem gleichen Zahlungsprozessor (oder scheinbar nur die gleiche Handelsbank aber YMMMV) für das externe System der Zulassung Zulassung in einem externen System und Abrechnung/capture automatisch in NetSuite zu tun .

Die folgenden Snippets funktionieren, um einen Kundenauftrag mit der Berechtigung zu erstellen. Später, wenn Sie die Bestellung ausführen, wird der daraus resultierende Barverkauf die Abrechnung und die Erfassung auslösen. Wenn Sie nicht denselben Prozessor in NS konfigurieren können, wie er für die Autorisierung verwendet wurde, verwenden die meisten Merchant Banks eine API, die sehr einfach einzurichten ist.

function dummyExpDate() { 
    var d = new Date(); 
    return ('0' + (d.getMonth() + 1)).slice(-2) + '/' + (d.getFullYear() + 1); // some future date 
} 
var soRec = nlapiTransformRecord('customer', custId, 'salesorder, {recordmode: 'dynamic'}); 
soRec.setFieldValue('paymentmethod', 'somepaymentmethodid_Visa_works'); // some payment method id for NS happiness 
soRec.setFieldValue('ccnumber', '4111111111111111'); // dummy valid visa for NS happiness 
soRec.setFieldValue('ccexpiredate', dummyExpDate()); 
soRec.setFieldValue('pnrefnum', pnref); 
soRec.setFieldValue('ccapproved', 'T'); 
+0

Wir verwenden das gleiche Gateway für die Authentifizierung und die Verarbeitung, so dass Teil hoffentlich nur funktionieren wird. Vermissen Sie den Authcode aus Ihrem Beispiel, ist das nicht nötig um die Zahlung zu übernehmen? – designreact

+0

Nr. Nur die p/n ref – bknights

0

Es ist nicht möglich eine salerorder zu verwandeln in Kundenzahlung. Ein Salerorder kann nur in Kassa, Rechnung, Artikelerfüllung, Rücknahmebestätigung und Steuererklärung umgewandelt werden. Ich denke, Sie sollten zuerst Ihren Salerorder in eine Rechnung umwandeln und dann die Zahlung des Kunden mit customerpayment vornehmen.

Grüße

+0

Ah ja jetzt sehe ich - es gibt nur bestimmte Umwandlungen zu einem Verkaufsauftrag erlaubt. Mein Kunde berechnet normalerweise nicht, bis eine Bestellung erfüllt ist, aber sie nehmen Auth davor, lässt mich ein wenig stecken. Ich hatte einige Erfolge beim Hinzufügen von Feldern zum Verkäufer direkt, konnte aber keinen Wert zum Authcode-Feld hinzufügen. – designreact

+0

Haben Sie Fehler bei der Angabe des Authcode-Feldes in der Reihenfolge? Ich bin kein funktionaler Experte in der netsuite, aber es scheint mir, dass der Kundenauftrag das authCode-Feld, das bis zur Zahlung angezeigt wird, nicht anzeigen kann. Wenn Ihr Client jedoch erforderlich ist, können Sie im Kundenauftrag ein benutzerdefiniertes Feld erstellen und den authCode dort platzieren. Bitte überprüfen Sie, ob die Antwort korrekt ist. –

+0

Ich glaube, eine Rechnung zu erstellen würde bedeuten, dass die Zahlung vor der Erfüllung genommen werden müsste. In meinem Kundensetup benötigen sie zuerst Auth, dann erhöhen sie die Rechnung, sobald der Auftrag erfüllt ist, mit dem Webstore ist dies möglich. Ich hatte keine Fehler, die für den Authcode spezifisch sind. Ich habe ein paar mehr Winkel zu versuchen, werden Sie wissen lassen, wie ich komme - danke für Ihre Hilfe – designreact

0

@bknights @ pedro-bustos Danke für Ihre Hilfe.

Ich habe es herausgefunden! Hauptsächlich wegen Ihrer Antwort bknights.

Sie können nur einen Authcode usw. hinzufügen, wenn Sie zuerst einen Verkaufsauftrag erstellen. Das bedeutet, dass ich Dinge leicht umgestalten muss, aber ich kann jetzt Auth-Codes und PN-Refs hinzufügen.

Verwandte Themen