Skip to content

Tích hợp iOS SDK ​

Hướng dẫn tích hợp SmartOTP iOS SDK, phân phối dưới dạng CakeOTP.xcframework.

WARNING

Trang này ghi lại các tham số, kết quả trả về và mã lỗi của iOS SDK. Hãy hỏi CAKE Support để lấy header file hoặc một project mẫu cho chữ ký phương thức chính xác trước khi triển khai.

Cài đặt ​

  1. Mở project Xcode của bạn.
  2. Kéo CakeOTP.xcframework vào project.
  3. Tích Copy items if needed, Create groups, và Add to targets.
  4. Chọn target project của bạn.
  5. Trong Frameworks, Libraries, and Embedded Content, đặt framework thành Embed & Sign.
  6. Import CakeOTP trong code của bạn.

Cấu hình ​

Tham sốKiểuBắt buộcMặc địnhMô tả
hostNameStringKhôngDo SDK tự sinhHost name của API.
isShowLogBoolKhôngfalseIn log của SDK.
Timeout intervalIntKhông30Timeout HTTP request tính bằng giây.

Header tùy chỉnh được thêm bằng cách khởi tạo một object RestEntity và gọi hàm add của nó — có sẵn cả cách gọi trực tiếp lẫn thông qua hàm cập nhật cấu hình.

Ghi đè base URL ​

Mọi API service đều nhận một tham số overrideBaseUrl.

WARNING

Truyền null hoặc chuỗi rỗng cho overrideBaseUrl không quay về hostName — request sẽ thất bại với Unknown host name. Hãy bỏ hẳn tham số này thay vì truyền một giá trị rỗng.

Kích hoạt ​

Tham sốKiểuBắt buộcMặc địnhMô tả
otpStringCó—OTP do server gửi sau khi backend của bạn gọi Đăng ký.
vpBankUserIdStringKhôngDo SDK tự sinhID người dùng.
vpBankDeviceIdStringKhôngDo SDK tự sinhID thiết bị.
vpBankPartnerIdStringKhôngDo SDK tự sinhID partner.
deviceOSStringKhôngiOSHệ điều hành thiết bị dùng để theo dõi.
pushTokenStringKhông—Push token, nếu dùng.
appVersionStringKhông—Phiên bản ứng dụng, nếu dùng.
tokenStringKhông—Token đăng ký từ Đăng ký.
registrationIdStringKhông—Registration id từ Đăng ký.

Trả về: ActivateSOTPModel, hoặc một CakeErrorModel mang theo code và message.

Tham số otp chính là activation_key từ response của Đăng ký.

MãMô tả
3Parameter invalid
103Thông tin Partner không chính xác — Partner details are incorrect.
124OTP không hợp lệ — Invalid OTP.
125OTP hết hạn sử dụng — OTP expired.
129Token không hợp lệ — Invalid token.

INFO

Các tham số trên iOS có tên vpBankUserId, vpBankDeviceId và vpBankPartnerId. Đây là các định danh chung cho user, device và partner bất kể tên gọi mang tính đặc thù tenant — hãy truyền giá trị của riêng bạn bất kể bạn là partner nào.

PIN và lưu trữ ​

Store ​

Tham sốKiểuBắt buộcMặc địnhMô tả
pinStringCó—PIN của người dùng, 4 hoặc 6 chữ số.
vpBankUserIdStringKhôngDo SDK tự sinhID người dùng.

Lưu khóa bí mật của Soft OTP trong bộ nhớ cục bộ bên trong SDK, mã hóa bằng PIN.

Check ​

Tham sốKiểuBắt buộcMặc địnhMô tả
pinStringCó—PIN của người dùng, 4 hoặc 6 chữ số.

Trả về: Bool. Chỉ được gọi sau khi lưu Soft OTP thành công.

Clear ​

Xóa PIN đang được lưu hiện tại.

Đổi PIN ​

Tham sốKiểuBắt buộcMặc địnhMô tả
oldPinStringCó—PIN hiện tại. Truyền chuỗi rỗng khi chưa có PIN nào được lưu.
newPinStringCó—PIN mới, được kiểm tra với hai PIN gần nhất.

