VelaSDK 1.0.8

VelaSDK 1.0.8

VelaSDK SMS 维护。



 
依赖
CryptoSwift>= 0
PopupDialog~> 0.9
 

VelaSDK 1.0.8

  • Elias Igbalajobi

VelaSMS iOS SDK

入门指南

按照以下说明开始使用 VelaOffline iOS SDK

安装

CocoaPods

CocoaPod 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 VelaSDK 集成到您的 Xcode 项目中,在 Podfile 中指定它

pod 'VelaSDK', '~> 1.0'

初始化

为此步骤,您需要为 Vela 控制系统设置您的 SMS 排序代码、共享服务代码和 SMS 加密密钥。要设置,请按以下示例初始化 SDK

  1. 扩展 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" 
        }
    }
    
  2. 在你的 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) 获取网络账单产品ID
  • BillProductConstant.getTvBouquets(service: CabletvService) 获取有线电视账单产品ID
  • BillProductConstant.getElectricityBillInfo(service: ElectricityService) 获取电费账单产品ID