Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6cbce9af8 | ||
|
|
10a0faae95 | ||
|
|
c0d12ce636 |
@ -3,7 +3,7 @@
|
|||||||
Pod::Spec.new do |spec|
|
Pod::Spec.new do |spec|
|
||||||
|
|
||||||
spec.name = "JXIAPManager"
|
spec.name = "JXIAPManager"
|
||||||
spec.version = "0.0.1"
|
spec.version = "0.0.3"
|
||||||
spec.summary = "JXIAPManager内购小工具"
|
spec.summary = "JXIAPManager内购小工具"
|
||||||
|
|
||||||
spec.description = <<-DESC
|
spec.description = <<-DESC
|
||||||
|
|||||||
@ -1,34 +1,34 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
import StoreKit
|
import StoreKit
|
||||||
|
|
||||||
@objc public protocol JXIAPManagerDelegate {
|
public protocol JXIAPManagerDelegate: AnyObject {
|
||||||
/// 购买成功
|
/// 购买成功
|
||||||
@objc optional func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String)
|
func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String)
|
||||||
/// 购买失败
|
/// 购买失败
|
||||||
@objc optional func jx_iapPayFailed(productId: String, code: JXIAPManagerCode, msg: String?)
|
func jx_iapPayFailed(productId: String, code: JXIAPManager.ErrorCode, msg: String?)
|
||||||
/// 恢复商品(仅限永久有效商品)
|
/// 恢复商品(仅限永久有效商品)
|
||||||
@objc optional func iapPayRestore(productIds: [String], transactionIds: [String])
|
func iapPayRestore(productIds: [String], transactionIds: [String])
|
||||||
// /// 加载
|
|
||||||
// @objc optional func iapPayShowHud()
|
|
||||||
// /// 系统错误
|
|
||||||
// @objc optional func iapSysWrong()
|
|
||||||
// /// 验证成功
|
|
||||||
// @objc optional func verifySuccess()
|
|
||||||
// /// 验证失败
|
|
||||||
// @objc optional func verifyFailed()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc public enum JXIAPManagerCode: Int {
|
public extension JXIAPManagerDelegate {
|
||||||
///未知错误
|
|
||||||
case unknown
|
func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String) {}
|
||||||
///取消交易
|
func jx_iapPayFailed(productId: String, code: JXIAPManager.ErrorCode, msg: String?) {}
|
||||||
case cancelled
|
func iapPayRestore(productIds: [String], transactionIds: [String]) {}
|
||||||
///没有商品
|
|
||||||
case noProduct
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class JXIAPManager: NSObject {
|
public class JXIAPManager: NSObject {
|
||||||
|
|
||||||
|
public enum ErrorCode {
|
||||||
|
///未知错误
|
||||||
|
case unknown
|
||||||
|
///取消交易
|
||||||
|
case cancelled
|
||||||
|
///没有商品
|
||||||
|
case noProduct
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static let manager: JXIAPManager = JXIAPManager()
|
public static let manager: JXIAPManager = JXIAPManager()
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ extension JXIAPManager: SKProductsRequestDelegate {
|
|||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
if let productId = self.productId {
|
if let productId = self.productId {
|
||||||
self.productId = nil
|
self.productId = nil
|
||||||
self.delegate?.jx_iapPayFailed?(productId: productId, code: .noProduct, msg: nil)
|
self.delegate?.jx_iapPayFailed(productId: productId, code: .noProduct, msg: nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@ -155,7 +155,7 @@ extension JXIAPManager {
|
|||||||
|
|
||||||
guard let productId = self.productId, productId == transaction.payment.productIdentifier else { return }
|
guard let productId = self.productId, productId == transaction.payment.productIdentifier else { return }
|
||||||
self.productId = nil
|
self.productId = nil
|
||||||
self.delegate?.jx_iapPaySuccess?(productId: productId, receipt: encodeStr, transactionIdentifier: transactionIdentifier)
|
self.delegate?.jx_iapPaySuccess(productId: productId, receipt: encodeStr, transactionIdentifier: transactionIdentifier)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,9 +166,9 @@ extension JXIAPManager {
|
|||||||
|
|
||||||
switch error?.code {
|
switch error?.code {
|
||||||
case SKError.paymentCancelled:
|
case SKError.paymentCancelled:
|
||||||
self.delegate?.jx_iapPayFailed?(productId: productId, code: .cancelled, msg: error?.localizedDescription)
|
self.delegate?.jx_iapPayFailed(productId: productId, code: .cancelled, msg: error?.localizedDescription)
|
||||||
default:
|
default:
|
||||||
self.delegate?.jx_iapPayFailed?(productId: productId, code: .unknown, msg: error?.localizedDescription)
|
self.delegate?.jx_iapPayFailed(productId: productId, code: .unknown, msg: error?.localizedDescription)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user