BrandPay https://tosspayments.com
브랜드페이 iOS SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다.
- Xcode 12.x
- Swift 5.x
- iOS 11.0
브랜드페이 iOS SDK는 Manual, Cocoapods, Swift Package Manager르 지원합니다.
아래와 같이 프레임워크를 제공하고 있습니다.
# Base
Library/BrandPayBase.xcframework
# 생체인증 지원
Library/BiometricInterface.xcframework
# 카드 OCR 지원
Library/FinCubeOcrSDK.xcframework
Library/OCRInterface.xcframework
필요한 프레임워크를 Target
의 General
탭 아래에 있는 Frameworks, Libraries, and Embedded Content
섹션으로 끌어오기만 하면 됩니다.
브랜드페이 iOS SDK는 Cocoapods 패키지로도 제공됩니다.
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
# 생체인증 지원
pod 'BrandPay/Biometric'
# 카드 OCR 지원
pod 'BrandPay/OCR'
end
YOUR_TARGET_NAME
을 적절하게 변경한 후 Podfile
파일이 있는 디렉토리에서 아래 명령어를 실행하세요.
pod install
https://github.com/tosspayments/BrandPay
BrandPay iOS SDK느 카메라 권한과 생체인증 권한 설정ㅇ 필요합니다.
extension BrandPayWebInterface: WebViewControllerType {
// var webView: WKWebView! // 선언되어있는 WKWebView instance를 사용합닏.
//
func installAppBridges() {
let biometricMessageHandler = WebScriptMessageHandler()
biometricMessageHandler.controller = self
biometricMessageHandler.register(appBridge: GetAppInfoAppBridge())
biometricMessageHandler.register(appBridge: HasBiometricAuthAppBridge())
biometricMessageHandler.register(appBridge: GetBiometricAuthMethodsAppBridge())
biometricMessageHandler.register(appBridge: VerifyBiometricAuthAppBridge())
biometricMessageHandler.register(appBridge: RegisterBiometricAuthAppBridge())
biometricMessageHandler.register(appBridge: UnregisterBiometricAuthAppBridge())
webView.configuration.userContentController.add(biometricMessageHandler, name: "ConnectPayAuth")
// * OCR 기능은 앱 패키지 별로 flk license file 로 관리됩니다.
let ocrMessageHandler = WebScriptMessageHandler()
ocrMessageHandler.controller = self
ocrMessageHandler.register(appBridge: ScanOCRCardAppBridge(licenseKeyFile: "tosspayment_20220513.flk"))
ocrMessageHandler.register(appBridge: IsOCRAvailableAppBridge())
webView.configuration.userContentController.add(ocrMessageHandler, name: "ConnectPayOcr")
}
// Javascript 호출을 해야 Message 처리가 가능합니다.
func evaluateJavaScriptSafely(javaScriptString: String) {
webView.evaluateJavaScript(javaScriptString) { (_, _) in
}
}
}