คู่มือการผสานรวม iOS SDK
ภาพรวม
MTVerify iOS SDK เป็น SDK สำหรับยืนยันหมายเลขโทรศัพท์มือถือ ที่ให้บริการตรวจสอบหมายเลขโทรศัพท์ระดับผู้ให้บริการเครือข่ายที่รวดเร็วและปลอดภัย
ฟีเจอร์หลัก
- การเริ่มต้น SDK: ดึงการกำหนดค่าโดยอัตโนมัติและเริ่มต้นผ่าน AppKey
- การตรวจสอบการรองรับ: ตรวจสอบว่าสภาพแวดล้อมเครือข่ายปัจจุบันรองรับบริการยืนยันตัวตนหรือไม่
- การยืนยันหมายเลข: เริ่มการยืนยันหมายเลขโทรศัพท์มือถือและรับโทเค็นยืนยันตัวตน
ข้อกำหนดของระบบ
- iOS 12.0+
- Xcode 14.0+
คู่มือการผสานรวม
การผสานรวมด้วยตนเอง
- ลาก
MTVerify.xcframeworkเข้าไปในโปรเจ็กต์ - ใน Target -> General -> Frameworks, Libraries, and Embedded Content:
MTVerify.xcframework: ตั้งค่าเป็น Do Not Embed
เริ่มต้นอย่างรวดเร็ว
ตัวอย่าง Swift
import MTVerify
// 1. เปิดโหมดดีบัก (ไม่บังคับ แนะนำให้เปิดในระยะพัฒนา)
MTVerifySDK.setDebug(true)
// 2. เริ่มต้น SDK
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
if result.isSuccess {
print("เริ่มต้น SDK สำเร็จ")
} else {
print("เริ่มต้น SDK ล้มเหลว: \(result.message)")
}
}
// 3. ตรวจสอบการรองรับ
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
if result.isSuccess && result.isAvailable {
print("บริการยืนยันตัวตนพร้อมใช้งาน, ผู้ให้บริการ: \(result.operatorCode ?? "")")
}
}
// 4. เริ่มการยืนยันตัวตน
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
if result.isSuccess {
print("ยืนยันตัวตนสำเร็จ, Token: \(result.token ?? "")")
}
}
ตัวอย่าง Objective-C
@import MTVerify;
// 1. เปิดโหมดดีบัก (ไม่บังคับ)
[MTVerifySDK setDebug:YES];
// 2. เริ่มต้น SDK
[MTVerifySDK setupWithAppKey:@"your_app_key"
environment:MTEnvironmentProduction
completion:^(MTSetupResult *result) {
if (result.isSuccess) {
NSLog(@"เริ่มต้น SDK สำเร็จ");
} else {
NSLog(@"เริ่มต้น SDK ล้มเหลว: %@", result.message);
}
}];
// 3. ตรวจสอบการรองรับ
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890"
completion:^(MTCoverageResult *result) {
if (result.isSuccess && result.isAvailable) {
NSLog(@"บริการยืนยันตัวตนพร้อมใช้งาน, ผู้ให้บริการ: %@", result.operatorCode);
}
}];
// 4. เริ่มการยืนยันตัวตน
[MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890"
completion:^(MTAuthResult *result) {
if (result.isSuccess) {
NSLog(@"ยืนยันตัวตนสำเร็จ, Token: %@", result.token);
}
}];
การอ้างอิง API
คลาส MTVerifySDK
MTVerifySDK เป็นคลาสหลักของ SDK และจัดเตรียมฟีเจอร์ทั้งหมดที่เกี่ยวข้องกับการยืนยันตัวตน
พร็อพเพอร์ตี้
| พร็อพเพอร์ตี้ | ชนิด | คำอธิบาย |
|---|---|---|
version |
String |
หมายเลขเวอร์ชัน SDK (อ่านอย่างเดียว, พร็อพเพอร์ตี้ของคลาส) |
isInitialized |
Bool |
SDK ได้รับการเริ่มต้นแล้วหรือไม่ (อ่านอย่างเดียว, พร็อพเพอร์ตี้ของคลาส) |
เมธอด
setDebug(_:)
ตั้งค่าโหมดดีบัก เมื่อเปิดใช้งานจะแสดงบันทึกโดยละเอียด
static func setDebug(_ enabled: Bool)
พารามิเตอร์
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
enabled |
Bool |
จะเปิดโหมดดีบักหรือไม่ |
คำอธิบาย
- แนะนำให้เปิดในระยะพัฒนาและทดสอบ
- แนะนำให้ปิดในเวอร์ชันที่เผยแพร่
isDebug()
รับสถานะโหมดดีบักปัจจุบัน
static func isDebug() -> Bool
ค่าที่ส่งกลับ
Bool - เปิดโหมดดีบักหรือไม่
setup(appKey:environment:completion:)
เริ่มต้น SDK ใช้ AppKey เพื่อดึงการกำหนดค่าจากเซิร์ฟเวอร์โดยอัตโนมัติและทำการเริ่มต้นให้เสร็จสมบูรณ์
static func setup(appKey: String,
environment: MTEnvironment = .production,
completion: @escaping (MTSetupResult) -> Void)
พารามิเตอร์
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
appKey |
String |
AppKey ของแอปพลิเคชัน รับได้จากคอนโซล |
environment |
MTEnvironment |
สภาพแวดล้อมการทำงาน ค่าเริ่มต้นคือ .production |
completion |
(MTSetupResult) -> Void |
callback เมื่อการเริ่มต้นเสร็จสมบูรณ์ |
ข้อควรระวัง
- ต้องทำการเริ่มต้นให้เสร็จก่อนเรียกใช้ API อื่น
- การเริ่มต้นเป็นการดำเนินการแบบอะซิงโครนัส โปรดยืนยันความสำเร็จใน callback
- แนะนำให้เรียกใช้ใน
AppDelegateหรือเมื่อเปิดแอปพลิเคชัน
checkCoverage(phoneNumber:completion:)
ตรวจสอบว่าสภาพแวดล้อมเครือข่ายปัจจุบันรองรับบริการยืนยันตัวตนหรือไม่
static func checkCoverage(phoneNumber: String,
completion: @escaping (MTCoverageResult) -> Void)
พารามิเตอร์
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
phoneNumber |
String |
หมายเลขโทรศัพท์มือถือ (รหัสประเทศ + หมายเลขโทรศัพท์) |
completion |
(MTCoverageResult) -> Void |
callback เมื่อการตรวจสอบเสร็จสมบูรณ์ |
ผลลัพธ์ที่ส่งกลับ
ส่งกลับผ่านออบเจ็กต์ MTCoverageResult:
isAvailable: รองรับการยืนยันตัวตนหรือไม่operatorCode: รหัสผู้ให้บริการ ละเว้นฟิลด์นี้ ค่าเริ่มต้นจะส่งกลับเป็นค่าว่าง
ข้อควรระวัง
- ตรวจสอบให้แน่ใจว่า SDK ได้รับการเริ่มต้นแล้วก่อนเรียกใช้
- แนะนำให้เรียกเมธอดนี้เพื่อตรวจสอบการรองรับก่อนเริ่มการยืนยันตัวตน
startAuthentication(phoneNumber:completion:)
เริ่มการยืนยันหมายเลขโทรศัพท์มือถือ
static func startAuthentication(phoneNumber: String,
completion: @escaping (MTAuthResult) -> Void)
พารามิเตอร์
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
phoneNumber |
String |
หมายเลขโทรศัพท์มือถือ (รหัสประเทศ + หมายเลขโทรศัพท์) |
completion |
(MTAuthResult) -> Void |
callback เมื่อการยืนยันตัวตนเสร็จสมบูรณ์ |
ผลลัพธ์ที่ส่งกลับ
ส่งกลับผ่านออบเจ็กต์ MTAuthResult:
token: โทเค็นยืนยันตัวตน ใช้สำหรับการตรวจสอบฝั่งแบ็กเอนด์
ข้อควรระวัง
- ตรวจสอบให้แน่ใจว่า SDK ได้รับการเริ่มต้นแล้วก่อนเรียกใช้
- ต้องใช้งานในสภาพแวดล้อมเครือข่ายมือถือ
- โทเค็นที่ได้รับต้องส่งต่อไปยังแบ็กเอนด์เพื่อตรวจสอบครั้งที่สอง
ชนิด Enum
MTEnvironment
Enum สภาพแวดล้อมการทำงานของ SDK
@objc public enum MTEnvironment: Int {
case sandbox = 0 // สภาพแวดล้อมแซนด์บ็อกซ์ (ทดสอบ)
case production = 1 // สภาพแวดล้อมการใช้งานจริง
}
| ค่า | คำอธิบาย |
|---|---|
.sandbox |
สภาพแวดล้อมทดสอบแซนด์บ็อกซ์ |
.production |
สภาพแวดล้อมการใช้งานจริง |
ชนิดผลลัพธ์
MTSetupResult
คลาสผลการเริ่มต้น
@objcMembers
public class MTSetupResult: NSObject {
/// รหัสผลลัพธ์ (0 คือสำเร็จ, อื่น ๆ คือล้มเหลว)
public let code: Int
/// ข้อความอธิบาย
public let message: String
/// สำเร็จหรือไม่
public var isSuccess: Bool { return code == 0 }
}
| พร็อพเพอร์ตี้ | ชนิด | คำอธิบาย |
|---|---|---|
code |
Int |
รหัสผลลัพธ์; 0 หมายถึงสำเร็จ |
message |
String |
ข้อความอธิบาย |
isSuccess |
Bool |
สำเร็จหรือไม่ (พร็อพเพอร์ตี้แบบคำนวณ) |
MTCoverageResult
คลาสผลการตรวจสอบการรองรับ
@objcMembers
public class MTCoverageResult: NSObject {
/// รหัสผลลัพธ์ (0 คือสำเร็จ, อื่น ๆ คือล้มเหลว)
public let code: Int
/// ข้อความอธิบาย
public let message: String
/// ใช้งานได้หรือไม่
public let isAvailable: Bool
/// รหัสผู้ให้บริการ
public let operatorCode: String?
/// สำเร็จหรือไม่
public var isSuccess: Bool { return code == 0 }
}
| พร็อพเพอร์ตี้ | ชนิด | คำอธิบาย |
|---|---|---|
code |
Int |
รหัสผลลัพธ์; 0 หมายถึงสำเร็จ |
message |
String |
ข้อความอธิบาย |
isAvailable |
Bool |
สภาพแวดล้อมปัจจุบันรองรับการยืนยันตัวตนหรือไม่ |
operatorCode |
String? |
รหัสผู้ให้บริการ (เช่น "TELKOMSEL") ละเว้นฟิลด์นี้ ค่าเริ่มต้นจะส่งกลับเป็นค่าว่าง |
isSuccess |
Bool |
สำเร็จหรือไม่ (พร็อพเพอร์ตี้แบบคำนวณ) |
MTAuthResult
คลาสผลการยืนยันตัวตน
@objcMembers
public class MTAuthResult: NSObject {
/// รหัสผลลัพธ์ (0 คือสำเร็จ, อื่น ๆ คือล้มเหลว)
public let code: Int
/// ข้อความอธิบาย
public let message: String
/// โทเค็นยืนยันตัวตน (ใช้สำหรับการตรวจสอบฝั่งแบ็กเอนด์)
public let token: String?
/// สำเร็จหรือไม่
public var isSuccess: Bool { return code == 0 }
}
| พร็อพเพอร์ตี้ | ชนิด | คำอธิบาย |
|---|---|---|
code |
Int |
รหัสผลลัพธ์; 0 หมายถึงสำเร็จ |
message |
String |
ข้อความอธิบาย |
token |
String? |
โทเค็นยืนยันตัวตน ใช้สำหรับการตรวจสอบครั้งที่สองฝั่งแบ็กเอนด์ |
isSuccess |
Bool |
สำเร็จหรือไม่ (พร็อพเพอร์ตี้แบบคำนวณ) |
ตัวอย่างฉบับสมบูรณ์
ตัวอย่างการผสานรวม Swift ฉบับสมบูรณ์
import UIKit
import MTVerify
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// เปิดโหมดดีบัก
MTVerifySDK.setDebug(true)
// เริ่มต้น SDK
initializeSDK()
}
// MARK: - การเริ่มต้น SDK
private func initializeSDK() {
MTVerifySDK.setup(
appKey: "your_app_key",
environment: .production
) { [weak self] result in
if result.isSuccess {
print("✅ เริ่มต้น SDK สำเร็จ")
print("เวอร์ชัน SDK: \(MTVerifySDK.version)")
print("เริ่มต้นแล้ว: \(MTVerifySDK.isInitialized)")
} else {
print("❌ เริ่มต้น SDK ล้มเหลว: \(result.message) (code: \(result.code))")
}
}
}
// MARK: - ตรวจสอบการรองรับ
func checkCoverage(phoneNumber: String) {
// ตรวจสอบว่า SDK เริ่มต้นแล้วหรือไม่
guard MTVerifySDK.isInitialized else {
print("⚠️ SDK ยังไม่ได้เริ่มต้น")
return
}
MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
if result.isSuccess {
if result.isAvailable {
print("✅ บริการพร้อมใช้งาน")
print("ผู้ให้บริการ: \(result.operatorCode ?? "ไม่ทราบ")")
} else {
print("⚠️ สภาพแวดล้อมปัจจุบันไม่รองรับบริการยืนยันตัวตน")
}
} else {
print("❌ การตรวจสอบล้มเหลว: \(result.message) (code: \(result.code))")
}
}
}
// MARK: - เริ่มการยืนยันตัวตน
func authenticate(phoneNumber: String) {
// ตรวจสอบว่า SDK เริ่มต้นแล้วหรือไม่
guard MTVerifySDK.isInitialized else {
print("⚠️ SDK ยังไม่ได้เริ่มต้น")
return
}
MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
if result.isSuccess {
print("✅ ยืนยันตัวตนสำเร็จ")
print("Token: \(result.token ?? "")")
// TODO: ส่ง token ไปยังแบ็กเอนด์เพื่อตรวจสอบ
self.verifyTokenOnServer(token: result.token ?? "")
} else {
print("❌ ยืนยันตัวตนล้มเหลว: \(result.message) (code: \(result.code))")
}
}
}
// MARK: - การตรวจสอบฝั่งแบ็กเอนด์
private func verifyTokenOnServer(token: String) {
// ส่ง token ไปยังเซิร์ฟเวอร์แบ็กเอนด์ของคุณเพื่อตรวจสอบ
// แบ็กเอนด์ใช้ token เพื่อเรียก API เซิร์ฟเวอร์ MTVerify เพื่อตรวจสอบหมายเลขโทรศัพท์
}
}
ข้อมูลเวอร์ชัน
- เวอร์ชัน SDK: 1.0.1










