Compare commits
No commits in common. "main" and "0.0.1" have entirely different histories.
@ -3,7 +3,7 @@
|
||||
Pod::Spec.new do |spec|
|
||||
|
||||
spec.name = "JXIAPManager"
|
||||
spec.version = "0.0.3"
|
||||
spec.version = "0.0.1"
|
||||
spec.summary = "JXIAPManager内购小工具"
|
||||
|
||||
spec.description = <<-DESC
|
||||
|
||||
@ -1,33 +1,33 @@
|
||||
import UIKit
|
||||
import StoreKit
|
||||
|
||||
public protocol JXIAPManagerDelegate: AnyObject {
|
||||
@objc public protocol JXIAPManagerDelegate {
|
||||
/// 购买成功
|
||||
func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String)
|
||||
@objc optional func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String)
|
||||
/// 购买失败
|
||||
func jx_iapPayFailed(productId: String, code: JXIAPManager.ErrorCode, msg: String?)
|
||||
@objc optional func jx_iapPayFailed(productId: String, code: JXIAPManagerCode, msg: String?)
|
||||
/// 恢复商品(仅限永久有效商品)
|
||||
func iapPayRestore(productIds: [String], transactionIds: [String])
|
||||
@objc optional func iapPayRestore(productIds: [String], transactionIds: [String])
|
||||
// /// 加载
|
||||
// @objc optional func iapPayShowHud()
|
||||
// /// 系统错误
|
||||
// @objc optional func iapSysWrong()
|
||||
// /// 验证成功
|
||||
// @objc optional func verifySuccess()
|
||||
// /// 验证失败
|
||||
// @objc optional func verifyFailed()
|
||||
}
|
||||
|
||||
public extension JXIAPManagerDelegate {
|
||||
|
||||
func jx_iapPaySuccess(productId: String, receipt: String, transactionIdentifier: String) {}
|
||||
func jx_iapPayFailed(productId: String, code: JXIAPManager.ErrorCode, msg: String?) {}
|
||||
func iapPayRestore(productIds: [String], transactionIds: [String]) {}
|
||||
}
|
||||
|
||||
|
||||
public class JXIAPManager: NSObject {
|
||||
|
||||
public enum ErrorCode {
|
||||
@objc public enum JXIAPManagerCode: Int {
|
||||
///未知错误
|
||||
case unknown
|
||||
///取消交易
|
||||
case cancelled
|
||||
///没有商品
|
||||
case noProduct
|
||||
}
|
||||
}
|
||||
|
||||
public class JXIAPManager: NSObject {
|
||||
|
||||
|
||||
public static let manager: JXIAPManager = JXIAPManager()
|
||||
@ -91,7 +91,7 @@ extension JXIAPManager: SKProductsRequestDelegate {
|
||||
DispatchQueue.main.async {
|
||||
if let productId = self.productId {
|
||||
self.productId = nil
|
||||
self.delegate?.jx_iapPayFailed(productId: productId, code: .noProduct, msg: nil)
|
||||
self.delegate?.jx_iapPayFailed?(productId: productId, code: .noProduct, msg: nil)
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -155,7 +155,7 @@ extension JXIAPManager {
|
||||
|
||||
guard let productId = self.productId, productId == transaction.payment.productIdentifier else { return }
|
||||
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 {
|
||||
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:
|
||||
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