Board logo

标题: 封装内购支付,只需调用几个方法就能实现内购功能 [打印本页]

作者: look_w    时间: 2019-2-20 18:58     标题: 封装内购支付,只需调用几个方法就能实现内购功能

公司项目用到内购这块,看着上个版本的老代码,觉得很乱,就整理了下,将内购支付功能封装成了一个工具类,外界只需要调用一个方法,传入商品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)
                    }

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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0