首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

封装内购支付,只需调用几个方法就能实现内购功能

封装内购支付,只需调用几个方法就能实现内购功能

公司项目用到内购这块,看着上个版本的老代码,觉得很乱,就整理了下,将内购支付功能封装成了一个工具类,外界只需要调用一个方法,传入商品id,就能够实现支付功能,请求商品成功,失败,支付成功,失败都有对应的闭包模块供外界调用进行相关的处理

1.首先是判断手机是否打开的内购项目的功能

    //验证是否能够内购
        public class func canMakePayments() -> Bool {
        
            return SKPaymentQueue.canMakePayments()
        }
     

2.开启内购商品请求

     //根据商品id创建订单请求
        public func startPaymentRequest(productId:String) {
        
            var productArr = [String]()
            productArr.append(productId)
            let productSet = NSSet(array: productArr)
            let request = SKProductsRequest(productIdentifiers: productSet as! Set<String>)
            request.delegate = self
            request.start()
        }
     

3.支付成功与失败的回调

     if let block = transactionSuccess {
                        block(currentTransaction)
                    }
     if let block = transactionFailure {
                        block(currentTransaction)
                    }

这里相关处理的并不是很详细,有具体需要的可以酌情修改添加部分回调即可
返回列表