DiscoveryCultureSDK-iOS 1.0.1

DiscoveryCultureSDK-iOS 1.0.1

Platinumlist 维护。



  • semenag01

DiscoveryCultureSDK-iOS

要求

iOS 12.0+ / macOS 10.15+ Swift 5.0+

对于某些类型的票,用户需要从相机上传照片,因此为了避免崩溃,请在您的项目 Info.plist 中添加 NSCameraUsageDescription

安装

CocoaPods

将此内容添加到您的 Podfile

pod 'DiscoveryCultureSDK-iOS', :git => "https://github.com/Platinumlist/DiscoveryCultureSDK-iOS.git"

用法

创建 SMWebViewController

let vc: SMWebViewController = .init(nibName: nil, bundle: nil)

创建 SMUser

let user: SMUser = SMUser(name: "Some Name", email: "[email protected]", phone: "+971500000000", nationalityId: 123, cityId: 1)

将 SMUser 设置到 SMWebViewController

vc.processCheckout(user)

SMUser 保存到 UserDefaults

从不保存的 UserDefaults 中删除 SMUser

vc.removeCurrentUser()

当首次添加票时,篮子的有效期等于 15 分钟。

为 SMWebViewController 设置参数

public func setParameters(sdk: SDKType,
                          accessToken: String,
                          eventId: String?,
                          eventShowId: String?,
                          eventShowSetting: Bool?,
                          user: SMUser?,
                          language: SMLanguage?,
                          completion: SMResultCallback)

必需参数

  • sdk - SDKType,purchase|ticketOffice|selectTickets - SDK 类型
  • accessToken- String
  • eventId- String? - 事件 ID
  • eventShowId- String? - 事件的 show ID

单独使用 eventIdeventShowId

可选参数

  • eventShowSetting - Bool? - 是否需要事件 show 设置(如果设置了事件 show ID,则默认为 true)
  • user- SMUser? - 用于篮子的用户,如果未单独设置(非常重要!用户在 SMWebView 展示之前已设置)
  • language- SMLanguage?,en|ar - 语言(默认 en

完成 - SMResultCallback

public typealias SMResultCallback = ((_ result: SMResult?, _ error: SMError?) -> Void)

public enum SMResult {
    case addUser
    case orderStatus(_ status: String?, id: Int)
    case errorMessage(_ message: String?, code: Int)
    case goBack
    case close
    case apple
}

public enum SMError: Error {
    case wrongParameters
    case applePayAuthorization
    case applePayTransaction
    case unknown
}

示例

let toket: String = "Some token"
let idEventStr: String = "11634"
let language: SMLanguage = SMLanguage.ar
vc.setParameters(sdk: sdkType, accessToken: token, eventId: idEventStr, language: language) { [weak self] (result, error) in

    if let error: SMError = error {
        // handle error 
    }

    if let result: SMResult = result {

        switch result {
        case .addUser:
        
            // the last chanse to add user to process checkout
            // to do this create and setup SMUser to your SMWebViewController
        case .orderStatus(let status, let orderId):

            // handle order status 
        case .errorMessage(let message, let code):
            
            // handle error message
        case .goBack:

            // handle go back
        case .close:
            
            // handle close
        case .apple:
            
            // handle apple
        @unknown default:
          print("unknown")
        }
    }
}

orderStatus:

  • orderId - Int
  • 状态 - String,completed|expired|pending payment|failed - 当前订单状态

ErrorMessage:

  • 消息 - String?
  • 代码 - Int

对于 selectTickets SDK 类型完成订单

let amount: Float = 3.0
let id: Int = 126347

SMWebManager.shared.updateToCompleted(idOrder: id, amount: amount) {

       // Order is successfully updated to complete status
} failure: {[weak self] (Error) in
       // handle failure
}

SMWebManager.shared.updateToFailed(idOrder: id) {[weak self] in
       // Order is successfully updated to failed status
} failure: {[weak self] (Error) in
       // handle failure
}

支付

对于测试购买,请使用 Payfort 测试 支付网关。 可用的信用卡凭证

订购详情

方法返回有关订单的信息

Apple Pay

我们在 SDK 中处理所有支付逻辑,尽管您只需要在应用中设置环境以集成 Apple Pay。

  • 创建一个商户 ID
  • 在 App ID 配置中启用 Apple Pay 支付处理
  • 在 Xcode 中为项目配置 Apple Pay 功能