Hướng dẫn tích hợp
Hướng dẫn tích hợp SDK 9Pay iOS
1. Thêm thư viện
Cài đặt SDK qua Cocoapods. Thêm dòng code pod 'NPayFrameworkMC', '~> 2.0.5'
vào file Podfile sau đó chạy lệnh pod install
trên terminal.
use_frameworks!
pod 'NPayFrameworkMC', '~> 2.0.5'
Cấu hình quyền sử dụng Camera (dùng cho chức năng eKYC) trong Info.plist
<key>NSCameraUsageDescription</key>
<string>Cho phép ứng dụng truy cập máy ảnh, để có thể chụp hình khi xác thực tài khoản và quét mã vạch thanh toán</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Cho phép ứng dụng ảnh để chọn ảnh mã QR hoặc chụp giấy tờ xác thực</string>
2. Khởi tạo SDK
merchantCode
Đây là mã của đối tác khi tích hợp SDK
secretKey
Đây là khoá để kết nối API với 9pay
uid
Định danh người dùng sử dụng tài khoản của merchant, không bắt buộc, có thể truyền null
env
Môi trường sử dụng, có 2 môi trường là sandbox (môi trường test code) và production (môi trường chạy thực tế), xem bảng dưới để biết cấu hình.
brandColor
Mã màu mà merchant muốn sử dụng ở các button trong SDK, mã màu hex và không chứa ký tự #, ví dụ 15AE62
phoneNumber
SDK yêu cầu cung cấp số điện thoại hợp lệ theo định dạng của Việt Nam để có thể sử dụng
3. Bảng hằng số sử dụng cấu hình trong hàm SDK
EnvironmentKey.SANBOX
flavorEnv môi trường Sandbox
EnvironmentKey.PRODUCTION
flavorEnv môi trường Production
PaymentMethod.WALLET
Thanh toán bằng ví điện tử 9Pay (sử dụng trong hàm openPaymentOnSDK).
PaymentMethod.ATM_CARD
Thanh toán bằng thẻ ATM nội địa (sử dụng trong hàm openPaymentOnSDK).
PaymentMethod.CREDIT_CARD
Thanh toán bằng credit card ((sử dụng trong hàm openPaymentOnSDK).
PaymentMethod.DEFAULT
Thanh toán bằng tất cả hình thức (sử dụng trong hàm openPaymentOnSDK).
4. Luồng kỹ thuật
4.1 Code mẫu khởi tạo
let merchantCode = "merchant_code" // Contact 9pay
let secretKey = "secret_key" // Contact 9pay
let uID = "0975998989" // can nullable
let brandColor = "15AE62"
let flavorEnv = EnvironmentKey.SANDBOX // or PRODUCTION
let phoneNumber = "0912365431" // Required
let nLib = NPayManager(vController: self, sdkCfgs: SDKConfigs(merchantCode: merchantCode, secretKey: secretKey, uid: uID, brandColor: brandColor, env: flavorEnv, phoneNumber: phoneNumber))
Hãy nhớ thêm giao thức LibListener bên trong ViewController
class ViewControllerDemo: UIViewController, LibListener {
func sdkDidComplete(action: String, status: Bool?, param: [String : Any]?) {
// Thông báo chức năng nào của SDK đã hoàn thành, trạng thái thành công
// hoặc thất bại thông qua key status tham số kèm theo (nếu có)
}
func onLogoutSuccessful() {
// SDK logout
}
func onCloseSDK() {
// SDK đóng
}
func getInfoSuccess(user: String) {
// Trả về User Info
}
func backToAppFrom(action: String) {
// User back screen
}
func onError(errorCode: Int, message: String) {
// Error contain code and message
}
}
// Json example callback getInfoSuccess:
{
"balance": "1505549",
"phone": "0912365431",
"name": "NGUYEN VAN A",
"statusKyc": "2"
}
4.2 Mở chức năng 9Pay cung cấp
Các hàm SDK được cung cấp sẽ được gọi thông qua hàm openSDKWithAction với tham số action kèm theo. Ví dụ: SDK mở chức năng đăng nhập.
nLib?.openSDKWithAction(action: ServiceAction.LOGIN, vController: self)
//vController : in class viewcontroller open SDK
LOGIN
Đăng nhập Ví 9pay
HISTORY
Lịch sử giao dịch
TRANSFER
Chức năng chuyển tiền, rút tiền
DEPOSIT
Nạp tiền vào Ví 9pay
QR
Quét mã QR thanh toán
BILLING
Hoá đơn tổng hợp
TOPUP
Nạp điện thoại
PHONE_CARD
Mua thẻ điện thoại
DATA_CARD
Mua thẻ Data 4G
SERVICE_CARD
Mua thẻ dịch vụ
HOME
Trang chủ người dùng

4.3 Thanh toán dịch vụ merchant
var orderDataString = "some string payment" // Created from Backend
let method = PaymentMethod.
// PaymentMethod.ATM_CARD
// PaymentMethod.CREDIT_CARD
// PaymentMethod.LINK_BANK
var isShowResult = true
/* Hiển thị màn kết quả của SDK sau khi thanh toán, ngược lại false sẽ không hiển. */
nLib.openPaymentOnSDK(orderDataString: orderDataString, vControoler: UIViewController, paymentMethod: method, isShowResultScreen: isShowResult)
4.4 Lấy thông tin người dùng đã đăng nhập
nLib.getUserInfo()
//Callback to protocol getInfoSuccess()
// Return json string:
// Phone, balance, eKYC status, name.
4.5 Đăng xuất
nLib.logout()
4.6 Đóng SDK
nLib.close()
5. Dữ liệu test sandbox
Tài khoản Ví
0912365431
Mật khẩu tài khoản Ví
123123
Mã xác thực OTP
123456
Thông tin ngân hàng sử dụng để liên kết và nạp tiền
Ngân hàng Agribank
Số thẻ: 9704 0000 0000 0018
Họ và tên: Nguyen Van A
Ngày phát hành: 03/07
OTP: otp
Thẻ quốc tế
Tên chủ thẻ: NGUYEN VAN A
Số thẻ:
4005555555000009 (Visa)
5200000000001005 (MasterCard)
Ngày hết hạn: 05/25
CVV: 123
6. Bảng mã lỗi SDK
Mã lỗi được trả ở callback onError khi khởi tạo SDK.
403
Chưa đăng nhập
2001
Lỗi khi validate thông tin order
2002
Lỗi khi thanh toán dịch vụ merchant
2003
Lỗi khi lấy thông tin ngân hàng và thẻ thanh toán SDK hỗ trợ
2004
Lỗi giải mã dữ liệu trả về
2005
Lỗi chưa xác định
Last updated