示例项目显示如何将三星付款与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