[swift] Swift Presentr로 구현한 인앱 결제 처리 방법

인앱 결제는 모바일 앱에서 제공하는 유료 아이템을 사용자가 구매할 수 있는 기능입니다. Swift Presentr는 Swift 언어로 구현된 뷰 컨트롤러 프레젠트 라이브러리로, 간편하게 커스텀 팝업을 구현할 수 있도록 도와줍니다. 이번 포스트에서는 Swift Presentr를 이용하여 인앱 결제 처리를 구현하는 방법을 알아보겠습니다.

1. Swift Presentr 설치하기

먼저, 프로젝트에 Swift Presentr를 설치해야 합니다. Swift Package Manager를 사용하는 경우, Package.swift 파일에 다음 의존성을 추가하세요:

dependencies: [
    .package(url: "https://github.com/IcaliaLabs/Presentr.git", .upToNextMajor(from: "2.1.0"))
]

CocoaPods를 사용하는 경우, Podfile에 다음과 같이 추가하세요:

pod 'Presentr', '~> 2.1.0'

설치를 마치면, import Presentr 구문을 이용하여 Presentr 라이브러리를 가져올 수 있습니다.

2. 인앱 결제 뷰 컨트롤러 구현하기

인앱 결제를 위한 뷰 컨트롤러를 구현해야 합니다. 이 뷰 컨트롤러에는 결제 정보를 표시하고, 결제 완료 시 실행할 로직을 구현합니다. 다음은 간단한 예시 코드입니다:

import UIKit

class PurchaseViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 결제 정보 표시하기
        let productLabel = UILabel(frame: CGRect(x: 50, y: 100, width: 200, height: 30))
        productLabel.text = "상품명: 아이템A"
        view.addSubview(productLabel)

        let priceLabel = UILabel(frame: CGRect(x: 50, y: 150, width: 200, height: 30))
        priceLabel.text = "가격: $9.99"
        view.addSubview(priceLabel)

        // 결제 완료 시 실행할 로직 구현하기
        let purchaseButton = UIButton(frame: CGRect(x: 100, y: 200, width: 100, height: 30))
        purchaseButton.setTitle("결제하기", for: .normal)
        purchaseButton.addTarget(self, action: #selector(purchase), for: .touchUpInside)
        view.addSubview(purchaseButton)
    }

    @objc func purchase() {
        // 결제 완료 시 실행되는 로직을 구현합니다.
        print("결제가 완료되었습니다.")
        // ...
    }
}

이 예시 코드에서는 PurchaseViewController 클래스 내에 결제 정보를 표시하는 UILabel과 결제 완료 시 실행될 메소드 purchase()가 구현되어 있습니다.

3. Presentr를 이용하여 인앱 결제 뷰 컨트롤러 표시하기

Presentr를 사용하여 인앱 결제 뷰 컨트롤러를 표시하는 방법은 다음과 같습니다:

import Presentr

// 인앱 결제 뷰 컨트롤러 생성
let purchaseVC = PurchaseViewController()

// 팝업 스타일 설정
let presentr = Presentr(presentationType: .popup)

// 팝업 크기 및 애니메이션 설정
presentr.transitionType = .coverVertical
presentr.dismissTransitionType = .coverVerticalFromTop
presentr.roundCorners = true
presentr.cornerRadius = 10

// 뷰 컨트롤러 표시
presentr.viewControllerForPresentation = purchaseVC
present(purchaseVC, animated: true, completion: nil)

위의 코드에서는 Presentr를 사용하여 팝업 스타일과 크기, 애니메이션 등을 설정한 후 present(_:animated:completion:) 메소드를 호출하여 인앱 결제 뷰 컨트롤러를 표시합니다.

인앱 결제 처리를 위해서는 위의 예시 코드에 실제로 결제 로직을 추가해야 합니다. 이 부분은 결제 서비스에 따라 다르므로, 결제 서비스의 문서를 참고하여 적절한 로직을 구현하세요.

결론

이상으로 Swift Presentr를 이용하여 인앱 결제 처리를 구현하는 방법에 대해 알아보았습니다. Swift Presentr를 사용하면 간편하게 커스텀 팝업을 구현할 수 있으며, 결제 처리 같은 기능을 쉽게 추가할 수 있습니다. 참고한 코드와 설명을 바탕으로 필요한 기능을 직접 구현하고, 앱 사용자에게 편리한 결제 경험을 제공해보세요.