HMAC bei PayPal Zahlung

6. Oktober 2011 07:52

Hallo Community,

ich habe gerade das Problem, das wir über unser NAV 5.0 über eine Codeunit ein HTTPRequest für PayPal schicken will.
Soweit sogut, die ersten Schritte funktionieren bereits und wir wären dann soweit, das der Betrag mit einem "Capture" gebuchte werden kann.
In diesem Capture muss noch ein SHA-256 verschlüsselter Hash-String vorhanden sein. Leider konnte ich noch nirgens etwas finden, wie so etwas in NAV umzusetzten ist. Eine solche funktion hab ich auf der Microsoft Seite für .Net Framework gefunden. Gibt es irgendwo eine .dll oder etwas in die Richtung um dies auch in NAV umzusetzten?
Vielen Dank schonmal.

Ciao
OcchiX

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 08:23

Hallo,

wenn da nicht der große Zufall eintrifft, wirst du hier im Forum nur wenig Hilfe bekommen. Hast du schon mal Google oder Bing konsultiert um dort nach Automations zu diesem Zweck zu suchen?

Gruß, Fiddi

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 08:27

Ich hab was mit Automation gefunden...
Und zwar wenn ich "mscorlib.dll" und dann "HMACSHA256".
Wenn ich das in der Variablendeklaration mache und nachher im Quellcode mit F5 schaue sehe ich für diese Variable nur "Methods" und "Properties" aber dadrunter steht dann leider nix mehr.
Vergess ich da vielleicht irgendwas?

Ciao
OcchiX

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 09:02

Schau dir mal CAPICOM an und diesen Link

Gruß, Fiddi

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 09:37

Hi fiddi,

danke erstmal für den tipp...aber CAPICOM kann nur SHA1,MD2,MD4 und MD5 Hash.
Es ist also leider nicht mein benötigtes SHA256 Hash dabei.

Ciao
Cristian

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 09:44

Hallo,

mscorlib ist soviel ich weiß, .Net und das geht erst mit NAV2009 RTC :-( . Da wirst du dich wohl nach was externem umsehen müssen.

Gruß, Fiddi

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 10:33

Ohne das jetzt groß getest zu haben.

Unten stehenden Code (ggf. abgewandelt) in Visual Studio als COM-Enabled Klassenbibliothek erstellen und via Automation in NAV einbinden.
Code:
Imports System.Security.Cryptography
Imports System.Text

Public Class Class1

    Public Shared Function EncryptOnly(ByVal cleanString As String) As String

        'No Decryption possible!!!
        Dim clearBytes As [Byte]()
        clearBytes = New UnicodeEncoding().GetBytes(cleanString)
        Dim hashedBytes As [Byte]() = CType(CryptoConfig.CreateFromName("SHA256"), HashAlgorithm).ComputeHash(clearBytes)
        Dim hashedText As String = BitConverter.ToString(hashedBytes)
        Return hashedText

    End Function

End Class


oder alternative die ganze Paypal Logik auf einen Webserver oder via MSMQ auslagern und nur Initialwerte an den Webserver übergeben und nur Ergebnis zurück erhalten.

Volker

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 12:15

vsnase hat geschrieben:Ohne das jetzt groß getest zu haben.

Unten stehenden Code (ggf. abgewandelt) in Visual Studio als COM-Enabled Klassenbibliothek erstellen und via Automation in NAV einbinden.
Code:
Imports System.Security.Cryptography
Imports System.Text

Public Class Class1

    Public Shared Function EncryptOnly(ByVal cleanString As String) As String

        'No Decryption possible!!!
        Dim clearBytes As [Byte]()
        clearBytes = New UnicodeEncoding().GetBytes(cleanString)
        Dim hashedBytes As [Byte]() = CType(CryptoConfig.CreateFromName("SHA256"), HashAlgorithm).ComputeHash(clearBytes)
        Dim hashedText As String = BitConverter.ToString(hashedBytes)
        Return hashedText

    End Function

End Class


oder alternative die ganze Paypal Logik auf einen Webserver oder via MSMQ auslagern und nur Initialwerte an den Webserver übergeben und nur Ergebnis zurück erhalten.

Volker


Wenn man in die Zukunft schaut, sollte man evtl. MSMQ nicht mehr einsetzen solange es nicht zwingend erforderlich ist.

Re: HMAC bei PayPal Zahlung

6. Oktober 2011 14:58

Hallo,

haben es zum Glück ohne das HMAC benötigt wird hinbekommen.
Trotzdem vielen Dank für die hilfreichen Tipps.

Ciao
OcchiX