Beispielprojekt, das zeigt, wie Samsung Pay in Datatrans integriert wird
Mit Samsung Pay können Händler Zahlungen über ihre Zahlungsplattform sammeln, die die Samsung Pay -Brieftasche verbindet und die Benutzer über ihr mobiles Gerät authentifizieren können. Es ermöglicht den Händlern, verschlüsselte Zahlungsinformationen zu erhalten, die zur Genehmigung an ihren Zahlungsabwickler weitergeleitet werden können. Dieser Leitfaden richtet sich an Händler, die Samsung Pay mit Datatrans integrieren möchten. Weitere Informationen zu Samsung Pay finden Sie unter: http://www.samsung.com/ch/samsung-pay/
Die Samsungpay -Lösung besteht aus zwei APIs. Der erste ist nur ein Webdk, um die Zahlungen im Web auszulösen. Die zweite ist eine restähnliche Server-zu-Server-API. Der Anwendungs-/ Nachrichtenfluss lautet wie folgt:
Bitte beachten Sie, dass diese Schritte für die Verwendung der Beispielanwendung sowie die Verwendung von Samsung Pay in Ihrer produktiven Umgebung erforderlich sind. Diese Schritte erfordern, dass Sie sich mit Samsung in Verbindung setzen.
Navigieren Sie zu https://us-spartner.pay.samsung.com/ und melden Sie sich an. Sie können dieses Konto später zum Testen auf Ihrem Samsung -Gerät verwenden.
Um sicherzustellen, dass Sie nur die von Samsung stammenden Nachrichten entschlüsseln können, müssen Sie für jede Umgebung einen selbst signierten CSR einreichen. Das CSR sollte folgende Attribute haben:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
Erstellen Sie einen CSR für Ihre Test- und Produktionsumgebung
Darüber hinaus müssen Sie während des Onboarding -Vorgangs Ihre Liste der IP -Adressen an Samsung senden. Bitte setzen Sie sich mit uns in Verbindung, um weitere Informationen zu erhalten. Senden Sie jeden CSR nach Samsung. Nachdem Sie Ihr Konto überprüft haben, erhalten die IP-Adressen und Ihr CSRS einen Service-ID und Zugriff auf ihre Dokumentation
Generieren Sie Ihren privaten Schlüssel
openssl genrsa -out domain.com.key 2048
Generieren Sie den CSR mit Ihrem privaten Schlüssel
openssl req -out CSR.csr -key domain.com.key -new -sha256
Überprüfen Sie Ihre CSR
openssl req -in CSR.csr -noout -text
Die Beispielanwendung ist eine Spring-Boot-Anwendung (https://projects.spring.io/spring-boot/), die aus der Box ausgeführt werden kann. Es verwendet einen eingebetteten Tomcat.
$ git clone [email protected]:datatrans/samsungpay-web-sample.git
$ cd samsungpay-web-sample
mvn clean install
Um die von Samsung gesendeten Zahlungsanmeldeinformationen zu entschlüsseln, müssen Sie Ihren privaten Schlüssel im Derformat verwenden. So konvertieren Sie es.
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
Tun Sie dies für jeden privaten Schlüssel in jeder Umgebung. Kopieren Sie die Datei in src/main/resources
Eigentum | Beschreibung | Datei |
---|---|---|
server.port | Der Port, auf dem der Server ausgeführt wird | application.Properties |
Callbackurl | Der Rückruf Samsung verwendet. Stellen Sie sicher, dass dies mit Ihrem Serverport übereinstimmt | application.Properties |
Merchant.Name | Name Ihres Unternehmens. | application.Properties |
Merchant.Reference | Dies wird von Samsung verwendet, um Transaktionen in der Samsungpay -App anzuzeigen | application.Properties |
samsung.serviceid | Ihre ServiceID von Samsung gegeben | application-dev.properties / application-prod.properties |
Datatrans.Merchantid | Ihr Datatrans -Merchantid | application-dev.properties / application-prod.properties |
Datatrans.sign | Das Zeichen der Merchantid | application-dev.properties / application-prod.properties |
Während des Kontakts mit Samsung erhalten Sie eine Probe Samsung Pay App. Die App enthält Testkarten, diese werden nicht von Datatrans berechnet, sondern werden ersetzt, wenn ein gültiges Samsung Pay -Token wie folgt gesendet wird:
Wenn
CARDNO = 4242 4242 4242 4242 expm = 12 expy = 18
Schauen Sie sich src/main/java/ch/datatrans/examples/samsungpay/client/DatatransClient.java
an, um zu sehen, wie die Autorisierung durchgeführt wird.
Beispielanforderung:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< authorizationService version = " 1 " >
< body merchantId = " $merchantId " >
< transaction refno = " $refno " >
< request >
< samsungPayData > <![CDATA[ $token ]]> </ samsungPayData >
< reqtype >NOA</ reqtype >
< transtype >05</ transtype >
< sign >$sign</ sign >
</ request >
</ transaction >
</ body >
</ authorizationService >
Beispielantwort:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< authorizationService version = " 1 " >
< body merchantId = " $merchantId " status = " accepted " >
< transaction refno = " $refno " trxStatus = " response " >
< request >
< samsungPayData > <![CDATA[ $token ]]> </ samsungPayData >
< reqtype >NOA</ reqtype >
< transtype >05</ transtype >
< sign >$sign</ sign >
</ request >
< response >
< responseCode >01</ responseCode >
< responseMessage >Authorized</ responseMessage >
< uppTransactionId >160823101329060450</ uppTrasactionId >
< authorizationCode >538050451</ authorizationCode >
< acqAuthorizationCode >101538</ acqAuthorizationCode >
< aliasCC >70119122433810042</ aliasCC >
< expy >18</ expy >
< expm >12</ expm >
</ response >
</ transaction >
</ body >
</ authorizationService >
Ein erfolgreicher Aufruf gibt die <body>
status="accepted"
und <transaction>
's trxStatus="response"
sowie ein neues <response>
-Element, das den Responsecode enthält, zurückgegeben. Ein Responsecode, der "01" oder "02" entspricht, zeigt eine autorisierte Transaktion an. Elements aliascc, expy und expm werden nur zurückgegeben, wenn der Händler Kreditkarten -Aliase verwendet.
Datatrans -APIs