VelaSMS iOS SDK
入门指南
按照以下说明开始使用 VelaOffline
iOS SDK
安装
CocoaPods
CocoaPod 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 VelaSDK 集成到您的 Xcode 项目中,在 Podfile 中指定它
pod 'VelaSDK', '~> 1.0'
初始化
为此步骤,您需要为 Vela 控制系统设置您的 SMS 排序代码、共享服务代码和 SMS 加密密钥。要设置,请按以下示例初始化 SDK
-
扩展
VelaAPI
类,重写smsAPIShortCode(bool: isLive)
,smsEncryptionKey()
和merchantSharedCode
函数,分别设置短信排序码、加密密钥和共享服务代码。例如:class MyAPI: VelaAPI{ override func smsAPIShortCode(bool: isLive) -> String{ return isLive ? "33445" : "12345" } override func smsEncryptionKey() -> String{ return "enkey0123456789" } override func merchantSharedCode() -> String? { return "05" } }
-
在你的
AppDelegate
应用程序函数(即func application
)中,以扩展后的VelaAPI
作为参数调用initVela(api: VelaAPI, isLive: Bool)
方法。例如:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { initVela(api: MyAPI(), isLive: false) }
用法
要从 UIViewController
发送 SMS API 请求,您必须首先扩展 SMSUIViewController
类,然后调用 sendRequest(encryptedMessage: String)
或 sendRequest(message: SMSMessagePipeline)
方法。例如:
class MainUIViewController: SMSUIViewController{
override func viewDidLoad() {
payButton.addTagGestureListener{
let message = ...
sendRequest(encryptedText: message)
}
}
//called after an SMS request is sent
open func smsRequestSent(controller: MFMessageComposeViewController, result: MessageComposeResult){
controller.dismiss(animated: true, completion: nil)
}
}
创建交易短信请求
要创建交易请求,例如现金转账请求,首先,你需要声明 CashTransferSMSAPI
类,然后传递必要的有效负载数据。
let data = CashTransferSMSAPI.Data()
data.accountNo = "1234567890"
data.amount = 10000
data.bank = Bank.UBA_BANK
data.pin = "xxxx"
data.sourceBankAccountId = "123456"
data.userId = "12345678"
let cashTransferSMSApi = CashTransferSMSAPI(data: data)
sendRequest(message: cashTransferSMSApi)
请求发送后,将向用户发送包含 6 位确认码的短信响应消息,用户必须在应用程序中输入确认码,然后进行验证以执行相应的操作。
验证确认码
let confirmationCode = ...
let validation = cashTransferSMSApi.validateConfirmationCode(confirmationCode: confirmationCode)
switch(validation){
case ConfirmationMessageResult.REQUEST_SUCCESSFUL:
// cash transfer request was successful:
case ConfirmationMessageResult.REQUEST_FAILED:
// cash transfer request failed
case ConfirmationMessageResult.OTP_REQUIRED:
// otp is required required for cash transaction
default:
//an invalid confirmation code was inputed
}
交易短信 API 类表
类名 | 数据有效负载类 | 描述 |
---|---|---|
AccountCreationSMSAPI |
AccountCreationSMSAPI.Data |
用户账户创建 |
AccountCreationConfirmationSMSAPI |
AccountCreationConfirmationSMSAPI.Data |
账户创建第二阶段,验证账户号码和OTP |
AccountLoginSMSAPI |
AccountLoginSMSAPI.Data |
用户登录和账户认证。 |
UserProfileUpdateSMSAPI |
UserProfileUpdateSMSAPI.Data |
用户资料信息更新。 |
CashTransferSMSAPI |
CashTransferSMSAPI.Data |
现金转账。 |
BillPaymentSMSAPI |
BillPaymentSMSAPI.Data |
账单支付,如手机话费、数据、电费等。 |
NewBankAccountSMSAPI |
NewBankAccountSMSAPI.Data |
添加新的交易银行账户。 |
PinUpdateSMSAPI |
PinUpdateSMSAPI.Data |
更新交易 PIN。 |
PasswordUpdateSMSAPI |
PasswordUpdateSMSAPI.Data |
用户密码更新。 |
BillProductConstant
账单支付有效负载类 BillPaymentSMSAPI.Data
中包含一个属性 billProductId
,用于标识事务中涉及的费用类型(例如,DSTV 账单、充值话费账单等)。以下是获取相应 billProductId
的方法列表:
BillProductConstant.getAirtimeBillInfo(service: AirtimeService)
获取充值话费产品 ID。BillProductConstant.getDataBillInfo(service: DataService)
获取数据账单产品 ID。BillProductConstant.getInternetPlan(service: InternetService)
获取网络账单产品IDBillProductConstant.getTvBouquets(service: CabletvService)
获取有线电视账单产品IDBillProductConstant.getElectricityBillInfo(service: ElectricityService)
获取电费账单产品ID