Proyecto de muestra que muestra cómo integrar el pago de Samsung con Datatrans
Samsung Pay permite a los comerciantes recaudar pagos a través de su plataforma de pago que conecta la billetera Samsung Pay y permite a los usuarios autenticarse a través de su dispositivo móvil. Permite a los comerciantes recibir información de pago encriptada que puede enviarse a su procesador de pago para la autorización. Esta guía está destinada a comerciantes que desean integrar el pago de Samsung con Datatrans. Para obtener más información sobre Samsung Visite: http://www.samsung.com/ch/samsung-pay/
La solución Samsungpay está hecha de dos API. El primero es solo un WebSDK para activar los pagos en la web. El segundo es una API de servidor a servidor similar a un descanso. El flujo de aplicación/ mensaje es el siguiente:
Tenga en cuenta que estos pasos son necesarios para usar la aplicación de muestra, así como si desea usar Samsung Pay en su entorno productivo. Estos pasos requieren que se ponga en contacto con Samsung.
Navegue a https://us-partner.pay.samsung.com/ y regístrese. Puede usar esta cuenta más adelante para probar en su dispositivo Samsung.
Para asegurarse de que solo pueda descifrar los mensajes que provienen de Samsung, debe enviar una RSE autoestimada para cada entorno. La RSE debe tener los siguientes atributos:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
Cree una RSE para su entorno de prueba y producción
Además, debe enviar su lista de direcciones IP a Samsung durante el proceso de incorporación. Póngase en contacto para obtener más información. Envíe cada CSR a Samsung. Después de verificar su cuenta, las direcciones IP y sus CSRS se le otorgará un ID de servicio y acceso a su documentación
Genere su clave privada
openssl genrsa -out domain.com.key 2048
Genere la CSR con su clave privada
openssl req -out CSR.csr -key domain.com.key -new -sha256
Verifique su CSR
openssl req -in CSR.csr -noout -text
La aplicación de muestra es una aplicación Spring Boot (https://projects.spring.io/spring-boot/) que se puede salir de la caja. Utiliza un Tomcat incrustado.
$ git clone [email protected]:datatrans/samsungpay-web-sample.git
$ cd samsungpay-web-sample
mvn clean install
Para descifrar las credenciales de pago enviadas por Samsung, debe utilizar su clave privada en formato DER. Así es como lo conviertes.
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
Haga esto para cada clave privada en cada entorno. Copie el archivo a src/main/resources
Propiedad | Descripción | Archivo |
---|---|---|
servidor.port | El puerto del servidor debe estar ejecutándose | Aplicación. Properties |
devocador de llamada | La devolución de llamada usa Samsung. Asegúrese de que esto esté alineado con su puerto de servidor | Aplicación. Properties |
comerciante. | El nombre de su empresa. | Aplicación. Properties |
comerciante. Referencia | Samsung usa esto para mostrar transacciones en la aplicación Samsungpay | Aplicación. Properties |
samsung.serviceid | Su servicio de servicio dado por Samsung | Application-Dev.Properties / Application-PROD.Properties |
datatrans.merchantid | Su Datatrans Merchantid | Application-Dev.Properties / Application-PROD.Properties |
datatrans.sign | El letrero perteneciente al comerciante | Application-Dev.Properties / Application-PROD.Properties |
Durante el contacto con Samsung, se le proporcionará una muestra de la aplicación Samsung Pay. La aplicación contendrá tarjetas de prueba, las que no se cobrarán por Datatrans, sino que se reemplazarán si se envía un token de pago Samsung válido de la siguiente manera:
Si
Cardno = 4242 4242 4242 4242 expm = 12 expy = 18
Consulte src/main/java/ch/datatrans/examples/samsungpay/client/DatatransClient.java
para ver cómo se realiza la autorización.
Solicitud de muestra:
<? 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 >
Respuesta de muestra:
<? 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 >
Una llamada exitosa devolverá el estado del atributo de <body>
’ status="accepted"
y <transaction>
' trxStatus="response"
así como un nuevo elemento <response>
que contiene el código de respuestas. Un código de respuestas igual a "01" o "02" indica una transacción autorizada. Elementos ALIASCC, EXPY y EXPM se devolverán solo si el comerciante usa alias de tarjetas de crédito.
API de DataTrans