티스토리 뷰
728x90
반응형
목록
- 앱 스토어(App Store)에 제품 등록 하기
- 앱 스토어(App Store)에서 제품 정보 및 목록 가져오기
- 앱 스토어(App Store)에 제품 결제 요청 및 응답 처리하기
- In App Purchase API
앱 스토어(App Store)에 제품 결제 요청 및 응답을 처리하기
//
// AppStore.swift
// DoctorSL
//
// Created by 장정훈 on 2021/10/30.
//
import StoreKit
class AppStore: NSObject, ObservableObject {
private var productsRequest: SKProductsRequest?
private var fetchedProducts = [SKProduct]()
private var fetchCompletionHandler: (([SKProduct]) -> Void)?
override init() {
super.init()
// 지불 대기열에 자신을 관찰자로 추가합니다.
SKPaymentQueue.default().add(self)
}
// MARK: 2.1) 앱 스토어(App Store)에 제품 구매에 대한 지불을 처리합니다.
private func paymentProduct(product: SKProduct) {
// 지불할 상품을 설정합니다.
let payment = SKPayment(product: product)
// 앱 스토어(App Store) 지불 요청 큐에 지불 요청을 추가합니다.
// SKPaymentTransactionObserver가 지불 요청에 대한 응답을 처리합니다.
SKPaymentQueue.default().add(payment)
}
}
extension AppStore {
// MARK: 2) 제품을 구매합니다.
public func purchaseProduct(_ product: SKProduct) {
self.paymentProduct(product: product)
}
}
// MARK: 2.2) 제품 지불 요청에 대한 앱 스토어(App Store)의 응답을 처리합니다.
extension AppStore: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch transaction.transactionState {
case .purchased:
// 트랜잭션 처리가 완료 되었음을 App Store에 알립니다.
SKPaymentQueue.default().finishTransaction(transaction)
break
case .restored:
// 트랜잭션 처리를 완료했음을 App Store에 알립니다.
SKPaymentQueue.default().finishTransaction(transaction)
break
case .failed:
// 트랜잭션 처리를 완료했음을 App Store에 알립니다.
SKPaymentQueue.default().finishTransaction(transaction)
break
case .deferred, .purchasing:
break
@unknown default:
break
}
}
}
// Tells the observer that the payment queue has finished sending restored transactions.
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
}
}
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- REST API
- jstl(java standard tag library)
- MainActor
- await
- jsp 오픈 소스
- .submit()
- nl2br
- 스프링 시큐리티(spring security)
- 스프링 시큐리티(spring security)-http basic 인증
- java-개발 환경 설정하기
- 진수 변환
- System.Diagnostics
- 메이븐(maven)
- 상품 등록
- 스프링 프레임워크(spring framework)
- java 키워드 정리
- 람다식(lambda expression)
- React
- 문자 자르기
- In App Purchase
- 제품 등록
- 표현 언어(expression language)
- 스프링 프레임워크(spring framewordk)
- 특정 문자를 기준으로 자르기
- jstl(java standard tag library)-core
- java web-mvc
- error-java
- java.sql
- 인텔리제이(intellij)
- system.io
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함