pscbonline-ios/PSCBOnline/Sources/PSCBAPI.swift

56 lines
1.8 KiB
Swift

//
// OOSAPI.swift
// PSCB-OOS-iOS
//
// Created by Antonov Ilia on 27.10.2020.
//
import Foundation
import PassKit
/// Utility fabric methods required for PSCB API.
public class PSCBAPI {
public static let supportedNetworks: [PKPaymentNetwork] = [.visa, .masterCard]
/// - Returns: a tuple describing if application `canMakePayments` and `canSetupCards` using supported networks.
public class func canMakePayments() -> (canMakePayments: Bool, canSetupCards: Bool) {
return (
PKPaymentAuthorizationController.canMakePayments(),
PKPaymentAuthorizationController.canMakePayments(usingNetworks: supportedNetworks)
)
}
/// Creates a default instance of `PKPaymentRequest` with pre-default parameters.
///
/// - Returns: `PKPaymentRequest`
public class func makePaymentRequest(items: [PKPaymentSummaryItem]) -> PKPaymentRequest {
return makePaymentRequest(merchantId: "merchant.pscb.pay", items: items)
}
/// Creates a default instance of `PKPaymentRequest` with pre-default parameters.
///
/// - Parameters:
/// - merchantId: Your Apple Pay merchant ID
/// - items: Summary items
///
/// - Returns: `PKPaymentRequest`
public class func makePaymentRequest(merchantId: String, items: [PKPaymentSummaryItem]) -> PKPaymentRequest {
let request = PKPaymentRequest()
request.merchantIdentifier = merchantId
request.supportedNetworks = Self.supportedNetworks
if #available(iOS 11.0, *) {
//request.supportedCountries = ["RU", "UA", "BY", "US"]
}
request.merchantCapabilities = .capability3DS
request.countryCode = "RU"
request.currencyCode = "RUB"
request.paymentSummaryItems = items
return request
}
}