Samsung PayをDatatransと統合する方法を示すサンプルプロジェクト
Samsung Payは、Samsung Payウォレットを接続し、ユーザーがモバイルデバイスを介して認証できるようにする支払いプラットフォームを介して支払いを収集できるようになります。これにより、商人は、承認のために支払いプロセッサに転送できる暗号化された支払い情報を受け取ることができます。このガイドは、Samsung PayをDatatransと統合したい商人を対象としています。 Samsung Payの詳細については、http://www.samsung.com/ch/samsung-pay/
Samsungpayソリューションは、2つのAPIで作られています。最初のものは、Web上の支払いをトリガーするためのWebSDKにすぎません。 2つ目は、RESTのようなサーバーからサーバーへのAPIです。アプリケーション/メッセージフローは次のとおりです。
これらの手順は、サンプルアプリケーションを使用するだけでなく、生産的な環境でSamsung Payを使用したい場合に注意してください。これらの手順では、サムスンと連絡を取る必要があります。
https://us-partner.pay.samsung.com/に移動してサインアップします。このアカウントを後で使用して、Samsungデバイスでテストすることができます。
サムスンから来るメッセージを復号化できることを確認するには、各環境に自己署名されたCSRを提出する必要があります。 CSRには次の属性が必要です。
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
テストと生産環境のために1つのCSRを作成します
さらに、オンボーディングプロセス中にIPアドレスのリストをSamsungに提出する必要があります。詳細については、ご連絡ください。各CSRをサムスンに提出します。アカウント、IPアドレス、およびCSRSを確認した後、Service-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
サンプルアプリケーションは、スプリングブートアプリケーション(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形式で秘密鍵を使用する必要があります。これがあなたがそれを変換する方法です。
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
各環境の各秘密鍵に対してこれを行います。ファイルをsrc/main/resources
にコピーします
財産 | 説明 | ファイル |
---|---|---|
server.port | サーバーが実行されているはずのポート | Application.Properties |
Callbackurl | サムスンが使用するコールバック。これがサーバーポートに沿っていることを確認してください | Application.Properties |
merchant.name | あなたの会社の名前。 | Application.Properties |
merchant.Reference | これは、Samsungpayアプリにトランザクションを表示するためにSamsungによって使用されています | Application.Properties |
Samsung.Serviceid | Samsungから与えられたあなたのServiceID | Application-dev.properties / application-prod.properties |
datatrans.merchantid | あなたのdatatrans merchantid | Application-dev.properties / application-prod.properties |
datatrans.sign | マーチャッドに属する標識 | Application-dev.properties / application-prod.properties |
Samsungとの連絡中に、サンプルSamsung Payアプリが提供されます。アプリにはテストカードが含まれていますが、それらはデータトランズによって請求されませんが、有効な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 >
成功したコールは、 <body>
の属性status="accepted"
および<transaction>
のtrxStatus="response"
と、応答コードを含む新しい<response>
応答>要素を返します。 「01」または「02」に等しい応答コードは、承認されたトランザクションを示します。 Elements AliaSCC、Expy、およびExpmは、商人がクレジットカードエイリアスを使用している場合にのみ返されます。
Datatrans API