Образец проекта, который показывает, как интегрировать Samsung Pay с DataTrans
Samsung Pay позволяет продавцам собирать платежи через свою платежную платформу, которая соединяет кошелек Samsung Pay и позволяет пользователям аутентифицироваться через мобильное устройство. Это позволяет продавцам получать зашифрованную платежную информацию, которая может быть направлена в их процессор платежа для разрешения. Это руководство предназначено для торговцев, которые хотели бы интегрировать Samsung Pay с дататранами. Для получения дополнительной информации о Samsung Pay Посетите: http://www.samsung.com/ch/samsung-pay/
Решение Samsungpay состоит из двух API. Первый - это всего лишь WebSDK, чтобы вызвать платежи в Интернете. Второй-это API-API-сервер-сервер к серверу. Приложение/ поток сообщений выглядит следующим образом:
Обратите внимание, что эти шаги необходимы для использования приложения образца, а также, если вы хотите использовать Samsung Pay в своей продуктивной среде. Эти шаги требуют, чтобы вы связались с Samsung.
Перейдите на https://us-partner.pay.samsung.com/ и зарегистрируйтесь. Позже вы можете использовать эту учетную запись для тестирования на вашем устройстве Samsung.
Чтобы убедиться, что только вы можете расшифровать сообщения, поступающие из Samsung, вам необходимо отправить CSR, подписанный для каждой среды. КСО должен иметь следующие атрибуты:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
Создайте один CSR для вашей тестовой и производственной среды
Кроме того, вам необходимо отправить свой список IP -адресов Samsung во время процесса адаптации. Пожалуйста, свяжитесь с нами для получения дополнительной информации. Отправить каждый CSR в Samsung. После проверки вашей учетной записи IP-адресов и ваших CSRS вам будут предоставлены услуги и доступ к их документации
Создайте свой личный ключ
openssl genrsa -out domain.com.key 2048
Создайте CSR с вашим закрытым ключом
openssl req -out CSR.csr -key domain.com.key -new -sha256
Проверьте свой CSR
openssl req -in CSR.csr -noout -text
Пример приложения представляет собой приложение Spring Boot (https://projects.spring.io/spring-boot/), которое может быть выпущено из коробки. Он использует встроенный Tomcat.
$ git clone [email protected]:datatrans/samsungpay-web-sample.git
$ cd samsungpay-web-sample
mvn clean install
Чтобы расшифровать платежные учетные данные, отправленные Samsung, вам необходимо использовать свой личный ключ в Der Format. Вот как вы его конвертируете.
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
Сделайте это для каждого частного ключа в каждой среде. Скопируйте файл в src/main/resources
Свойство | Описание | Файл |
---|---|---|
Server.port | Порт, на котором должен работать сервер | Application.properties |
Callbackurl | Обратный вызов, который использует Samsung. Убедитесь, что это соответствует вашему серверному порту | Application.properties |
Merchant.name | Название вашей компании. | Application.properties |
Merchant.Reference | Это используется Samsung для отображения транзакций в приложении Samsungpay | Application.properties |
Samsung.serviceid | Ваш сервис, данный Samsung | Application-Dev.Properties / Application-Prod.Properties |
DataTrans.merchantid | Ваши дататры Merchantid | Application-Dev.Properties / Application-Prod.Properties |
DataTrans.Sign | Знак, принадлежащий торговцу | Application-Dev.Properties / Application-Prod.Properties |
Во время контакта с Samsung вам будет предоставлено приложение Samsung Pay. Приложение будет содержать тестовые карты, они не будут взиматься со стороны DataTrans, но будут заменены, если действительный токен Samsung Pay будет отправлен следующим образом:
Если
Cardno = 4242 4242 4242 4242 Expm = 12 Expy = 18
Проверьте src/main/java/ch/datatrans/examples/samsungpay/client/DatatransClient.java
чтобы увидеть, как выполняется авторизация.
Пример запроса:
<? 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 >
Ответ примера:
<? 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 >
Успешный вызов вернет attribute <body>
status="accepted"
и <transaction>
' trxStatus="response"
, а также новый элемент <response>
, содержащий ответный код. Ответ -колд, равный «01» или «02», указывает на авторизованную транзакцию. Элементы Aliascc, Expy и Expm будут возвращены только в том случае, если торговец использует псевдонимы кредитных карт.
DataTrans API