Trả về: ChangePinResult

TrườngKiểuMô tả
successChangePinResultPIN đã được đổi.
invalidOldPinChangePinResultPIN cũ không hợp lệ.
sameOldAndNewPinChangePinResultPIN mới trùng với PIN cũ.
samePreviousPinsChangePinResultPIN mới trùng với một trong các PIN trước đó đã lưu.
unknownFailureChangePinResultLỗi không xác định.

iOS phân biệt năm kết quả trong khi Android chỉ báo cáo ba — sameOldAndNewPin và samePreviousPins đều xuất hiện dưới dạng UNKNOWN_FAILURE trên Android.

Tạo OTP ​

Cơ bản ​

Không nhận tham số. Trả về: String? — Soft OTP cơ bản được tạo ra.

Nâng cao ​

Tham sốKiểuBắt buộcMặc địnhMô tả
challengeKeyStringCó—Khóa challenge từ Tạo giao dịch, được băm (hash) từ user_id, device_id, registration_id, app_id, transaction_id, transaction_amount và unique_id cùng với private key của server.

Trả về: String? — Soft OTP nâng cao được tạo ra.

Lấy trạng thái ​

Trả về: status dưới dạng String, hoặc một CakeErrorModel.

Một trong các giá trị NON_ACTIVATED, ACTIVATED, TEMPORARY_BLOCKED, NOT_CURRENT_USER, NOT_REGISTERED — xem Tổng quan Mobile SDK § Các giá trị trạng thái.

MãMô tả
103Thông tin Partner không chính xác — Partner details are incorrect.

Đồng bộ thời gian ​

Trả về timestamp hiện tại của server dưới dạng SyncTimeData, hoặc một CakeErrorModel.

MãMô tả
103Thông tin Partner không chính xác — Partner details are incorrect.
129Token không hợp lệ — Invalid token.
190108Tài khoản chưa hoạt động — Account not activated.
190302OTP không chính xác — Incorrect OTP.

Hủy kích hoạt ​

Hủy kích hoạt Soft OTP đang hoạt động hiện tại của người dùng.

Trả về: Bool, hoặc một CakeErrorModel.

MãMô tả
3Parameter invalid
103Thông tin Partner không chính xác — Partner details are incorrect.
129Token không hợp lệ — Invalid token.

Giao dịch mới nhất ​

Không nhận tham số. Trả về: LatestTransactionResponseModel, hoặc một CakeErrorModel.

Tương đương với Lấy giao dịch mới nhất.

Accessor ​

TrườngKiểuMô tả
Get current usernameString?Username đã đăng ký.
Get current registration_idString?Registration id đã đăng ký.
Get current user idString?User id đã đăng ký.
Get serial idString?Serial id từ server.
Save serial id—Lưu một serial id do bạn tự cung cấp.
Get timeGetTimeResponseModelTimestamp của server, thông qua API GetTime.
Get periodInt?Chu kỳ TOTP.
Get remaining validity timeIntSố giây còn lại của OTP hiện tại. Trả về -1 khi lỗi.
Check is SOTP registeredBoolThiết bị này đã đăng ký SmartOTP hay chưa.

INFO

getRemainingValidityTime trả về -1 khi lỗi trên iOS, trong khi Android trả về một giá trị rỗng. Hãy kiểm tra -1 một cách tường minh thay vì coi mọi giá trị falsy là bằng không.

Lưu ý khi triển khai ​

Thông tinMô tả
Chữ ký phương thứcKhông liệt kê ở đây. Tên chính xác, nhãn tham số và hình dạng completion-handler có trong header file do CAKE Support cung cấp.
RestEntityĐược nhắc đến cho header tùy chỉnh nhưng không có định nghĩa kiểu dữ liệu đi kèm.
Thông báo lỗiĐược ghi ở đây có dấu tiếng Việt. SDK có thể trả về dạng không dấu (Thong tin Partner khong chinh xac) — hãy so khớp theo mã lỗi, không theo nội dung.

Bước tiếp theo ​

Developers