ตัวอย่างโครงการที่แสดงวิธีการรวม Samsung Pay กับ DataTrans
Samsung Pay อนุญาตให้พ่อค้ารวบรวมการชำระเงินผ่านแพลตฟอร์มการชำระเงินของพวกเขาที่เชื่อมต่อ Samsung Pay Wallet และให้ผู้ใช้ตรวจสอบสิทธิ์ผ่านอุปกรณ์มือถือของพวกเขา ช่วยให้ผู้ค้าสามารถรับข้อมูลการชำระเงินที่เข้ารหัสซึ่งสามารถส่งต่อไปยังตัวประมวลผลการชำระเงินของพวกเขาสำหรับการอนุญาต คู่มือนี้มีไว้สำหรับพ่อค้าที่ต้องการรวม Samsung Pay กับ DataTrans สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเยี่ยมชม Samsung Pay: http://www.samsung.com/ch/samsung-pay/
โซลูชัน samsungpay ทำจาก API สองตัว อันแรกเป็นเพียงเว็บสดีที่จะเรียกการชำระเงินบนเว็บ อันที่สองคือ API เซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์ โฟลว์แอปพลิเคชัน/ ข้อความมีดังนี้:
โปรดทราบว่าขั้นตอนเหล่านี้จะต้องใช้แอปพลิเคชันตัวอย่างเช่นเดียวกับหากคุณต้องการใช้ Samsung Pay ในสภาพแวดล้อมที่มีประสิทธิผลของคุณ ขั้นตอนเหล่านี้ต้องการให้คุณติดต่อกับ Samsung
ไปที่ https://us-partner.pay.samsung.com/ และลงทะเบียน คุณสามารถใช้บัญชีนี้ในภายหลังเพื่อทดสอบบนอุปกรณ์ Samsung ของคุณ
เพื่อให้แน่ใจว่ามีเพียงคุณเท่านั้นที่สามารถถอดรหัสข้อความที่มาจาก Samsung คุณต้องส่ง CSR ที่เซ็นชื่อด้วยตนเองสำหรับแต่ละสภาพแวดล้อม CSR ควรมีคุณลักษณะดังต่อไปนี้:
- File extension CSR
- RSA Key Size 2048 bit or higher
- Signature Algorithm: Sha256WithRSAEncryption
สร้าง CSR หนึ่งรายการสำหรับสภาพแวดล้อมการทดสอบและการผลิตของคุณ
นอกจากนี้คุณต้องส่งรายการที่อยู่ IP ของคุณไปยัง Samsung ในระหว่างกระบวนการ onboarding กรุณาติดต่อสำหรับข้อมูลเพิ่มเติม ส่ง CSR แต่ละตัวไปยัง Samsung หลังจากตรวจสอบบัญชีของคุณที่อยู่ 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
ในการถอดรหัสข้อมูลรับรองการชำระเงินที่ส่งโดย Samsung คุณต้องใช้คีย์ส่วนตัวของคุณในรูปแบบ DER นี่คือวิธีที่คุณแปลง
openssl pkcs8 -topk8 -in domain.com.key -outform DER -nocrypt -out rsapriv.der
ทำสิ่งนี้สำหรับแต่ละคีย์ส่วนตัวในแต่ละสภาพแวดล้อม คัดลอกไฟล์ไปยัง src/main/resources
คุณสมบัติ | คำอธิบาย | ไฟล์ |
---|---|---|
เซิร์ฟเวอร์พอร์ต | พอร์ตที่เซิร์ฟเวอร์ควรทำงานอยู่ | Application.properties |
การโทรกลับ | การโทรกลับ Samsung ใช้ ตรวจสอบให้แน่ใจว่านี่สอดคล้องกับพอร์ตเซิร์ฟเวอร์ของคุณ | Application.properties |
Merchant.name | ชื่อ บริษัท ของคุณ | Application.properties |
พ่อค้าอ้างอิง | สิ่งนี้ถูกใช้โดย Samsung เพื่อแสดงธุรกรรมในแอพ SamsungPay | Application.properties |
samsung.serviceid | ServiceId ของคุณได้รับจาก Samsung | 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 ตัวอย่าง แอพจะมีบัตรทดสอบเหล่านั้นจะไม่ถูกเรียกเก็บเงินโดย DataTrans แต่จะถูกแทนที่หากมีการส่งโทเค็น Samsung จ่ายที่ถูกต้องดังนี้:
ถ้า
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>
ใหม่ที่มี Responsecode Responsecode เท่ากับ "01" หรือ "02" หมายถึงธุรกรรมที่ได้รับอนุญาต Elements Aliascc, Expy และ Expm จะถูกส่งคืนเฉพาะในกรณีที่ผู้ค้าใช้นามแฝงบัตรเครดิต
datatrans apis