示例項目顯示如何將三星付款與DataTrans集成
三星付款允許商人通過其付款平台收集付款,該平台連接三星付費錢包,並讓用戶通過其移動設備進行身份驗證。它使商人能夠收到可以轉發給其付款處理器以供授權的加密付款信息。本指南是針對希望將三星薪酬與DataTrans集成的商人的。有關三星付款的更多信息,請訪問:http://www.samsung.com/ch/samsung-pay/
Samsungpay溶液由兩個API製成。第一個只是一個網絡廣播公司來觸發網絡上的付款。第二個是類似REST的服務器到服務器API。應用程序/消息流如下:
請注意,使用樣本應用程序以及是否要在生產環境中使用三星薪酬,需要這些步驟。這些步驟要求您與三星保持聯繫。
導航到https://us-partner.pay.samsung.com/並註冊。您可以稍後在三星設備上使用此帳戶進行測試。
為了確保您只能解密三星的消息,您需要為每個環境提交一個自簽名的企業社會責任。企業社會責任應具有以下屬性:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
為您的測試和生產環境創建一個CSR
此外,您需要在入職過程中將IP地址列表提交給三星。請聯繫以獲取更多信息。將每個企業社會責任提交給三星。驗證您的帳戶後,IP地址和CSR將獲得服務ID並訪問其文檔
生成私鑰
openssl genrsa -out domain.com.key 2048
用您的私鑰生成企業社會責任
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
財產 | 描述 | 文件 |
---|---|---|
server.port | 服務器應在 | application.properties |
Callbackurl | 回調三星使用。確保與您的服務器端口對齊 | application.properties |
商人。名稱 | 貴公司的名字。 | application.properties |
商人參考 | 三星用來在Samsungpay應用中顯示交易 | application.properties |
三星 | 三星提供的服務 | application-dev.properties / application-prod.properties |
datatrans.merchantid | 您的DataTrans商人 | application-dev.properties / application-prod.properties |
DataTrans.Sign | 屬於商人的標誌 | application-dev.properties / application-prod.properties |
在與三星接觸期間,將為您提供三星付款應用程序。該應用將包含測試卡,這些卡不會由DataTrans收取,但是如果有效的三星付費令牌發送如下:
如果
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>
's trxStatus="response"
以及包含響應量的新<response>
元素。等於“ 01”或“ 02”的響應代碼表示授權交易。元素Aliascc,Expy和ExpM僅在商人使用信用卡別名時才會返回。
DataTrans API