Contoh proyek yang menunjukkan cara mengintegrasikan Samsung Pay dengan DataTrans
Samsung Pay memungkinkan pedagang untuk mengumpulkan pembayaran melalui platform pembayaran mereka yang menghubungkan dompet Samsung Pay dan memungkinkan pengguna mengotentikasi melalui perangkat seluler mereka. Ini memungkinkan pedagang untuk menerima informasi pembayaran terenkripsi yang dapat diteruskan ke pemroses pembayaran mereka untuk otorisasi. Panduan ini ditujukan untuk pedagang yang ingin mengintegrasikan Samsung Pay dengan DataTrans. Untuk informasi lebih lanjut tentang Samsung Pay, kunjungi: http://www.samsung.com/ch/samsung-pay/
Solusi Samsungpay terbuat dari dua API. Yang pertama hanyalah WebSDK untuk memicu pembayaran di web. Yang kedua adalah API server-to-server seperti istirahat. Aliran aplikasi/ pesan adalah sebagai berikut:
Harap dicatat bahwa langkah -langkah ini diperlukan untuk menggunakan aplikasi sampel serta jika Anda ingin menggunakan Samsung Pay di lingkungan produktif Anda. Langkah -langkah ini mengharuskan Anda untuk menghubungi Samsung.
Arahkan ke https://us-partner.pay.samsung.com/ dan daftar. Anda dapat menggunakan akun ini nanti untuk pengujian di perangkat Samsung Anda.
Untuk memastikan hanya Anda yang dapat mendekripsi pesan yang berasal dari Samsung, Anda perlu mengirimkan CSR yang ditandatangani sendiri untuk setiap lingkungan. CSR harus memiliki atribut berikut:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
Buat satu CSR untuk lingkungan pengujian dan produksi Anda
Selain itu, Anda perlu mengirimkan daftar alamat IP Anda ke Samsung selama proses onboarding. Harap hubungi informasi lebih lanjut. Kirimkan setiap CSR ke Samsung. Setelah memverifikasi akun Anda, alamat IP dan CSR Anda, Anda akan diberikan ID layanan dan akses ke dokumentasi mereka
Hasilkan Kunci Pribadi Anda
openssl genrsa -out domain.com.key 2048
Hasilkan CSR dengan kunci pribadi Anda
openssl req -out CSR.csr -key domain.com.key -new -sha256
Verifikasi CSR Anda
openssl req -in CSR.csr -noout -text
Aplikasi sampel adalah aplikasi Spring Boot (https://projects.spring.io/spring-boot/) yang dapat kehabisan kotak. Menggunakan tomcat tertanam.
$ git clone [email protected]:datatrans/samsungpay-web-sample.git
$ cd samsungpay-web-sample
mvn clean install
Untuk mendekripsi kredensial pembayaran yang dikirim oleh Samsung, Anda perlu menggunakan kunci pribadi Anda dalam format DER. Inilah cara Anda mengonversinya.
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
Lakukan ini untuk setiap kunci pribadi di setiap lingkungan. Salin file ke src/main/resources
Milik | Keterangan | Mengajukan |
---|---|---|
server.port | Port yang harus dijalankan server | application.properties |
Callbackurl | Callback Samsung digunakan. Pastikan ini selaras dengan port server Anda | application.properties |
pedagang.name | Nama perusahaan Anda. | application.properties |
Pedagang. Referensi | Ini digunakan oleh Samsung untuk menampilkan transaksi di aplikasi Samsungpay | application.properties |
samsung.serviceid | Layanan Anda yang diberikan oleh Samsung | Application-dev.properties / Application-Prod.Properties |
DataTrans.Merchantid | DataTrans Anda pedagang | Application-dev.properties / Application-Prod.Properties |
DATATRANS.SIGN | Tanda milik pedagang | Application-dev.properties / Application-Prod.Properties |
Selama kontak dengan Samsung, Anda akan diberi aplikasi Samsung Pay sampel. Aplikasi ini akan berisi kartu uji, itu tidak akan ditagih oleh DataTrans tetapi akan diganti jika token Samsung Pay yang valid dikirim sebagai berikut:
Jika
cardno = 4242 4242 4242 4242 expm = 12 expy = 18
Lihatlah src/main/java/ch/datatrans/examples/samsungpay/client/DatatransClient.java
untuk melihat bagaimana otorisasi dilakukan.
Permintaan contoh:
<? 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 >
Tanggapan Sampel:
<? 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 >
Panggilan yang berhasil akan mengembalikan status atribut <body>
status="accepted"
dan <transaction>
< trxStatus="response"
serta elemen <response>
baru yang berisi kode respons. Kode respons yang sama dengan "01" atau "02" menunjukkan transaksi resmi. Elemen aliascc, expy dan expm akan dikembalikan hanya jika pedagang menggunakan alias kartu kredit.
API DataTrans