Samsung Pay를 Datatrans와 통합하는 방법을 보여주는 샘플 프로젝트
Samsung Pay는 판매자가 Samsung Pay 지갑을 연결하고 사용자가 모바일 장치를 통해 인증 할 수있는 지불 플랫폼을 통해 지불금을 징수 할 수 있도록합니다. 이를 통해 판매자는 승인을 위해 지불 프로세서로 전달할 수있는 암호화 된 지불 정보를받을 수 있습니다. 이 안내서는 삼성 페이를 Datatrans와 통합하려는 가맹점을위한 것입니다. Samsung Pay에 대한 자세한 내용은 방문 : http://www.samsung.com/ch/samsung-pay/
Samsungpay 솔루션은 두 개의 API로 만들어졌습니다. 첫 번째는 웹에서 결제를 트리거하는 WebSDK 일뿐입니다. 두 번째는 REST와 같은 서버 간 API입니다. 응용 프로그램/ 메시지 흐름은 다음과 같습니다.
이 단계는 생산 환경에서 삼성 페이를 사용하려는 경우 샘플 응용 프로그램을 사용해야합니다. 이 단계는 삼성과 연락을 취해야합니다.
https://us-partner.pay.samsung.com/으로 이동하여 가입하십시오. 나중에 삼성 장치에서 테스트를 위해이 계정을 사용할 수 있습니다.
Samsung에서 오는 메시지를 해독 할 수 있는지 확인하려면 각 환경에 대해 자체 서명 된 CSR을 제출해야합니다. CSR에는 다음 속성이 있어야합니다.
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
테스트 및 생산 환경을 위해 하나의 CSR을 만듭니다
또한 온 보딩 과정에서 IP 주소 목록을 삼성에 제출해야합니다. 자세한 내용은 연락하십시오. 각 CSR을 삼성에 제출하십시오. 계정을 확인한 후 IP 주소 및 CSR에 서비스 ID가 제공되고 해당 문서에 액세스 할 수 있습니다.
개인 키를 생성하십시오
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
삼성이 보낸 지불 자격 증명을 해독하려면 개인 키를 DER 형식으로 사용해야합니다. 변환 방법은 다음과 같습니다.
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
각 환경에서 각 개인 키에 대해이를 수행하십시오. 파일을 src/main/resources
에 복사하십시오
재산 | 설명 | 파일 |
---|---|---|
서버. 포트 | 서버가 실행되어야합니다 | application.properties |
CallbackUrl | 콜백 삼성이 사용합니다. 이것이 서버 포트와 정렬되어 있는지 확인하십시오 | application.properties |
상인. 이름 | 회사 이름. | application.properties |
상인. 회의 | 삼성이 삼성 페이 앱에 거래를 표시하는 데 사용됩니다. | application.properties |
삼성 | 삼성이 제공 한 귀하의 서비스 | Application-dev.properties / application-prod.properties |
datatrans.merchantid | 귀하의 Datatrans Merchantid | Application-dev.properties / application-prod.properties |
Datatrans.sign | 상인에 속하는 표시 | Application-dev.properties / application-prod.properties |
삼성과 연락하는 동안 샘플 삼성 페이 앱이 제공됩니다. 앱에는 테스트 카드가 포함되며, 데이터 트랜스가 청구되지 않지만 유효한 삼성 페이 토큰이 다음과 같이 전송되면 교체됩니다.
만약에
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 >
성공적인 호출은 <body>
의 속성 status="accepted"
및 <transaction>
의 trxStatus="response"
와 responsecode를 포함하는 새로운 <response>
요소를 반환합니다. "01"또는 "02"에 해당하는 ResponseCode는 승인 된 트랜잭션을 나타냅니다. ELEMENTS ALIASCC, EXPY 및 EXPM은 판매자가 신용 카드 별칭을 사용하는 경우에만 반환됩니다.
Datatrans API