SecuX PaymentKit (iOS & Android)
Introducion
The series of the PaymentKit is designed for customers to use the SecuX’s payment terminal (Figure1) in their iOS/Android APPs. Please refer to the Figure2 for the architecture.
- Provide both Pod & Carthage libs for iOS APP.
- Provide Jitpack lib for Android APP.
Figure 1: Payment device
Figure 2: Architecture
Main features
- PaymentDeviceKit communicates with the payment device via BLE (Nordic solution)
- Integrated with Nordic DFU lib for device FW update
- PaymentKit lib communicates with payment server via RESTful APIs
Development IDE & languages
- XCode, Swift, UIKit, CryptoKit, CoreBluetooth, CoreNFC, LocalAuthentication …
- Android Studio, Java
Development steps:
1. Worked with payment device FW engineer to setup the communication between PaymentDeviceKit and payment device.
- FW engineer provides all payment device operations BLE protocols, e.g. init dev, FW update, make/cancel payment …
- Define PaymentDeviceKit APIs for device operations
- Implement the BLE protocol for each operation in PaymentDeviceKit
- Create a test app for using the PaymentDeviceKit
- Test and make sure the communications between test app and payment device work correctly
- The test app is provided to the FW engineer
2. Worked with server engineer to setup the communications between PaymentKit and the server
- Server engineer provides all operations RESTfulAPIs, account login/registration, coin/token account list, account balance, payment history ….
- Define PaymentKit APIs for server operations
- Implement the RESTful APIs in PaymentKit
- Create a test app for using PaymentKit
- Test and make sure the communications between the test app and server work correctly
- The Test app is provided to the server engineer
3. Integrated PaymentKit and PaymentDeviceKit together
- Create APPs: SecuX-EvPay & SecuX Stream Merchant
Challenges and what I learned
- Worked with both FW and backend server engineers
- Implemented libs for both iOS & Android
- Learned how to create pod and jitpack for third-party to use
- Practiced Android NDK for the verification mechanism between APP and Device
Github links
SecuX paymentkit pod
https://github.com/secuxtech/secux-paymentkit-v2-iosSecuX paymentdevicekit pod
https://github.com/secuxtech/secux-paymentdevicekit-framework-sample-iosSecuX paymentkit jitpack
https://github.com/secuxtech/secux-paymentkit-v2-androidpaymentdevicekit jitpack
https://github.com/secuxtech/secux-paymentdevicekit-v2-android
Demo Video
Comment